diff --git a/BD/BASEDATOS para el manual.FDB b/BD/BASEDATOS para el manual.FDB
new file mode 100644
index 0000000..32d9df3
Binary files /dev/null and b/BD/BASEDATOS para el manual.FDB differ
diff --git a/BD/BASEDATOS.FDB b/BD/BASEDATOS.FDB
new file mode 100644
index 0000000..9c0aee4
Binary files /dev/null and b/BD/BASEDATOS.FDB differ
diff --git a/BD/BaseDatos (Borrar tablas).sql b/BD/BaseDatos (Borrar tablas).sql
new file mode 100644
index 0000000..642b4c3
--- /dev/null
+++ b/BD/BaseDatos (Borrar tablas).sql
@@ -0,0 +1,46 @@
+DROP TABLE FORMASPAGO;
+
+DROP TABLE CONTADORES;
+
+DROP TABLE PROVINCIAS;
+
+DROP TABLE DETALLECONTADORES;
+
+DROP TABLE POBLACIONES;
+
+DROP TABLE TIPOSLIBROS;
+
+DROP TABLE CONTACTOS;
+
+DROP TABLE CATEGORIAS;
+
+DROP TABLE ALMACENES;
+
+DROP TABLE ARTICULOS;
+
+DROP TABLE PRESUPUESTOS;
+
+DROP TABLE DETALLESPRESUPUESTOS;
+
+DROP TABLE OBRAS;
+
+DROP TABLE PEDIDOS;
+
+DROP TABLE DETALLESPEDIDOS;
+
+DROP TABLE FICHABENEFICIOS;
+
+DROP TABLE ALBARANPAGO;
+
+DROP TABLE DETALLESALBARANPAGO;
+
+DROP TABLE FACTURASCLIENTE;
+
+DROP TABLE DETALLESFACTURASCLIENTE;
+
+DROP TABLE SUCURSALESCONTACTO;
+
+DROP TABLE CONTACTOSCATEGORIAS;
+
+DROP TABLE EMPRESAS;
+
diff --git a/BD/BaseDatos.sql b/BD/BaseDatos.sql
new file mode 100644
index 0000000..ce8f6ef
--- /dev/null
+++ b/BD/BaseDatos.sql
@@ -0,0 +1,360 @@
+/*
+CREATED 27/07/2004
+MODIFIED 03/10/2005
+PROJECT FACTUGES ARRIBAS
+MODEL
+COMPANY RODAX SOFTWARE
+AUTHOR
+VERSION 1.1
+DATABASE INTERBASE 6 SQL 3
+*/
+
+
+CREATE DOMAIN "BANCOS" AS VARCHAR(100);
+CREATE DOMAIN "CALLES" AS VARCHAR(150);
+CREATE DOMAIN "CANTIDADES" AS NUMERIC(9,2);
+CREATE DOMAIN "CODIGOS" AS SMALLINT;
+CREATE DOMAIN "CODIGOSESPECIALES" AS VARCHAR(10);
+CREATE DOMAIN "CODIGOSPOSTALES" AS VARCHAR(5);
+CREATE DOMAIN "CODIGOSCORTOS" AS NUMERIC(3,0);
+CREATE DOMAIN "CORREOS" AS VARCHAR(60);
+CREATE DOMAIN "DESCRIPCIONES" AS VARCHAR(2000);
+CREATE DOMAIN "FAMILIAS" AS VARCHAR(50);
+CREATE DOMAIN "FECHAS" AS DATE;
+CREATE DOMAIN "FORMASPAGO" AS VARCHAR(50);
+CREATE DOMAIN "IMPORTES2" AS NUMERIC(11,2) DEFAULT 0;
+CREATE DOMAIN "IMPORTES4" AS NUMERIC(13,4) DEFAULT 0;
+CREATE DOMAIN "IMPORTES6" AS NUMERIC(15,6) DEFAULT 0;
+CREATE DOMAIN "NIFCIFS" AS VARCHAR(10);
+CREATE DOMAIN "NOMBRES" AS VARCHAR(100);
+CREATE DOMAIN "OBSERVACIONES" AS BLOB SUB_TYPE 1 SEGMENT SIZE 100;
+CREATE DOMAIN "POBLACIONES" AS VARCHAR(40);
+CREATE DOMAIN "PORCENTAJES" AS FLOAT;
+CREATE DOMAIN "PROVINCIAS" AS VARCHAR(30);
+CREATE DOMAIN "REFERENCIAS" AS VARCHAR(20);
+CREATE DOMAIN "SITUACIONES" AS VARCHAR(30);
+CREATE DOMAIN "TELEFONOS" AS VARCHAR(30);
+CREATE DOMAIN "TIPOENTRADALIBRO" AS CHAR(1);
+CREATE DOMAIN "NOMBRESTABLAS" AS VARCHAR(20);
+CREATE DOMAIN "SERIADOS" AS VARCHAR(3);
+CREATE DOMAIN "TIPOSLIBROS" AS CHAR(1);
+CREATE DOMAIN "CODIGOSLARGOS" AS INTEGER;
+
+
+
+CREATE TABLE "FORMASPAGO" (
+ "DESCRIPCION" "FORMASPAGO" NOT NULL,
+CONSTRAINT "PK_FORMASPAGO" PRIMARY KEY ("DESCRIPCION")
+);
+
+CREATE TABLE "CONTADORES" (
+ "CODIGOTABLA" SMALLINT NOT NULL,
+ "TABLA" VARCHAR(20) NOT NULL COLLATE ES_ES,
+ "COMUN" SMALLINT DEFAULT 0 NOT NULL,
+ "LONGITUD" SMALLINT DEFAULT 0,
+CONSTRAINT "PK_CONTADORES" PRIMARY KEY ("CODIGOTABLA")
+);
+
+CREATE TABLE "PROVINCIAS" (
+ "CODIGO" VARCHAR(2) NOT NULL COLLATE ES_ES,
+ "DESCRIPCION" "PROVINCIAS",
+CONSTRAINT "PK_PROVINCIAS" PRIMARY KEY ("CODIGO")
+);
+
+CREATE TABLE "DETALLECONTADORES" (
+ "CODIGOTABLA" SMALLINT NOT NULL,
+ "SERIADO" "SERIADOS",
+ "DIA" SMALLINT,
+ "MES" SMALLINT,
+ "ANO" SMALLINT,
+ "CONTADOR" INTEGER DEFAULT 0 NOT NULL,
+ "CONTDIA" VARCHAR(2) COLLATE ES_ES,
+ "CONTMES" VARCHAR(2) COLLATE ES_ES,
+ "CONTANO" VARCHAR(2) COLLATE ES_ES
+);
+
+CREATE TABLE "POBLACIONES" (
+ "CODIGOPROVINCIA" VARCHAR(2) NOT NULL COLLATE ES_ES,
+ "CODIGOPOBLACION" VARCHAR(5) NOT NULL COLLATE ES_ES,
+ "DESCRIPCION" "POBLACIONES",
+CONSTRAINT "PK_POBLACIONES" PRIMARY KEY ("CODIGOPROVINCIA","CODIGOPOBLACION")
+);
+
+CREATE TABLE "TIPOSLIBROS" (
+ "DESCRIPCION" "TIPOSLIBROS" NOT NULL,
+CONSTRAINT "PK_TIPOSLIBROS" PRIMARY KEY ("DESCRIPCION")
+);
+
+CREATE TABLE "CONTACTOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOS" NOT NULL,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "NIFCIF" "NIFCIFS",
+ "NOMBRE" "NOMBRES" NOT NULL,
+ "OBSERVACIONES" "OBSERVACIONES",
+CONSTRAINT "PK_CONTACTOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "CATEGORIAS" (
+ "CODIGO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "NOMBRES" NOT NULL,
+CONSTRAINT "PK_CATEGORIAS" PRIMARY KEY ("CODIGO")
+);
+
+CREATE TABLE "ALMACENES" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOSCORTOS" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "NOMBRE" "NOMBRES" NOT NULL,
+ "CALLE" "CALLES",
+ "PROVINCIA" "PROVINCIAS",
+ "POBLACION" "POBLACIONES",
+ "CODIGOPOSTAL" "CODIGOSPOSTALES",
+ "TELEFONO" "TELEFONOS",
+ "MOVIL" "TELEFONOS",
+ "FAX" "TELEFONOS",
+ "PERSONACONTACTO" "NOMBRES",
+ "OBSERVACIONES" "OBSERVACIONES",
+CONSTRAINT "PK_ALMACENES" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "ARTICULOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOSLARGOS" NOT NULL UNIQUE,
+ "CODIGOALMACEN" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOPEDIDO" "CODIGOS" NOT NULL,
+ "CODIGOOBRA" "CODIGOS" NOT NULL,
+ "DESCRIPCION" "NOMBRES",
+CONSTRAINT "PK_ARTICULOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "PRESUPUESTOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOS" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "REFERENCIA" "NOMBRES",
+ "TIPO" "CODIGOSCORTOS" NOT NULL,
+ "FECHAPRESUPUESTO" "FECHAS" NOT NULL,
+ "VIGENCIAPRESUPUESTO" "FECHAS",
+ "SITUACION" "SITUACIONES" NOT NULL,
+ "FECHADECISION" "FECHAS",
+ "BASEIMPONIBLE" "IMPORTES4",
+ "DESCUENTO" "PORCENTAJES",
+ "IMPORTEDESCUENTO" "IMPORTES4",
+ "IVA" "PORCENTAJES",
+ "IMPORTEIVA" "IMPORTES4",
+ "IMPORTETOTAL" "IMPORTES2",
+ "OBSERVACIONES" "OBSERVACIONES",
+ "PLAZOENTREGA" "OBSERVACIONES",
+ "FORMAPAGO" "OBSERVACIONES",
+CONSTRAINT "PK_PRESUPUESTOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "DETALLESPRESUPUESTOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOPRESUPUESTO" "CODIGOS" NOT NULL,
+ "NUMCONCEPTO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "DESCRIPCIONES",
+ "CANTIDAD" "CANTIDADES",
+ "IMPORTEUNIDAD" "IMPORTES6",
+ "IMPORTETOTAL" "IMPORTES6",
+ "TIPO" CHAR(1),
+CONSTRAINT "PK_DETALLESPRESUPUESTOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGOPRESUPUESTO","NUMCONCEPTO")
+);
+
+CREATE TABLE "OBRAS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOS" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "CODIGOPRESUPUESTO" "CODIGOS" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "REFERENCIA" "NOMBRES",
+ "FECHAINICIO" "FECHAS" NOT NULL,
+ "FECHAFIN" "FECHAS",
+ "SITUACION" "SITUACIONES" NOT NULL,
+ "OBSERVACIONES" "OBSERVACIONES",
+CONSTRAINT "PK_OBRAS" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "PEDIDOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOS" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "CODIGOALMACEN" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOOBRA" "CODIGOS" NOT NULL,
+ "REFERENCIA" "NOMBRES",
+ "FECHAPEDIDO" "FECHAS" NOT NULL,
+ "FECHACONFIRMACION" "FECHAS",
+ "SITUACION" "SITUACIONES" NOT NULL,
+ "FECHAENTREGA" "FECHAS",
+ "OBSERVACIONES" "OBSERVACIONES",
+ "IMPORTETOTAL" "IMPORTES2",
+ "DIRECCIONCOMPLETA" "OBSERVACIONES",
+ "INCIDENCIAS" "OBSERVACIONES",
+CONSTRAINT "PK_PEDIDOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "DETALLESPEDIDOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOPEDIDO" "CODIGOS" NOT NULL,
+ "NUMCONCEPTO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "DESCRIPCIONES",
+ "CANTIDAD" "CANTIDADES",
+ "IMPORTEUNIDAD" "IMPORTES6",
+ "IMPORTETOTAL" "IMPORTES6",
+CONSTRAINT "PK_DETALLESPEDIDOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGOPEDIDO","NUMCONCEPTO")
+);
+
+CREATE TABLE "FICHABENEFICIOS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOOBRA" "CODIGOS" NOT NULL,
+ "NUMCONCEPTO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "NOMBRES" NOT NULL,
+ "MODELO" "NOMBRES",
+ "PROVEEDOR" "NOMBRES",
+ "COMPRA" "IMPORTES2",
+ "VENTA" "IMPORTES2",
+CONSTRAINT "PK_FICHABENEFICIOS" PRIMARY KEY ("CODIGOEMPRESA","CODIGOOBRA","NUMCONCEPTO")
+);
+
+CREATE TABLE "ALBARANPAGO" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOSESPECIALES" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "FECHAALBARAN" "FECHAS" NOT NULL,
+ "SITUACION" "SITUACIONES" NOT NULL,
+ "FECHAPAGO" "FECHAS",
+ "BASEIMPONIBLE" "IMPORTES4",
+ "DESCUENTO" "PORCENTAJES",
+ "IMPORTEDESCUENTO" "IMPORTES4",
+ "IVA" "PORCENTAJES",
+ "IMPORTEIVA" "IMPORTES4",
+ "IMPORTETOTAL" "IMPORTES2",
+ "OBSERVACIONES" "OBSERVACIONES",
+ "FORMAPAGO" "OBSERVACIONES",
+CONSTRAINT "PK_ALBARANPAGO" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "DETALLESALBARANPAGO" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOALBARAN" "CODIGOSESPECIALES" NOT NULL,
+ "NUMCONCEPTO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "DESCRIPCIONES",
+ "CANTIDAD" "CANTIDADES",
+ "IMPORTEUNIDAD" "IMPORTES6",
+ "IMPORTETOTAL" "IMPORTES6",
+CONSTRAINT "PK_DETALLESALBARANPAGO" PRIMARY KEY ("CODIGOEMPRESA","CODIGOALBARAN","NUMCONCEPTO")
+);
+
+CREATE TABLE "FACTURASCLIENTE" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGO" "CODIGOSESPECIALES" NOT NULL UNIQUE,
+ "FECHAALTA" "FECHAS" NOT NULL,
+ "USUARIO" "NOMBRES" NOT NULL,
+ "FECHAFACTURA" "FECHAS" NOT NULL,
+ "BASEIMPONIBLE" "IMPORTES4",
+ "DESCUENTO" "PORCENTAJES",
+ "IMPORTEDESCUENTO" "IMPORTES4",
+ "IVA" "PORCENTAJES",
+ "IMPORTEIVA" "IMPORTES4",
+ "IMPORTETOTAL" "IMPORTES2",
+ "OBSERVACIONES" "OBSERVACIONES",
+ "FORMAPAGO" "OBSERVACIONES",
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "NIFCIF" "NIFCIFS",
+ "NOMBRE" "NOMBRES",
+ "CALLE" "CALLES",
+ "PROVINCIA" "PROVINCIAS",
+ "CODIGOPOSTAL" "CODIGOSPOSTALES",
+ "POBLACION" "POBLACIONES",
+CONSTRAINT "PK_FACTURASCLIENTE" PRIMARY KEY ("CODIGOEMPRESA","CODIGO")
+);
+
+CREATE TABLE "DETALLESFACTURASCLIENTE" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOFACTURA" "CODIGOSESPECIALES" NOT NULL,
+ "NUMCONCEPTO" "CODIGOSCORTOS" NOT NULL,
+ "DESCRIPCION" "DESCRIPCIONES",
+ "CANTIDAD" "CANTIDADES",
+ "IMPORTEUNIDAD" "IMPORTES6",
+ "IMPORTETOTAL" "IMPORTES6",
+CONSTRAINT "PK_DETALLESFACTURASCLIENTE" PRIMARY KEY ("CODIGOEMPRESA","CODIGOFACTURA","NUMCONCEPTO")
+);
+
+CREATE TABLE "SUCURSALESCONTACTO" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "CALLE" "CALLES",
+ "PROVINCIA" "PROVINCIAS",
+ "CODIGOPOSTAL" "CODIGOSPOSTALES",
+ "POBLACION" "POBLACIONES",
+ "TELEFONO1" "TELEFONOS",
+ "TELEFONO2" "TELEFONOS",
+ "MOVIL" "TELEFONOS",
+ "FAX" "TELEFONOS",
+ "CORREO" "CORREOS",
+ "PAGINAWEB" "NOMBRES",
+ "PERSONACONTACTO" "NOMBRES",
+CONSTRAINT "PK_SUCURSALESCONTACTO" PRIMARY KEY ("CODIGOEMPRESA","CODIGOCONTACTO")
+);
+
+CREATE TABLE "CONTACTOSCATEGORIAS" (
+ "CODIGOEMPRESA" "CODIGOSCORTOS" NOT NULL,
+ "CODIGOCONTACTO" "CODIGOS" NOT NULL,
+ "CODIGOCATEGORIA" "CODIGOSCORTOS" NOT NULL,
+CONSTRAINT "PK_CONTACTOSCATEGORIAS" PRIMARY KEY ("CODIGOEMPRESA","CODIGOCONTACTO","CODIGOCATEGORIA")
+);
+
+CREATE TABLE "EMPRESAS" (
+ "CODIGO" "CODIGOSCORTOS" NOT NULL,
+ "NOMBRE" "NOMBRES",
+CONSTRAINT "PK_EMPRESAS" PRIMARY KEY ("CODIGO")
+);
+
+
+
+ALTER TABLE "DETALLECONTADORES" ADD CONSTRAINT "FK_DETALLECONTADORES" FOREIGN KEY ("CODIGOTABLA") REFERENCES "CONTADORES" ("CODIGOTABLA") ON UPDATE NO ACTION ON DELETE CASCADE;
+ALTER TABLE "POBLACIONES" ADD CONSTRAINT "FK__CHILDENTITYNAME___PARENTENT" FOREIGN KEY ("CODIGOPROVINCIA") REFERENCES "PROVINCIAS" ("CODIGO") ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE "PRESUPUESTOS" ADD CONSTRAINT "FK_PRESUPUESTOS_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "PEDIDOS" ADD CONSTRAINT "FK_PEDIDOS_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ALBARANPAGO" ADD CONSTRAINT "FK_ALBARANPAGO_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "OBRAS" ADD CONSTRAINT "FK_OBRAS_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "FACTURASCLIENTE" ADD CONSTRAINT "FK_FACTURASCLIENTE_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "SUCURSALESCONTACTO" ADD CONSTRAINT "FK_SUCURSALESCONTACTO_CONTACTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "CONTACTOSCATEGORIAS" ADD CONSTRAINT "FK_CONTACTOSCATEGORIAS_CONTACTO" FOREIGN KEY ("CODIGOEMPRESA","CODIGOCONTACTO") REFERENCES "CONTACTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "CONTACTOSCATEGORIAS" ADD CONSTRAINT "FK_CONTACTOSCATEGORIAS_CATEGORI" FOREIGN KEY ("CODIGOCATEGORIA") REFERENCES "CATEGORIAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ARTICULOS" ADD CONSTRAINT "FK_ARTICULOS_ALMACENES" FOREIGN KEY ("CODIGOEMPRESA","CODIGOALMACEN") REFERENCES "ALMACENES" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "PEDIDOS" ADD CONSTRAINT "FK_PEDIDOS_ALMACENES" FOREIGN KEY ("CODIGOEMPRESA","CODIGOALMACEN") REFERENCES "ALMACENES" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "DETALLESPRESUPUESTOS" ADD CONSTRAINT "FK_DETALLESPRESUPUESTOS_PRESUPU" FOREIGN KEY ("CODIGOEMPRESA","CODIGOPRESUPUESTO") REFERENCES "PRESUPUESTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "OBRAS" ADD CONSTRAINT "FK_OBRAS_PRESUPUESTOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOPRESUPUESTO") REFERENCES "PRESUPUESTOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ARTICULOS" ADD CONSTRAINT "FK_ARTICULOS_OBRAS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOOBRA") REFERENCES "OBRAS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "FICHABENEFICIOS" ADD CONSTRAINT "FK_FICHABENEFICIOS_OBRAS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOOBRA") REFERENCES "OBRAS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "PEDIDOS" ADD CONSTRAINT "FK_PEDIDOS_OBRAS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOOBRA") REFERENCES "OBRAS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "DETALLESPEDIDOS" ADD CONSTRAINT "FK_DETALLESPEDIDOS_PEDIDOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOPEDIDO") REFERENCES "PEDIDOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ARTICULOS" ADD CONSTRAINT "FK_ARTICULOS_PEDIDOS" FOREIGN KEY ("CODIGOEMPRESA","CODIGOPEDIDO") REFERENCES "PEDIDOS" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "DETALLESALBARANPAGO" ADD CONSTRAINT "FK_DETALLESPRESUPUESTOS2_ALBARA" FOREIGN KEY ("CODIGOEMPRESA","CODIGOALBARAN") REFERENCES "ALBARANPAGO" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "DETALLESFACTURASCLIENTE" ADD CONSTRAINT "FK_DETALLESFACTURASCLIENTE_FACT" FOREIGN KEY ("CODIGOEMPRESA","CODIGOFACTURA") REFERENCES "FACTURASCLIENTE" ("CODIGOEMPRESA","CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "CONTACTOS" ADD CONSTRAINT "FK_CONTACTOS_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "FACTURASCLIENTE" ADD CONSTRAINT "FK_FACTURASCLIENTE_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ALBARANPAGO" ADD CONSTRAINT "FK_ALBARANPAGO_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ALMACENES" ADD CONSTRAINT "FK_ALMACENES_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "ARTICULOS" ADD CONSTRAINT "FK_ARTICULOS_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "PEDIDOS" ADD CONSTRAINT "FK_PEDIDOS_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "OBRAS" ADD CONSTRAINT "FK_OBRAS_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+ALTER TABLE "PRESUPUESTOS" ADD CONSTRAINT "FK_PRESUPUESTOS_EMPRESAS" FOREIGN KEY ("CODIGOEMPRESA") REFERENCES "EMPRESAS" ("CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
+
+
+CREATE ROLE "USUARIOS";
+
+
+
+
diff --git a/BD/serverlog.txt b/BD/serverlog.txt
new file mode 100644
index 0000000..1a5c8c9
--- /dev/null
+++ b/BD/serverlog.txt
@@ -0,0 +1,93 @@
+[07/04/2007 15:26:32]
+[Application: ]
+: [Connect]
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Prepare] SELECT
+ ID
+ FROM
+ USUARIOS
+ WHERE USUARIO = :USUARIO AND
+ PASS = :PASS AND
+ ACTIVO = 1
+
+ Plan: PLAN (USUARIOS NATURAL)
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Start transaction]
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Prepare] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL)))
+
+ Plan: PLAN JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2))
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL)))
+
+ RELATION = USUARIOS
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Prepare] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION
+
+ Plan: PLAN SORT (JOIN (RR INDEX (RDB$INDEX_42), RI INDEX (RDB$INDEX_6)))
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION
+
+ RELATION_NAME = USUARIOS
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Commit (Hard commit)]
+
+
>
+[07/04/2007 15:26:32]
+[Application: ]
+: [Execute] SELECT
+ ID
+ FROM
+ USUARIOS
+ WHERE USUARIO = :USUARIO AND
+ PASS = :PASS AND
+ ACTIVO = 1
+
+ USUARIO = admin
+ PASS = 1
+
+
>
+[07/04/2007 15:26:57]
+[Application: ]
+: [Connect]
+
+
>
+[07/04/2007 15:26:57]
+[Application: ]
+[Error] -206 335544569 Dynamic SQL Error
+SQL error code = -206
+Column unknown
+USUARIO
+At line 5, column 9
+
+
>
+[07/04/2007 15:27:04]
+[Application: ]
+[Error] -206 335544569 Dynamic SQL Error
+SQL error code = -206
+Column unknown
+USUARIO
+At line 5, column 9
+
+
>
diff --git a/Base/BaseD7.bdsproj b/Base/BaseD7.bdsproj
new file mode 100644
index 0000000..28f42ba
--- /dev/null
+++ b/Base/BaseD7.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ BaseD7.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Base/BaseD7.cfg b/Base/BaseD7.cfg
new file mode 100644
index 0000000..9305f66
--- /dev/null
+++ b/Base/BaseD7.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Base/BaseD7.dcp b/Base/BaseD7.dcp
new file mode 100644
index 0000000..59541ba
Binary files /dev/null and b/Base/BaseD7.dcp differ
diff --git a/Base/BaseD7.dof b/Base/BaseD7.dof
new file mode 100644
index 0000000..d43d051
--- /dev/null
+++ b/Base/BaseD7.dof
@@ -0,0 +1,518 @@
+[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=1
+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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Base/BaseD7.dpk b/Base/BaseD7.dpk
new file mode 100644
index 0000000..67a48c2
--- /dev/null
+++ b/Base/BaseD7.dpk
@@ -0,0 +1,115 @@
+package BaseD7;
+
+{$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_D7,
+ vcljpg,
+ dbrtl,
+ dsnap,
+ vcldb,
+ PNG_D7,
+ PngComponentsD7,
+ JvCoreD7R,
+ JvStdCtrlsD7R,
+ JvPageCompsD7R,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ cxExtEditorsVCLD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ tb2k_d7,
+ tbx_d7,
+ vclx,
+ vclactnband,
+ designide,
+ cxExportVCLD7,
+ adortl,
+ JvSystemD7R,
+ dxPSCoreD7,
+ dxPScxCommonD7,
+ dxPScxGridLnkD7,
+ cxIntlPrintSys3D7,
+ dxBarD7,
+ dxBarExtItemsD7,
+ cxIntl5D7,
+ DataAbstract_D7,
+ dxPsPrVwAdvD7,
+ ccpack70,
+ JvMMD7R,
+ JvCtrlsD7R,
+ dxLayoutControlD7,
+ teeui,
+ tee,
+ fsTee7,
+ fs7,
+ frxTee7,
+ frx7,
+ frxe7;
+
+contains
+ uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule},
+ uEditorBase in 'uEditorBase.pas' {fEditorBase},
+ uEditorGrid in 'uEditorGrid.pas' {fEditorGrid},
+ 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},
+ uViewCategorias in 'uViewCategorias.pas' {frViewCategorias: TCustomView},
+ uViewDireccion in 'uViewDireccion.pas' {frViewDireccion: TCustomView},
+ uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView},
+ uViewInternet in 'uViewInternet.pas' {frViewInternet: TCustomView},
+ uViewTelefonos in 'uViewTelefonos.pas' {frViewTelefonos: TCustomView},
+ uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor},
+ uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor},
+ uViewMensaje in 'uViewMensaje.pas' {frViewMensaje: TFrame},
+ uExceptions in 'uExceptions.pas',
+ uViewContenido in 'uViewContenido.pas' {frViewContenido: TFrame},
+ uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame},
+ uBizImportesDetalleBase in 'uBizImportesDetalleBase.pas',
+ uBizImportesCabeceraBase in 'uBizImportesCabeceraBase.pas',
+ uViewFormaPago in 'uViewFormaPago.pas' {frViewFormaPago: TFrame},
+ uViewObservaciones in 'uViewObservaciones.pas' {frViewObservaciones: TFrame},
+ uViewPlazoEntrega in 'uViewPlazoEntrega.pas' {frViewPlazoEntrega: TFrame},
+ uViewTotales in 'uViewTotales.pas' {frViewTotales: TFrame},
+ uDBSelectionList in 'uDBSelectionList.pas',
+ uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion},
+ uViewDetallesFamilias in 'uViewDetallesFamilias.pas' {frViewDetallesFamilias: TFrame},
+ uBizInformesBase in 'uBizInformesBase.pas',
+ uViewDetallesNormales in 'uViewDetallesNormales.pas' {frViewDetallesNormales: TFrame},
+ uVentanaEspera in 'uVentanaEspera.pas' {Form1},
+ uSysFunc in 'uSysFunc.pas',
+ InfoProject in 'InfoProject.pas',
+ uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame};
+
+end.
diff --git a/Base/BaseD7.drc b/Base/BaseD7.drc
new file mode 100644
index 0000000..82e626f
--- /dev/null
+++ b/Base/BaseD7.drc
@@ -0,0 +1,16 @@
+/* VER150
+ 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.
+*/
+
+#define uROWinInetHttpChannel_sxInvalidURLformat 65520
+STRINGTABLE
+BEGIN
+ uROWinInetHttpChannel_sxInvalidURLformat, "Invalid URL format"
+END
+
diff --git a/Base/BaseD7.res b/Base/BaseD7.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Base/BaseD7.res differ
diff --git a/Base/Copia de uViewFiltroBase.dfm b/Base/Copia de uViewFiltroBase.dfm
new file mode 100644
index 0000000..79f392c
--- /dev/null
+++ b/Base/Copia de uViewFiltroBase.dfm
@@ -0,0 +1,179 @@
+object frViewFiltroBase: TfrViewFiltroBase
+ Left = 0
+ Top = 0
+ Width = 565
+ Height = 107
+ TabOrder = 0
+ Visible = False
+ object TBXDock1: TTBXDock
+ Left = 0
+ Top = 0
+ Width = 565
+ Height = 104
+ object TBXDockablePanel1: TTBXDockablePanel
+ Left = 0
+ Top = 0
+ Caption = 'TBXDockablePanel1'
+ CloseButton = False
+ CloseButtonWhenDocked = False
+ DockedHeight = 100
+ DockMode = dmCannotFloatOrChangeDocks
+ ShowCaption = False
+ ShowCaptionWhenDocked = False
+ SupportedDocks = [dkStandardDock, dkMultiDock]
+ TabOrder = 0
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 561
+ Height = 99
+ Align = alTop
+ ParentBackground = True
+ TabOrder = 0
+ AutoContentSizes = [acsWidth, acsHeight]
+ object txtFiltroTodo: TcxTextEdit
+ Left = 86
+ Top = 10
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ Style.LookAndFeel.Kind = lfStandard
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfStandard
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfStandard
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfStandard
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 273
+ end
+ object edtFechaIniFiltro: TcxDateEdit
+ Left = 86
+ Top = 37
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ 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 = 121
+ end
+ object edtFechaFinFiltro: TcxDateEdit
+ Left = 347
+ Top = 37
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ 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 = 2
+ Width = 121
+ end
+ object bQuitarFiltro: TBitBtn
+ Left = 10
+ Top = 64
+ Width = 163
+ Height = 25
+ Caption = 'Quitar filtros y ver todo'
+ TabOrder = 3
+ OnClick = bQuitarFiltroClick
+ Glyph.Data = {
+ 36040000424D3604000000000000360000002800000010000000100000000100
+ 2000000000000004000000000000000000000000000000000000FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00A505
+ E1007204CA00FE00FF00FF00FF00FF00FF00E800F5003E09C100FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00AB17
+ F900161DC600C400E700FF00FF00FF00FF00520DC9000F30D600D71BCF00942A
+ 8A004D493C004D493C00942A8A00D71BCF00FF00FF00FF00FF00D71BCF008B2C
+ 92002843B900141B980070208D004615BA000F30D600C20BF80069605800F8D5
+ AD00F8C89000F8C89000E7AB63004D493C00FF00FF00FF00FF0069605800F8D5
+ AD00C8ACA6001036E4002125A6000F30D600B20EF600FF00FF0069605800FFD8
+ C000F8D5AD00F8C89000F8C890004D493C004D493C004D493C0069605800FFD8
+ C000EFCDAD005F65C6000A38ED002637A300927C6C00FF00FF0069605800F0F0
+ F000FFD8C000F8D5AD00F8C8900069605800696058006960580069605800FFF8
+ FF008372B1000F30D6002750F7000F30D60025256F00FF00FF00942A8A006960
+ 58006960580069605800942A8A00D71BCF00FF00FF00FF00FF00D71BCF004F24
+ 9E000F30D600434D8A00605D6C004D69E3000F30D6006D05CC00FF00FF006648
+ 54004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000F30
+ D6008F1FF300FF00FF00FF00FF00C811FD003154EB000024D300FF00FF00FF00
+ FF00664854004D493C00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF004D493C004D493C00FF00FF00FF00FF00FF00
+ FF00FF00FF0066485400696058004D493C00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00696058004D493C00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF0066485400D419D000FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00A8658D0069605800FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
+ FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00}
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Item1: TdxLayoutItem
+ Caption = 'Que contenga:'
+ Control = txtFiltroTodo
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ LayoutDirection = ldHorizontal
+ ShowBorder = False
+ object dxLayoutControl1Item2: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Entre la fecha:'
+ Control = edtFechaIniFiltro
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item3: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'y'
+ Control = edtFechaFinFiltro
+ ControlOptions.ShowBorder = False
+ end
+ end
+ object dxLayoutControl1Item4: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ ShowCaption = False
+ Control = bQuitarFiltro
+ ControlOptions.ShowBorder = False
+ end
+ end
+ end
+ end
+ end
+ object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
+ Left = 136
+ Top = 16
+ end
+end
diff --git a/Base/Copia de uViewFiltroBase.pas b/Base/Copia de uViewFiltroBase.pas
new file mode 100644
index 0000000..ddca738
--- /dev/null
+++ b/Base/Copia de uViewFiltroBase.pas
@@ -0,0 +1,123 @@
+unit uViewFiltroBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl,
+ cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls,
+ StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar;
+
+type
+ IViewFiltroBase = interface
+ ['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}']
+ function GetFiltrosChange: TNotifyEvent;
+ procedure SetFiltrosChange(const Value: TNotifyEvent);
+ property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
+
+ function GetVerFiltros: Boolean;
+ procedure SetVerFiltros(const Value: Boolean);
+ property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
+ end;
+
+ TfrViewFiltroBase = class(TFrame, IViewFiltroBase)
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ txtFiltroTodo: TcxTextEdit;
+ dxLayoutControl1Item2: TdxLayoutItem;
+ edtFechaIniFiltro: TcxDateEdit;
+ dxLayoutControl1Item3: TdxLayoutItem;
+ edtFechaFinFiltro: TcxDateEdit;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ dxLayoutControl1Item4: TdxLayoutItem;
+ bQuitarFiltro: TBitBtn;
+ TBXDock1: TTBXDock;
+ TBXDockablePanel1: TTBXDockablePanel;
+ procedure bQuitarFiltroClick(Sender: TObject);
+ procedure OnCamposFiltroChange(Sender: TObject);
+
+ private
+ FOnFiltrosChange: TNotifyEvent;
+
+ function GetFiltrosChange: TNotifyEvent;
+ procedure SetFiltrosChange(const Value: TNotifyEvent);
+ function GetVerFiltros: Boolean;
+ procedure SetVerFiltros(const Value: Boolean);
+
+ protected
+ procedure LimpiarCampos; virtual;
+ function ValidarCampos: Boolean; virtual;
+
+ public
+ property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
+ property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrViewFiltroBase }
+
+function TfrViewFiltroBase.GetFiltrosChange: TNotifyEvent;
+begin
+ Result := FOnFiltrosChange;
+end;
+
+procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent);
+begin
+ FOnFiltrosChange := Value;
+end;
+
+procedure TfrViewFiltroBase.bQuitarFiltroClick(Sender: TObject);
+begin
+ LimpiarCampos;
+ if Assigned(FOnFiltrosChange) then
+ FOnFiltrosChange(Sender);
+end;
+
+function TfrViewFiltroBase.GetVerFiltros: Boolean;
+begin
+ Result := Self.Visible;
+end;
+
+procedure TfrViewFiltroBase.SetVerFiltros(const Value: Boolean);
+begin
+ Self.Visible := Value;
+ if not Self.Visible then
+ bQuitarFiltro.Click;
+end;
+
+procedure TfrViewFiltroBase.LimpiarCampos;
+begin
+ txtFiltroTodo.Clear;
+ edtFechaIniFiltro.Clear;
+ edtFechaFinFiltro.Clear;
+end;
+
+procedure TfrViewFiltroBase.OnCamposFiltroChange(Sender: TObject);
+begin
+ if ValidarCampos then
+ if Assigned(FOnFiltrosChange) then
+ FOnFiltrosChange(Sender);
+end;
+
+function TfrViewFiltroBase.ValidarCampos: Boolean;
+begin
+ Result := True;
+
+ if not VarIsNull(edtFechaIniFiltro.EditValue) and not VarIsNull(edtFechaFinFiltro.EditValue) then
+ begin
+ if (edtFechaIniFiltro.EditValue > edtFechaFinFiltro.EditValue) then
+ begin
+ ShowMessage('La fecha de inicio debe ser anterior a la fecha final');
+ edtFechaIniFiltro.SetFocus;
+ Result := False;
+ end
+ end;
+end;
+
+end.
diff --git a/Base/InfoProject.pas b/Base/InfoProject.pas
new file mode 100644
index 0000000..f9d8ced
--- /dev/null
+++ b/Base/InfoProject.pas
@@ -0,0 +1,187 @@
+{
+===============================================================================
+ Copyright (©) 2005. 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: 17-05-2005
+ Versión actual: 1.0.0
+ Fecha versión actual: 17-05-2005
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+unit InfoProject;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ TInfoProject = class(TComponent)
+ private
+ { Private declarations }
+ FFVIBuff: Pointer;
+ FFVISize: DWord;
+ FHandle: DWord;
+ FFileName: String;
+ FLanguage: Word;
+ FCodePage: Word;
+ FLanguageCodePage: String;
+ FCompanyName: String;
+ FFileDescription: String;
+ FFileVersion: String;
+ FInternalName: String;
+ FLegalCopyright: String;
+ FLegalTradeMarks: String;
+ FOriginalFileName: String;
+ FProductName: String;
+ FProductVersion: String;
+ FComments: String;
+ procedure ReadFixedFileInfo;
+ function GetLangCPage: String;
+ function GetStringFileInfo(S: String): String;
+ procedure SetFileName(const Value: String);
+ protected
+ { Protected declarations }
+ public
+ { Public declarations }
+ constructor Create(AOwner: TComponent); override;
+ function LanguageStr(Language: Word): String;
+ property FileName: String read FFileName write SetFileName;
+ property Language: Word read FLanguage;
+ property CodePage: Word read FCodePage;
+ property LanguageCodePage: String read FLanguageCodePage;
+ property CompanyName: String read FCompanyName;
+ property FileDescription: String read FFileDescription;
+ property FileVersion: String read FFileVersion;
+ property InternalName: String read FInternalName;
+ property LegalCopyright: String read FLegalCopyright;
+ property LegalTradeMarks: String read FLegalTradeMarks;
+ property OriginalFileName: String read FOriginalFileName;
+ property ProductName: String read FProductName;
+ property ProductVersion: String read FProductVersion;
+ property Comments: String read FComments;
+ published
+ { Published declarations }
+ end;
+
+implementation
+
+{ TInfoProject }
+
+constructor TInfoProject.Create(AOwner: TComponent);
+begin { of TInfoProject.Create }
+ inherited Create(AOwner);
+
+ { build current EXE filename }
+ FileName := ParamStr(0);
+end; { of TInfoProject.Create }
+
+procedure TInfoProject.ReadFixedFileInfo;
+begin { of TInfoProject.ReadFixedFileInfo }
+ { determine size of buffer required }
+ FFVISize := GetFileVersionInfoSize(PChar(FileName), FHandle);
+
+ { create buffer }
+ GetMem(FFVIBuff, FFVISize);
+ try
+
+ { load buffer }
+ GetFileVersionInfo(PChar(FileName), FHandle, FFVISize, FFVIBuff);
+
+ { extract the language/codepage info }
+ FLanguageCodePage := GetLangCPage;
+
+ { extract the other info }
+ FCompanyName := GetStringFileInfo('CompanyName');
+ FFileDescription := GetStringFileInfo('FileDescription');
+ FFileVersion := GetStringFileInfo('FileVersion');
+ FInternalName := GetStringFileInfo('InternalName');
+ FLegalCopyright := GetStringFileInfo('LegalCopyright');
+ FLegalTradeMarks := GetStringFileInfo('LegalTradeMarks');
+ FOriginalFileName := GetStringFileInfo('OriginalFileName');
+ FProductName := GetStringFileInfo('ProductName');
+ FProductVersion := GetStringFileInfo('ProductVersion');
+ FComments := GetStringFileInfo('Comments');
+
+ finally
+ { dispose buffer }
+ FreeMem(FFVIBuff, FFVISize);
+ end;
+end; { of TInfoProject.ReadFixedFileInfo }
+
+function TInfoProject.LanguageStr(Language: Word): String;
+var
+ P: array[0..255] of Char;
+ Len: Word;
+begin { of TInfoProject.LanguageStr }
+ Len := VerLanguageName(Language, P, SizeOf(P));
+ if (Len > SizeOf(P)) then
+ begin
+ { if this occurs then the P buffer is too small }
+ { so we will truncate the returned string }
+ Len := SizeOf(P);
+ end;
+ SetString(Result, P, Len);
+end; { of TInfoProject.LanguageStr }
+
+function TInfoProject.GetLangCPage: String;
+var
+ SearchString: String;
+ FVILang: array of Byte;
+ Len: DWORD;
+begin { of TInfoProject.GetLangCPage }
+ Result := '00000000';
+ if (FFVIBuff <> NIL) then
+ begin
+ SearchString := '\VarFileInfo\Translation';
+ if VerQueryValue(FFVIBuff, PChar(SearchString),
+ Pointer(FVILang), Len) then
+ begin
+ FLanguage := FVILang[0] + FVILang[1]*$100;
+ FCodePage := FVILang[2] + FVILang[3]*$100;
+ Result := IntToHex(FLanguage, 4) + IntToHex(FCodePage, 4);
+ end;
+ end;
+end; { of TInfoProject.GetLangCPage }
+
+function TInfoProject.GetStringFileInfo(S: String): String;
+var
+ SearchString: String;
+ P: PChar;
+ Len: DWORD;
+begin { of TInfoProject.GetStringFileInfo }
+ Result := '';
+ if (FFVIBuff <> NIL) then
+ begin
+ SearchString := '\StringFileInfo\'+FLanguageCodePage+'\'+S;
+ if VerQueryValue(FFVIBuff, PChar(SearchString), Pointer(P), Len) then
+ begin
+ { coded with StrLen to ditch the trailing #0 character }
+ SetString(Result, P, StrLen(P));
+ end;
+ end;
+end; { of TInfoProject.GetStringFileInfo }
+
+procedure TInfoProject.SetFileName(const Value: String);
+begin { of TInfoProject.SetFileName }
+ FFileName := ExpandUNCFileName(Value);
+
+ { read fileinfo from this new file }
+ ReadFixedFileInfo;
+
+end; { of TInfoProject.SetFileName }
+
+end.
+
diff --git a/Base/serverlog.txt b/Base/serverlog.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Base/uBizImportesCabeceraBase.pas b/Base/uBizImportesCabeceraBase.pas
new file mode 100644
index 0000000..8122119
--- /dev/null
+++ b/Base/uBizImportesCabeceraBase.pas
@@ -0,0 +1,166 @@
+unit uBizImportesCabeceraBase;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable;
+
+type
+ IBizImportesCabecera = interface(IDAStronglyTypedDataTable)
+ ['{566EE7D3-EE6D-4B01-B327-92E288A0C5A0}']
+ procedure RecalcularImporte;
+ end;
+
+ TBizIVAFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizDescuentoFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizBaseImponibleFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+
+procedure RecalcularImportesCabecera(aDataTable : TDADataTable); overload;
+procedure RecalcularImportesCabecera(aMasterTable, aDetailTable : TDADataTable); overload;
+
+implementation
+
+uses
+ SysUtils, DB, uBizImportesDetalleBase;
+
+const
+ fld_BASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_IVA = 'IVA';
+ fld_IMPORTEIVA = 'IMPORTEIVA';
+ fld_DESCUENTO = 'DESCUENTO';
+ fld_IMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_IMPORTETOTAL = 'IMPORTETOTAL';
+
+procedure RecalcularImportesCabecera(aDataTable : TDADataTable);
+{ Recalcula todos los importes de la cabecera a partir de la base imponible }
+var
+ BIField : TDAField;
+ IDField : TDAField;
+ DTOField : TDAField;
+ IVAField : TDAField;
+ IIField : TDAField;
+ ITField : TDAField;
+ EnEdicion : Boolean;
+begin
+ BIField := aDataTable.FindField(fld_BASEIMPONIBLE);
+ if not Assigned(BIField) then
+ raise Exception.Create('Campo BASEIMPONIBLE no encontrado (CalcularImportes)');
+
+ IDField := aDataTable.FindField(fld_IMPORTEDESCUENTO);
+ if not Assigned(IDField) then
+ raise Exception.Create('Campo IMPORTEDESCUENTO no encontrado (CalcularImportes)');
+
+ DTOField := aDataTable.FindField(fld_DESCUENTO);
+ if not Assigned(DTOField) then
+ raise Exception.Create('Campo DESCUENTO no encontrado (CalcularImportes)');
+
+ IVAField := aDataTable.FindField(fld_IVA);
+ if not Assigned(IVAField) then
+ raise Exception.Create('Campo IVA no encontrado (CalcularImportes)');
+
+ IIField := aDataTable.FindField(fld_IMPORTEIVA);
+ if not Assigned(IIField) then
+ raise Exception.Create('Campo IMPORTEIVA no encontrado (CalcularImportes)');
+
+ ITField := aDataTable.FindField(fld_IMPORTETOTAL);
+ if not Assigned(ITField) then
+ raise Exception.Create('Campo IMPORTETOTAL no encontrado (CalcularImportes)');
+
+ // ¿Viene en modo edición?
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ if not EnEdicion then
+ aDataTable.Edit;
+
+ IDField.Value := BIField.AsCurrency * (DTOField.AsInteger/100);
+ ITField.Value := BIField.AsCurrency - IDField.AsCurrency;
+ IIField.Value := ITField.AsCurrency * (IVAField.AsInteger/100);
+ ITField.Value := ITField.AsCurrency + IIField.AsCurrency;
+
+ if EnEdicion then
+ aDataTable.Edit; // Para dejar la tabla como estaba otra vez
+end;
+
+procedure RecalcularImportesCabecera(aMasterTable, aDetailTable : TDADataTable);
+{ Recalcula todos los importes de la cabecera a partir de los detalles }
+var
+ aDetalle : IBizImportesDetalle;
+ BIField : TDAField;
+ EnEdicion : Boolean;
+begin
+ BIField := aMasterTable.FindField(fld_BASEIMPONIBLE);
+ if not Assigned(BIField) then
+ raise Exception.Create('Campo BASEIMPONIBLE no encontrado (CalcularImportes)');
+
+ // ¿Viene en modo edición?
+ EnEdicion := (aMasterTable.State in dsEditModes);
+
+ if not EnEdicion then
+ aMasterTable.Edit;
+
+ BIField.Value := 0;
+ if aDetailTable.RecordCount > 0 then
+ if Supports(aDetailTable, IBizImportesDetalle, aDetalle) then
+ BIField.Value := aDetalle.DarSumaTotalImportes;
+
+ RecalcularImportesCabecera(aMasterTable);
+
+ if EnEdicion then
+ aMasterTable.Edit; // Para dejar la tabla como estaba otra vez
+end;
+
+
+
+{ TBizIVAFieldRules }
+
+procedure TBizIVAFieldRules.OnChange(Sender: TDACustomField);
+var
+ aCabecera : IBizImportesCabecera;
+begin
+ inherited;
+ if Supports(DataTable, IBizImportesCabecera, aCabecera) then
+ aCabecera.RecalcularImporte;
+end;
+
+{ TBizDescuentoFieldRules }
+
+procedure TBizDescuentoFieldRules.OnChange(Sender: TDACustomField);
+var
+ aCabecera : IBizImportesCabecera;
+begin
+ inherited;
+ if Supports(DataTable, IBizImportesCabecera, aCabecera) then
+ aCabecera.RecalcularImporte;
+end;
+
+{ TBizBaseImponibleFieldRules }
+
+procedure TBizBaseImponibleFieldRules.OnChange(Sender: TDACustomField);
+var
+ aCabecera : IBizImportesCabecera;
+begin
+ inherited;
+ if Supports(DataTable, IBizImportesCabecera, aCabecera) then
+ aCabecera.RecalcularImporte;
+end;
+
+initialization
+ RegisterFieldRules('Client.Field.Descuento', TBizDescuentoFieldRules);
+ RegisterFieldRules('Client.Field.IVA', TBizIVAFieldRules);
+ RegisterFieldRules('Client.Field.BaseImponible', TBizBaseImponibleFieldRules);
+
+finalization
+
+end.
diff --git a/Base/uBizImportesDetalleBase.pas b/Base/uBizImportesDetalleBase.pas
new file mode 100644
index 0000000..56cb6ce
--- /dev/null
+++ b/Base/uBizImportesDetalleBase.pas
@@ -0,0 +1,1034 @@
+unit uBizImportesDetalleBase;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable;
+
+const
+ TIPODETALLE_CONCEPTO = 'C';
+ TIPODETALLE_TITULO = 'T';
+ TIPODETALLE_SUBTOTAL = 'S';
+
+ VISIBLE_TRUE = 'S';
+ VISIBLE_FALSE = 'N';
+
+ fld_NUMCONCEPTO = 'NUMCONCEPTO';
+ fld_POSICION = 'POSICION';
+ fld_TIPODETALLE = 'TIPO';
+ fld_IMPORTETOTAL = 'IMPORTETOTAL';
+ fld_CANTIDAD = 'CANTIDAD';
+ fld_IMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_VISIBLE = 'VISIBLE';
+ fld_DESCRIPCION = 'DESCRIPCION';
+ fld_PUNTOS = 'PUNTOS';
+ fld_IMPORTEPUNTOS = 'IMPORTEPUNTOS';
+
+type
+ { IMPORTANTE **********************************************************
+ PARCHE TEMPORAL -> Para evitar que se disparen los eventos de la clase
+ de negocio cuando se hace el CancelUpdates de los detalles (se restaura
+ la tabla a partir de los deltas y esto provoca que se disparen los eventos y
+ se producen muchos fallos }
+ IParche = interface
+ ['{275F080F-054E-4E5A-BDF2-FE3494790388}']
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ end;
+
+
+ IBizImportesDetalle = interface(IDAStronglyTypedDataTable)
+ ['{16A36AC3-FABD-4809-A238-A806F1D02B95}']
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ end;
+
+ IBizPuntosDetalle = interface(IBizImportesDetalle)
+ ['{72002878-BD11-4BB8-AB85-73E321A6D595}']
+ end;
+
+ IBizVisibleDetalle = interface(IDAStronglyTypedDataTable)
+ ['{6BA5B3BF-2E92-4465-A328-60F90F7EA3D2}']
+ end;
+
+ TBizCantidadFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizImporteUnidadFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizTipoDetalleFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizPuntosFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizImportePuntosFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizVisibleFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+function DarMaximoNumConcepto(aDataTable : TDADataTable): integer;
+function DarMaximaPosicion(aDataTable : TDADataTable): integer;
+procedure IntercambiarPosiciones(aDataTable : TDADataTable; Pos1, Pos2 : Integer);
+procedure ReasignarPosiciones(aDataTable : TDADataTable);
+procedure AsignarPosicion(aDataTable : TDADataTable; IsAppend : Boolean);
+
+procedure AsignarNumConcepto(aDataTable : TDADataTable);
+
+procedure RecalcularImporteDetalle(aDataTable : TDADataTable; TieneSubtotales : Boolean; TienePuntos : Boolean);
+procedure RecalcularSubtotales(aDataTable : TDADataTable);
+function DarTotalDetalles(aDataTable : TDADataTable; TieneSubtotales : Boolean; TienePuntos : Boolean) : Currency;
+
+procedure RellenarImportePuntosEnCapitulo(aDataTable : TDADataTable);
+
+procedure RellenarVisibleEnCapitulo(aDataTable : TDADataTable);
+
+procedure RecalcularTodo(aDataTable : TDADataTable);
+
+implementation
+
+uses
+ SysUtils, DB, uBizImportesCabeceraBase, Controls, Forms, Dialogs, variants;
+
+procedure RecalcularTodo(aDataTable : TDADataTable);
+var
+ aDetalle : IBizImportesDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+
+ { PARCHE ********************************** }
+ if Supports(aDataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(aDataTable, IBizImportesDetalle, aDetalle) then
+ begin
+ if aDetalle.DataTable.Editing then
+ aDetalle.DataTable.post;
+
+ aDetalle.RecalcularImporte;
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ begin
+ if ACabecera.DataTable.Editing then
+ ACabecera.Post;
+ ACabecera.RecalcularImporte;
+ end;
+ end;
+end;
+
+
+procedure IntercambiarPosiciones(aDataTable : TDADataTable; Pos1, Pos2 : Integer);
+{ Intercambia los valores del campo 'POSICION' de dos filas }
+var
+ ABookmark : Pointer;
+ AField : TDAField;
+ AFieldTipo : TDAField;
+ ACursor: TCursor;
+ bRecalcularSubtotales : Boolean;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (IntercambiarPosicion)');
+
+ AField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo POSICION no encontrado (IntercambiarPosicion)');
+
+ // No importa si el TIPO no está en la lista de columnas
+ AFieldTipo := aDataTable.FindField(fld_TIPODETALLE);
+
+ if (aDataTable.State in dsEditModes) then
+ aDataTable.Post;
+
+ bRecalcularSubtotales := False;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ //aDataTable.DisableEventHandlers; <- No descomentar
+ aDataTable.DisableControls;
+ ABookmark := aDataTable.GetBookMark;
+ try
+ aDataTable.First;
+ if aDataTable.Locate(fld_POSICION, Pos1, []) then
+ begin
+ // Si alguna de las dos filas es un subtotal, hay que recalcular todo
+ if Assigned(AFieldTipo) and ((AFieldTipo.AsString = TIPODETALLE_SUBTOTAL) or
+ (AFieldTipo.AsString = TIPODETALLE_TITULO)) then
+ bRecalcularSubtotales := True;
+
+ aDataTable.Edit;
+ AField.AsInteger := 0; // Ponemos el 0 temporalmente
+ aDataTable.Post;
+
+ aDataTable.First;
+ if aDataTable.Locate(fld_POSICION, Pos2, []) then
+ begin
+ // Si alguna de las dos filas es un subtotal, hay que recalcular todo
+ if Assigned(AFieldTipo) and ((AFieldTipo.AsString = TIPODETALLE_SUBTOTAL) or
+ (AFieldTipo.AsString = TIPODETALLE_TITULO)) then
+ bRecalcularSubtotales := True;
+
+ aDataTable.Edit;
+ AField.AsInteger := Pos1;
+ aDataTable.Post;
+
+ aDataTable.First;
+ aDataTable.Locate(fld_POSICION, 0, []);
+ aDataTable.Edit;
+ AField.AsInteger := Pos2;
+ aDataTable.Post;
+ end
+ else
+ raise Exception.Create('No se ha encontrado posición 2 (IntercambiarPosicion)');
+ end
+ else
+ raise Exception.Create('No se ha encontrado posición 1 (IntercambiarPosicion)');
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ //aDataTable.EnableEventHandlers; <- No descomentar
+ if bRecalcularSubtotales then
+ RecalcularSubtotales(aDataTable);
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+
+function DarMaximoNumConcepto(aDataTable : TDADataTable): integer;
+{ Devuelve el valor máximo del campo 'NUMCONCEPTO' }
+var
+ ABookmark : Pointer;
+ AField : TDAField;
+ ACursor: TCursor;
+begin
+ Result := 0;
+
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (DarMaximoNumConcepto)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ AField := aDataTable.FindField(fld_NUMCONCEPTO);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo NUMCONCEPTO no encontrado (DarMaximoNumConcepto)');
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ ABookmark := aDataTable.GetBookMark;
+ try
+ aDataTable.DisableControls;
+ aDataTable.DisableEventHandlers;
+ aDataTable.First;
+ while not aDataTable.Eof do
+ begin
+ if AField.AsInteger > Result then
+ Result := AField.AsInteger;
+ aDataTable.Next;
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ aDataTable.EnableEventHandlers;
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function DarMaximaPosicion(aDataTable : TDADataTable): integer;
+{ Devuelve el valor máximo del campo 'POSICION' }
+var
+ ABookmark : Pointer;
+ AField : TDAField;
+ ACursor: TCursor;
+begin
+ //Sort(['ForeignKeyFieldofMasterDetailRelation','YourSortField'],[sdAscending, NeededOrder ]);
+ Result := 0;
+
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (DarMaximaPosicion)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ AField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo POSICION no encontrado (DarMaximaPosicion)');
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ ABookmark := aDataTable.GetBookMark;
+ try
+ aDataTable.DisableControls;
+ aDataTable.DisableEventHandlers;
+ aDataTable.First;
+ while not aDataTable.Eof do
+ begin
+ if AField.AsInteger > Result then
+ Result := AField.AsInteger;
+ aDataTable.Next;
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ aDataTable.EnableEventHandlers;
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure ReasignarPosiciones(aDataTable : TDADataTable);
+{ Recalcula el valor del campo 'POSICION' de todas las filas
+ para eliminar huecos }
+var
+ AField : TDAField;
+ ABookmark : Pointer;
+ Contador : Integer;
+ NumCon : Integer;
+ TotalConceptos : Integer;
+ DetallesEditados : Integer;
+ ACursor: TCursor;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (ReasignarNumConceptos)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ AField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo POSICION no encontrado (ReasignarNumConceptos)');
+
+ Contador := 1;
+ NumCon := 1;
+ TotalConceptos := aDataTable.RecordCount;
+ DetallesEditados := 0;
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ ABookmark := aDataTable.GetBookMark;
+ aDataTable.DisableControls;
+ //aDataTable.DisableEventHandlers; <-- No descomentar
+ try
+ aDataTable.First;
+ while DetallesEditados < TotalConceptos do
+ begin
+ if aDataTable.Locate(fld_POSICION, Contador, []) then
+ begin
+ aDataTable.Edit;
+ AField.Value := NumCon;
+ Inc(NumCon);
+ aDataTable.Post;
+ Inc(DetallesEditados);
+ aDataTable.First;
+ end;
+ Inc(Contador);
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ //aDataTable.EnableEventHandlers; <-- No descomentar
+ aDataTable.EnableControls;
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure AsignarPosicion(aDataTable : TDADataTable; IsAppend : Boolean);
+{ Calcula el valor del campo 'POSICION' para una fila nueva. Incrementa en 1
+ a las filas que estén por debajo de esa fila nueva }
+var
+ AField : TDAField;
+ ABookmark : Pointer;
+ NumPosicion : Integer;
+ MaxPosicion : Integer;
+ ACursor: TCursor;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (AsignarPosicion)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ AField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo POSICION no encontrado (AsignarPosicion)');
+
+ if not IsAppend then
+ begin
+ if not aDataTable.IsEmpty then
+ begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+ // Mover las filas que están por debajo de la actual
+ MaxPosicion := DarMaximaPosicion(aDataTable);
+ NumPosicion := (AField.AsInteger * (-1));
+ ABookmark := aDataTable.GetBookMark;
+ try
+ aDataTable.First;
+ while aDataTable.Locate(fld_POSICION, MaxPosicion, []) do
+ begin
+ aDataTable.Edit;
+ AField.Value := MaxPosicion + 1;
+ aDataTable.Post;
+ aDataTable.First;
+ if MaxPosicion = NumPosicion then
+ Break
+ else
+ Dec(MaxPosicion);
+ end
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ Screen.Cursor := ACursor;
+ end;
+ end;
+ NumPosicion := (AField.AsInteger * (-1));
+ end
+ else begin
+ if aDataTable.RecordCount > 1 then
+ NumPosicion := DarMaximaPosicion(aDataTable) + 1
+ else
+ // Sólo hay una fila en toda la tabla
+ NumPosicion := (AField.AsInteger * (-1));
+ end;
+
+ // Asignar posición a la nueva fila
+ aDataTable.Edit;
+ AField.Value := NumPosicion;
+ aDataTable.Post;
+end;
+
+procedure AsignarNumConcepto(aDataTable : TDADataTable);
+{ Asigna el valor del campo 'NUMCONCEPTO' para una fila nueva }
+var
+ AField : TDAField;
+ MaxConcepto : Integer;
+ ACursor: TCursor;
+ EnEdicion : Boolean;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (AsignarNumConcepto)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ AField := aDataTable.FindField(fld_NUMCONCEPTO);
+ if not Assigned(AField) then
+ raise Exception.Create('Campo NUMCONCEPTO no encontrado (AsignarNumConcepto)');
+
+ // ¿Viene en modo edición?
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ MaxConcepto := DarMaximoNumConcepto(aDataTable);
+
+ if not aDataTable.IsEmpty then
+ begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+ try
+ if not EnEdicion then
+ aDataTable.Edit;
+ AField.AsInteger := MaxConcepto + 1;
+ aDataTable.Post;
+
+ if EnEdicion then
+ aDataTable.Edit;
+ finally
+ Screen.Cursor := ACursor;
+ aDataTable.EnableControls;
+ end;
+ end;
+end;
+
+
+procedure RecalcularImporteDetalle(aDataTable : TDADataTable; TieneSubtotales : Boolean; TienePuntos : Boolean);
+var
+ TipoField : TDAField;
+ TotalField : TDAField;
+ CantidadField : TDAField;
+ ImporteUnidadField : TDAField;
+ PuntosField : TDAField;
+ ImportePuntosField : TDAField;
+ EnEdicion : Boolean;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (RecalcularImporteDetalle)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ // ¿Viene en modo edición?
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ TotalField := aDataTable.FindField(fld_IMPORTETOTAL);
+ if not Assigned(TotalField) then
+ raise Exception.Create('Campo IMPORTETOTAL no encontrado (RecalcularImporteDetalle)');
+
+ CantidadField := aDataTable.FindField(fld_CANTIDAD);
+ if not Assigned(CantidadField) then
+ raise Exception.Create('Campo CANTIDAD no encontrado (RecalcularImporteDetalle)');
+
+ ImporteUnidadField := aDataTable.FindField(fld_IMPORTEUNIDAD);
+ if not Assigned(ImporteUnidadField) then
+ raise Exception.Create('Campo IMPORTEUNIDAD no encontrado (RecalcularImporteDetalle)');
+
+ if TienePuntos then
+ begin
+ PuntosField := aDataTable.FindField(fld_PUNTOS);
+ if not Assigned(PuntosField) then
+ raise Exception.Create('Campo PUNTOS no encontrado (RecalcularImporteDetalle)');
+
+ ImportePuntosField := aDataTable.FindField(fld_IMPORTEPUNTOS);
+ if not Assigned(ImportePuntosField) then
+ raise Exception.Create('Campo IMPORTEPUNTOS no encontrado (RecalcularImporteDetalle)');
+ end;
+
+ if TieneSubtotales then
+ begin
+ TipoField := aDataTable.FindField(fld_TIPODETALLE);
+ if not Assigned(TipoField) then
+ raise Exception.Create('Campo TIPO no encontrado (RecalcularImporteDetalle)');
+ end;
+
+ //
+ if not EnEdicion then
+ aDataTable.Edit;
+
+ aDataTable.DisableEventHandlers;
+ // Calcular el importe de la línea
+ try
+ if (TieneSubtotales) and ((TipoField.AsString = TIPODETALLE_SUBTOTAL) or
+ (TipoField.AsString = TIPODETALLE_TITULO)) then
+ begin
+ CantidadField.Value := NULL;
+ ImporteUnidadField.Value := NULL;
+ TotalField.Value := NULL;
+
+ if (TienePuntos) then
+ begin
+ PuntosField.Value := NULL;
+ if (TipoField.AsString = TIPODETALLE_SUBTOTAL) then
+ ImportePuntosField.Value := NULL;
+ end;
+ end
+ else begin
+ if TienePuntos and
+ ((PuntosField.Value <> NULL) and (ImportePuntosField.Value <> NULL)) then
+ ImporteUnidadField.Value := PuntosField.AsInteger * ImportePuntosField.AsCurrency;
+
+ TotalField.Value := CantidadField.AsCurrency * ImporteUnidadField.AsCurrency;
+ end;
+ finally
+ aDataTable.EnableEventHandlers;
+ if not EnEdicion then
+ aDataTable.Post;
+ end;
+end;
+
+procedure RecalcularSubtotales(aDataTable : TDADataTable);
+{ Recalcula el valor de todos los subtotales de la tabla }
+var
+ ABookmark : Pointer;
+ APosicion : Integer;
+ MaxPos : Integer;
+ Total : Currency;
+ Subtotal : Currency;
+ TipoField : TDAField;
+ TotalField : TDAField;
+ ACursor: TCursor;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (RecalcularTodosSubtotales)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ TipoField := aDataTable.FindField(fld_TIPODETALLE);
+ if not Assigned(TipoField) then
+ raise Exception.Create('Campo TIPO no encontrado (RecalcularTodosSubtotales)');
+
+ TotalField := aDataTable.FindField(fld_IMPORTETOTAL);
+ if not Assigned(TotalField) then
+ raise Exception.Create('Campo IMPORTETOTAL no encontrado (RecalcularTodosSubtotales)');
+
+ ABookmark := aDataTable.GetBookMark;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+// aDataTable.DisableEventHandlers; <- No descomentar
+
+ if (aDataTable.State in dsEditModes) then
+ aDataTable.Post;
+
+ APosicion := 1;
+ Total := 0;
+ Subtotal := 0;
+ try
+ MaxPos := DarMaximaPosicion(aDataTable);
+ while (APosicion <= MaxPos) do
+ begin
+ aDataTable.First;
+ if aDataTable.Locate(fld_POSICION, APosicion, []) then
+ begin
+ if (TipoField.AsString = TIPODETALLE_TITULO) then
+ Subtotal := 0
+ else if (TipoField.AsString = TIPODETALLE_SUBTOTAL) then
+ begin
+ try
+ aDataTable.Edit;
+ TotalField.Value := SubTotal;
+ aDataTable.Post;
+ Total := Total + SubTotal;
+ Subtotal := 0;
+ except
+ on E : Exception do
+ ShowMessage(E.Message);
+ end;
+ end
+ else begin
+ Subtotal := Subtotal + TotalField.AsCurrency;
+ if (APosicion = MaxPos) then
+ Total := Total + SubTotal;
+ end;
+ Inc(APosicion);
+ end
+ else
+ Break;
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+// aDataTable.EnableEventHandlers; <- No descomentar
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function DarTotalDetalles(aDataTable : TDADataTable; TieneSubtotales : Boolean; TienePuntos : Boolean) : Currency;
+{ Calcula el total de todos los detalles a partir del importe total de cada uno }
+var
+ EnEdicion : Boolean;
+ ABookmark : Pointer;
+ APosicion : Integer;
+ MaxPos : Integer;
+ Total : Currency;
+ Subtotal : Currency;
+ TipoField : TDAField;
+ TotalField : TDAField;
+ ACursor: TCursor;
+begin
+ Result := 0;
+
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (DarTotalDetalles)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ if TieneSubtotales then
+ begin
+ TipoField := aDataTable.FindField(fld_TIPODETALLE);
+ if not Assigned(TipoField) then
+ raise Exception.Create('Campo TIPO no encontrado (DarTotalDetalles)');
+ end;
+
+ TotalField := aDataTable.FindField(fld_IMPORTETOTAL);
+ if not Assigned(TotalField) then
+ raise Exception.Create('Campo IMPORTETOTAL no encontrado (DarTotalDetalles)');
+
+ ABookmark := aDataTable.GetBookMark;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+// aDataTable.DisableEventHandlers; <- No descomentar
+
+ // ¿Viene en modo edición?
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ if EnEdicion then
+ aDataTable.Post;
+
+ APosicion := 1;
+ Total := 0;
+ Subtotal := 0;
+ try
+ MaxPos := DarMaximaPosicion(aDataTable);
+ while (APosicion <= MaxPos) do
+ begin
+ aDataTable.First;
+ if aDataTable.Locate(fld_POSICION, APosicion, []) then
+ begin
+ if TieneSubtotales and (TipoField.AsString = TIPODETALLE_SUBTOTAL) then
+ begin
+ Total := Total + SubTotal;
+ Subtotal := 0;
+ end
+ else begin
+ Subtotal := Subtotal + TotalField.AsCurrency;
+ if (APosicion = MaxPos) then
+ Total := Total + SubTotal;
+ end;
+ Inc(APosicion);
+ end
+ else
+ Break;
+ end;
+ finally
+ Result := Total;
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+// aDataTable.EnableEventHandlers; <- No descomentar
+ if EnEdicion then
+ aDataTable.Edit;
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+
+procedure RellenarImportePuntosEnCapitulo(aDataTable : TDADataTable);
+{ Rellena el importe de puntos a todos los conceptos de un capítulo. El cursor
+ está puesto en la fila que es el título. }
+var
+ ABookmark : Pointer;
+ APosicion : Integer;
+ MaxPos : Integer;
+ ImportePuntos : Currency;
+ TipoField : TDAField;
+ PosicionField : TDAField;
+ ImportePuntosField : TDAField;
+ ACursor: TCursor;
+ EnEdicion : Boolean;
+ ADetalle : IBizImportesDetalle;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (RellenarImportePuntosEnCapitulo)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ if not Supports(aDataTable, IBizImportesDetalle, ADetalle) then
+ raise Exception.Create('La tabla no soporta la interfaz requerida (RellenarImportePuntosEnCapitulo)');
+
+ PosicionField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(PosicionField) then
+ raise Exception.Create('Campo POSICION no encontrado (RellenarImportePuntosEnCapitulo)');
+
+ TipoField := aDataTable.FindField(fld_TIPODETALLE);
+ if not Assigned(TipoField) then
+ raise Exception.Create('Campo TIPO no encontrado (RellenarImportePuntosEnCapitulo)');
+
+ ImportePuntosField := aDataTable.FindField(fld_IMPORTEPUNTOS);
+ if not Assigned(ImportePuntosField) then
+ raise Exception.Create('Campo IMPORTEPUNTOS no encontrado (RellenarImportePuntosEnCapitulo)');
+
+ ABookmark := aDataTable.GetBookMark;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ if EnEdicion then
+ aDataTable.Post;
+
+ APosicion := PosicionField.Value + 1; // La posición siguiente a la fila de TITULO
+ ImportePuntos := aDataTable.FindField(fld_IMPORTEPUNTOS).AsCurrency; // Importe de puntos de la fila de TITULO
+
+ try
+ MaxPos := DarMaximaPosicion(aDataTable);
+ while (APosicion <= MaxPos) do
+ begin
+ if aDataTable.Locate(fld_POSICION, APosicion, []) then
+ begin
+ if (TipoField.AsString = TIPODETALLE_CONCEPTO) then
+ begin
+ aDataTable.Edit;
+ aDataTable.DisableEventHandlers; // Para que no salten otros eventos
+ try
+ ImportePuntosField.AsCurrency := ImportePuntos;
+ ADetalle.RecalcularImporte;
+ finally
+ aDataTable.EnableEventHandlers;
+ end;
+ aDataTable.Post;
+ Inc(APosicion);
+ end
+ else
+ break; // Es una fila de SUBTOTAL o de TITULO
+ end
+ else
+ raise Exception.Create('Hay un hueco en la numeración de posiciones');
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ Screen.Cursor := ACursor;
+ if EnEdicion then
+ aDataTable.Edit;
+ end;
+end;
+
+
+procedure RellenarVisibleEnCapitulo(aDataTable : TDADataTable);
+{ Rellena VISIBLE de todos los conceptos de un capítulo. El cursor
+ está puesto en la fila que es el título. }
+var
+ ABookmark : Pointer;
+ APosicion : Integer;
+ MaxPos : Integer;
+ TipoField : TDAField;
+ PosicionField : TDAField;
+ VisibleField : TDAField;
+ ACursor: TCursor;
+ EnEdicion : Boolean;
+ EsVisible : String;
+begin
+ if not Assigned(aDataTable) then
+ raise Exception.Create('Tabla no asignada (RellenarVisibleEnCapitulo)');
+
+ if aDataTable.RecordCount < 1 then
+ Exit;
+
+ PosicionField := aDataTable.FindField(fld_POSICION);
+ if not Assigned(PosicionField) then
+ raise Exception.Create('Campo POSICION no encontrado (RellenarVisibleEnCapitulo)');
+
+ TipoField := aDataTable.FindField(fld_TIPODETALLE);
+ if not Assigned(TipoField) then
+ raise Exception.Create('Campo TIPO no encontrado (RellenarVisibleEnCapitulo)');
+
+ VisibleField := aDataTable.FindField(fld_VISIBLE);
+ if not Assigned(VisibleField) then
+ raise Exception.Create('Campo VISIBLE no encontrado (RellenarVisibleEnCapitulo)');
+
+ ABookmark := aDataTable.GetBookMark;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ aDataTable.DisableControls;
+
+ EnEdicion := (aDataTable.State in dsEditModes);
+
+ if EnEdicion then
+ aDataTable.Post;
+
+ APosicion := PosicionField.Value + 1; // La posición siguiente a la fila de TITULO
+ EsVisible := VisibleField.AsString; // Valor de VISIBLE de la fila de TITULO
+
+ try
+ MaxPos := DarMaximaPosicion(aDataTable);
+ while (APosicion <= MaxPos) do
+ begin
+ if aDataTable.Locate(fld_POSICION, APosicion, []) then
+ begin
+ if (TipoField.AsString = TIPODETALLE_CONCEPTO) then
+ begin
+ aDataTable.Edit;
+ aDataTable.DisableEventHandlers; // Para que no salten otros eventos
+ try
+ VisibleField.AsString := EsVisible;
+ finally
+ aDataTable.EnableEventHandlers;
+ end;
+ aDataTable.Post;
+ Inc(APosicion);
+ end
+ else
+ break; // Es una fila de SUBTOTAL o de TITULO
+ end
+ else
+ raise Exception.Create('Hay un hueco en la numeración de posiciones');
+ end;
+ finally
+ aDataTable.GotoBookmark(ABookmark);
+ aDataTable.EnableControls;
+ Screen.Cursor := ACursor;
+ if EnEdicion then
+ aDataTable.Edit;
+ end;
+end;
+
+{ TBizCantidadFieldRules }
+
+procedure TBizCantidadFieldRules.OnChange(Sender: TDACustomField);
+var
+ aDetalle : IBizImportesDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(DataTable, IBizImportesDetalle, aDetalle) then
+ begin
+ if Sender.Value = 0 then
+ Sender.Value := Null;
+
+ aDetalle.RecalcularImporte;
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+end;
+
+procedure TBizImporteUnidadFieldRules.OnChange(Sender: TDACustomField);
+var
+ aDetalle : IBizImportesDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(DataTable, IBizImportesDetalle, aDetalle) then
+ begin
+ if Sender.Value = 0 then
+ Sender.Value := Null;
+
+ aDetalle.RecalcularImporte;
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+end;
+
+procedure TBizTipoDetalleFieldRules.OnChange(Sender: TDACustomField);
+var
+ aDetalle : IBizImportesDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if (Sender.AsString = TIPODETALLE_SUBTOTAL) or
+ (Sender.AsString = TIPODETALLE_TITULO) then
+ if Supports(DataTable, IBizImportesDetalle, aDetalle) then
+ begin
+ aDetalle.RecalcularImporte;
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+end;
+
+procedure TBizPuntosFieldRules.OnChange(Sender: TDACustomField);
+var
+ aDetalle : IBizPuntosDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(DataTable, IBizPuntosDetalle, aDetalle) then
+ begin
+ if Sender.Value = 0 then
+ Sender.Value := Null;
+
+ aDetalle.RecalcularImporte;
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+end;
+
+procedure TBizImportePuntosFieldRules.OnChange(
+ Sender: TDACustomField);
+var
+ aDetalle : IBizPuntosDetalle;
+ aCabecera : IBizImportesCabecera;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(DataTable, IBizPuntosDetalle, aDetalle) then
+ begin
+ if Sender.Value = 0 then
+ Sender.Value := Null;
+
+ aDetalle.RecalcularImporte;
+ if Assigned(aDetalle.DataTable.FindField(fld_TIPODETALLE)) then
+ if (aDetalle.DataTable.FindField(fld_TIPODETALLE).AsString = TIPODETALLE_TITULO) then
+ RellenarImportePuntosEnCapitulo(aDetalle.DataTable);
+ RecalcularSubtotales(aDetalle.DataTable);
+ if Assigned(aDetalle.DataTable.MasterSource) and
+ Supports(aDetalle.DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+end;
+
+{ TBizVisibleFieldRules }
+
+procedure TBizVisibleFieldRules.OnChange(Sender: TDACustomField);
+var
+ aDetalle : IBizVisibleDetalle;
+ aParche : IParche;
+begin
+ inherited;
+
+ { PARCHE ********************************** }
+ if Supports(DataTable, IParche, aParche) and
+ not (aParche.PuedoLanzarEvento) then
+ Exit;
+
+ if Supports(DataTable, IBizVisibleDetalle, aDetalle) then
+ begin
+ if Assigned(aDetalle.DataTable.FindField(fld_TIPODETALLE)) then
+ if (aDetalle.DataTable.FindField(fld_TIPODETALLE).AsString = TIPODETALLE_TITULO) then
+ RellenarVisibleEnCapitulo(aDetalle.DataTable);
+ end;
+end;
+
+initialization
+ RegisterFieldRules('Client.Field.Cantidad', TBizCantidadFieldRules);
+ RegisterFieldRules('Client.Field.ImporteUnidad', TBizImporteUnidadFieldRules);
+ RegisterFieldRules('Client.Field.TipoDetalle', TBizTipoDetalleFieldRules);
+
+ RegisterFieldRules('Client.Field.ImportePuntos', TBizImportePuntosFieldRules);
+ RegisterFieldRules('Client.Field.Puntos', TBizPuntosFieldRules);
+
+ RegisterFieldRules('Client.Field.Visible', TBizVisibleFieldRules);
+
+finalization
+
+end.
diff --git a/Base/uBizInformesBase.pas b/Base/uBizInformesBase.pas
new file mode 100644
index 0000000..3a96c41
--- /dev/null
+++ b/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/Base/uConfigurarConexion.dfm b/Base/uConfigurarConexion.dfm
new file mode 100644
index 0000000..9ccb99c
--- /dev/null
+++ b/Base/uConfigurarConexion.dfm
@@ -0,0 +1,111 @@
+object fConfigurarConexion: TfConfigurarConexion
+ Left = 425
+ Top = 509
+ Width = 399
+ Height = 179
+ ActiveControl = edtServer
+ Caption = 'Configuraci'#243'n de la conexi'#243'n'
+ 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 bProbar: TButton
+ Left = 8
+ Top = 113
+ Width = 105
+ 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 de FactuGES'
+ TabOrder = 0
+ DesignSize = (
+ 375
+ 97)
+ object Label1: TLabel
+ Left = 18
+ Top = 30
+ 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 = 128
+ Top = 24
+ Width = 231
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 0
+ end
+ object edtPort: TEdit
+ Left = 128
+ Top = 56
+ Width = 116
+ 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 = 'FactuGES'
+ 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/Base/uConfigurarConexion.pas b/Base/uConfigurarConexion.pas
new file mode 100644
index 0000000..d23547a
--- /dev/null
+++ b/Base/uConfigurarConexion.pas
@@ -0,0 +1,78 @@
+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, FactuGES_Intf, uDataModuleBase;
+
+{$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
+ try
+ HTTPChannel.TargetURL := TargetURL;
+ (CoService as IsrvLogin).Ping;
+ Application.MessageBox('Conexión válida con el servidor.', 'FactuGES', MB_OK);
+ finally
+ end;
+end;
+
+procedure TfConfigurarConexion.FormCreate(Sender: TObject);
+begin
+ HTTPChannel.OnFailure := dmBase.ROChannelFailure;
+end;
+
+end.
diff --git a/Base/uDBSelectionList.pas b/Base/uDBSelectionList.pas
new file mode 100644
index 0000000..6bb38db
--- /dev/null
+++ b/Base/uDBSelectionList.pas
@@ -0,0 +1,125 @@
+unit uDBSelectionList;
+
+interface
+
+uses
+ uDADataTable, Classes, DB;
+
+type
+ TSelectedRowList = class;
+
+ ISelectedRowList = interface
+ ['{1886B04A-DB0D-40AE-BCAE-DA57CD4CD582}']
+ function GetSelectedRows : TSelectedRowList;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ TSelectedRowList = class
+ private
+ FDataTable: TDADataTable;
+ FList: TList;
+ function GetCount: Integer;
+ function GetCurrentRowSelected: Boolean;
+ function GetItem(Index: Integer): TBookmark;
+ procedure SetCurrentRowSelected(Value: Boolean);
+ protected
+ function CurrentRow: TBookmark;
+ function Compare(const Item1, Item2: TBookmark): Boolean;
+ public
+ constructor Create(ADataTable : TDADataTable);
+ destructor Destroy; override;
+ procedure Clear; // free all bookmarks
+ function Find(const Item: TBookmark; var Index: Integer): Boolean;
+ function IndexOf(const Item: TBookmark): Integer;
+ property Count: Integer read GetCount;
+ property CurrentRowSelected: Boolean read GetCurrentRowSelected
+ write SetCurrentRowSelected;
+ property Items[Index: Integer]: TBookmark read GetItem; default;
+ end;
+
+
+implementation
+
+uses
+ DBConsts;
+
+{ TSelectedRowList }
+
+constructor TSelectedRowList.Create(ADataTable : TDADataTable);
+begin
+ inherited Create;
+ FList := TList.Create;
+ FDataTable := ADataTable;
+end;
+
+destructor TSelectedRowList.Destroy;
+begin
+ Clear;
+ FList.Free;
+ FDataTable := NIL;
+ inherited Destroy;
+end;
+
+procedure TSelectedRowList.Clear;
+begin
+ if FList.Count = 0 then
+ Exit;
+ FList.Clear;
+end;
+
+function TSelectedRowList.Compare(const Item1, Item2: TBookmark): Boolean;
+begin
+ Result := (Item1 = Item2);
+end;
+
+function TSelectedRowList.CurrentRow: TBookmark;
+begin
+ if not FDataTable.Active then
+ raise EDatabaseError.Create(sDataSetClosed);
+ Result := FDataTable.GetBookMark
+end;
+
+function TSelectedRowList.GetCurrentRowSelected: Boolean;
+var
+ Index: Integer;
+begin
+ Result := Find(CurrentRow, Index);
+end;
+
+function TSelectedRowList.Find(const Item: TBookmark; var Index: Integer): Boolean;
+begin
+ Index := FList.IndexOf(Item);
+ Result := (Index > -1)
+end;
+
+function TSelectedRowList.GetCount: Integer;
+begin
+ Result := FList.Count;
+end;
+
+function TSelectedRowList.GetItem(Index: Integer): TBookmark;
+begin
+ Result := FList[Index];
+end;
+
+function TSelectedRowList.IndexOf(const Item: TBookmark): Integer;
+begin
+ Result := FList.IndexOf(Item);
+end;
+
+procedure TSelectedRowList.SetCurrentRowSelected(Value: Boolean);
+var
+ Index: Integer;
+ Current: TBookmark;
+begin
+ Current := CurrentRow;
+ if (Find(Current, Index) = Value) then
+ Exit;
+ if Value then
+ FList.Add(Current)
+ else
+ FList.Delete(Index);
+end;
+
+
+end.
diff --git a/Base/uDataModuleBase.ddp b/Base/uDataModuleBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uDataModuleBase.ddp differ
diff --git a/Base/uDataModuleBase.dfm b/Base/uDataModuleBase.dfm
new file mode 100644
index 0000000..9b17daa
--- /dev/null
+++ b/Base/uDataModuleBase.dfm
@@ -0,0 +1,1660 @@
+object dmBase: TdmBase
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ Left = 616
+ Top = 230
+ Height = 368
+ Width = 494
+ 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
+ ServerLocators = <>
+ DispatchOptions = []
+ ProbeServers = False
+ ProbeFrequency = 60000
+ UserAgent = 'RemObjects SDK'
+ TargetURL = 'http://localhost:8099/bin'
+ KeepConnection = True
+ OnProgress = ROChannelProgress
+ 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 = '(NoVac'#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 = 'presione el bot'#243'n para 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
+ 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
+ ServiceName = 'srvConfiguracion'
+ Message = ROMessage
+ Channel = ROChannel
+ Left = 424
+ Top = 92
+ end
+end
diff --git a/Base/uDataModuleBase.pas b/Base/uDataModuleBase.pas
new file mode 100644
index 0000000..0e707cf
--- /dev/null
+++ b/Base/uDataModuleBase.pas
@@ -0,0 +1,216 @@
+unit uDataModuleBase;
+
+interface
+
+uses
+ Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher,
+ TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage,
+ uROServiceComponent, uRORemoteService, uROWinInetHttpChannel,
+ DataAbstract_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3,
+ FactuGES_Intf, JvAppStorage, JvAppRegistryStorage, SysUtils,
+ JvComponentBase;
+
+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
+ procedure ConfigurarConexion;
+ 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;
+ function darRutaDocumentos: Variant;
+ function darVersion: String;
+ end;
+
+var
+ dmBase: TdmBase;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Dialogs, Variants, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows,
+ uVentanaEspera, InfoProject;
+
+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
+ 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.darRutaDocumentos: Variant;
+var
+ Ruta: String;
+begin
+ Ruta := (RORemoteService as IsrvConfiguracion).darRutaDocumentos;
+ if DirectoryExists(Ruta)
+ then Result := Ruta
+ else Result := Null;
+end;
+
+function TdmBase.darVersion: String;
+var
+ InfoProject : TInfoProject;
+begin
+ InfoProject := TInfoProject.Create(Self);
+ Result := 'v' + InfoProject.FileVersion;
+ FreeAndNil(InfoProject);
+end;
+
+initialization
+ dmBase := TdmBase.Create(NIL);
+
+finalization
+ dmBase.Free;
+
+end.
diff --git a/Base/uDataTableUtils.pas b/Base/uDataTableUtils.pas
new file mode 100644
index 0000000..d4ce4a7
--- /dev/null
+++ b/Base/uDataTableUtils.pas
@@ -0,0 +1,167 @@
+unit uDataTableUtils;
+
+interface
+
+uses
+ uDACDSDataTable, uDADataTable, uDAInterfaces;
+
+procedure CloneDataTable(const ASource : TDACDSDataTable;
+ var ATarget : TDACDSDataTable); overload;
+
+procedure DeleteAllTable(const ADataTable : TDADataTable);
+
+function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean;
+
+implementation
+
+uses
+ uDAClasses, SysUtils;
+
+procedure DeleteAllTable(const ADataTable : TDADataTable);
+var
+ i : Integer;
+begin
+ ADataTable.ClearRows;
+ { if ADataTable.RecordCount > 0 then
+ begin
+ ADataTable.DisableControls;
+ //ADataTable.DisableEventHandlers; <- No descomentar
+ try
+ repeat begin
+ ADataTable.Last;
+ ADataTable.Delete;
+ end
+ until ADataTable.BOF;
+ finally
+ ADataTable.EnableControls;
+ //ADataTable.EnableEventHandlers; <- No descomentar
+ end;
+ end;}
+end;
+
+procedure CloneDataTable(const ASource : TDACDSDataTable;
+ var ATarget : TDACDSDataTable);
+var
+ i : Integer;
+begin
+ with ATarget do
+ begin
+ RemoteService := ASource.GetRemoteService;
+ Adapter := ASource.GetAdapter;
+
+ BusinessRulesID := ASource.BusinessRulesID;
+ Randomize;
+ Name := ASource.Name + '_' + IntToStr(Random(MAXINT));
+ LogicalName := ASource.LogicalName;
+
+ Params.AssignParamCollection(ASource.Params);
+
+ 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;
+ ATarget.LoadSchema; // o también ATarget.Fields.AssignFieldCollection(ASource.Fields);
+
+ 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;
+
+ 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;
+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;
+
+
+end.
diff --git a/Base/uEditorBase.ddp b/Base/uEditorBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uEditorBase.ddp differ
diff --git a/Base/uEditorBase.dfm b/Base/uEditorBase.dfm
new file mode 100644
index 0000000..f958905
--- /dev/null
+++ b/Base/uEditorBase.dfm
@@ -0,0 +1,1621 @@
+object fEditorBase: TfEditorBase
+ Left = 482
+ Top = 318
+ Width = 670
+ Height = 512
+ 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 = 0
+ Width = 662
+ 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 = 635
+ 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 = 27
+ Width = 662
+ 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 = '&Ayuda'
+ object TBXItem19: TTBXItem
+ Action = actAcercaDe
+ end
+ end
+ end
+ end
+ object StatusBar: TStatusBar
+ Left = 0
+ Top = 459
+ Width = 662
+ Height = 19
+ Panels = <
+ item
+ Width = 50
+ end>
+ 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/Base/uEditorBase.pas b/Base/uEditorBase.pas
new file mode 100644
index 0000000..7b15686
--- /dev/null
+++ b/Base/uEditorBase.pas
@@ -0,0 +1,198 @@
+unit uEditorBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls,
+ JvComponent, JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX,
+ TB2Item, ImgList, PngImageList, StdActns, JvFormAutoSize, AppEvnts,
+ uCustomView, uViewBase, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, pngimage, ExtCtrls, JvComponentBase;
+
+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;
+ public
+ constructor Create(AOwner: TComponent); override;
+ published
+ procedure FormShow(Sender: TObject); virtual;
+ end;
+
+ TfEditorBaseClass = class of TfEditorBase;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Menus, uDataModuleBase;
+
+{
+********************************* TfEditorBase *********************************
+}
+procedure TfEditorBase.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject);
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ if actGuardar.Execute then
+ actCerrar.Execute;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+constructor TfEditorBase.Create(AOwner: TComponent);
+begin
+ inherited;
+ JvFormStorage.AppStoragePath := Name;
+ JvNavPanelHeader.StyleManager := dmBase.StyleManager;
+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/Base/uEditorDBBase.ddp b/Base/uEditorDBBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uEditorDBBase.ddp differ
diff --git a/Base/uEditorDBBase.dfm b/Base/uEditorDBBase.dfm
new file mode 100644
index 0000000..7422010
--- /dev/null
+++ b/Base/uEditorDBBase.dfm
@@ -0,0 +1,48 @@
+inherited fEditorDBBase: TfEditorDBBase
+ Left = 310
+ Caption = 'fEditorDBBase'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ inherited Image1: TImage
+ Picture.Data = {00}
+ end
+ 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/Base/uEditorDBBase.pas b/Base/uEditorDBBase.pas
new file mode 100644
index 0000000..15890e9
--- /dev/null
+++ b/Base/uEditorDBBase.pas
@@ -0,0 +1,334 @@
+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,
+ uViewMensaje, JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+ pngimage, ExtCtrls, JvComponentBase, dxLayoutLookAndFeels;
+
+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,
+ uDAInterfaces, uBizImportesDetalleBase;
+
+{$R *.dfm}
+
+procedure TfEditorDBBase.actRefrescarExecute(Sender: TObject);
+var
+ ACursor: TCursor;
+ 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
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ 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
+ Screen.Cursor := ACursor;
+ 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) and
+ (not (dsDataTable.DataTable.State = dsInsert)) then
+ (Sender as TAction).Enabled := not (dsDataTable.DataTable.Fetching or
+ dsDataTable.DataTable.Opening or
+ dsDataTable.DataTable.Closing)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfEditorDBBase.actCancelarCambiosExecute(Sender: TObject);
+var
+ dtDetails : TList;
+ i : integer;
+ ABookmark : TBookmark;
+ ACursor : TCursor;
+ AParche : IParche;
+begin
+ inherited;
+
+ AParche := NIL;
+
+ if Assigned(dsDataTable.DataTable) then
+ begin
+ ABookmark := dsDataTable.DataTable.GetBookMark;
+ dsDataTable.DataTable.DisableControls;
+// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+
+ { 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;
+
+ { PARCHE **********************************
+ OJO: Está pensado para que sólo una de las tablas detalle
+ soporte el interfaz de IParche }
+ if not Assigned(AParche) and
+ Supports((TDADataTable(dtDetails.Items[i])), IParche, AParche) then
+ AParche.DesactivarEventos;
+ 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;
+
+ { PARCHE ********************************** }
+ if Assigned(AParche) then
+ begin
+ AParche.ActivarEventos;
+ AParche.Refrescar;
+ AParche := NIL;
+ end;
+
+ //finally
+ dsDataTable.DataTable.EnableControls;
+ dsDataTable.DataTable.FreeBookmark(ABookmark);
+// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar
+ Screen.Cursor := ACursor;
+ //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;
+ ACursor: TCursor;
+begin
+ inherited;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ 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
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TfEditorDBBase.actEliminarUpdate(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;
+
+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)
+ and not (dsDataTable.DataTable.State = dsInsert)
+ 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)
+ and not (dsDataTable.DataTable.State = dsInsert)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+end.
diff --git a/Base/uEditorDBItem.ddp b/Base/uEditorDBItem.ddp
new file mode 100644
index 0000000..44d54ac
Binary files /dev/null and b/Base/uEditorDBItem.ddp differ
diff --git a/Base/uEditorDBItem.dfm b/Base/uEditorDBItem.dfm
new file mode 100644
index 0000000..9d34b8f
--- /dev/null
+++ b/Base/uEditorDBItem.dfm
@@ -0,0 +1,50 @@
+inherited fEditorDBItem: TfEditorDBItem
+ Left = 482
+ Top = 315
+ Caption = 'fEditorDBItem'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem26: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem25: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ Visible = False
+ end
+ end
+ end
+ object pgPaginas: TPageControl [2]
+ Left = 0
+ Top = 76
+ Width = 662
+ Height = 383
+ ActivePage = pagGeneral
+ Align = alClient
+ TabOrder = 2
+ object pagGeneral: TTabSheet
+ Caption = 'General'
+ end
+ 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/Base/uEditorDBItem.pas b/Base/uEditorDBItem.pas
new file mode 100644
index 0000000..750ab85
--- /dev/null
+++ b/Base/uEditorDBItem.pas
@@ -0,0 +1,90 @@
+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, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, pngimage, ExtCtrls, JvComponentBase;
+
+type
+ IEditorDBItem = interface(IEditorDBBase)
+ ['{497AE4CE-D061-4F75-A29A-320F8565FF54}']
+ end;
+
+ TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem)
+ pgPaginas: TPageControl;
+ pagGeneral: TTabSheet;
+ 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.', 'FactuGES', 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.', 'FactuGES', MB_OK);
+ Exit;
+ end;
+ end;
+
+ if Assigned(dsDataTable.DataTable) and
+ Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then
+ aInf.Print;
+end;
+
+end.
diff --git a/Base/uEditorGrid.ddp b/Base/uEditorGrid.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uEditorGrid.ddp differ
diff --git a/Base/uEditorGrid.dfm b/Base/uEditorGrid.dfm
new file mode 100644
index 0000000..af9861f
--- /dev/null
+++ b/Base/uEditorGrid.dfm
@@ -0,0 +1,1460 @@
+inherited fEditorGrid: TfEditorGrid
+ Left = 208
+ Top = 182
+ Width = 893
+ Height = 485
+ Caption = 'fEditorGrid'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 885
+ inherited Image1: TImage
+ Left = 858
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 885
+ inherited tbxMain: TTBXToolbar
+ DefaultDock = TBXDock
+ 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
+ object TBXItem35: TTBXItem [17]
+ Action = actAnchoAuto
+ end
+ inherited TBXItem28: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ Visible = False
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ object TBXItem34: TTBXItem [7]
+ Action = actDuplicar
+ end
+ object TBXSeparatorItem15: TTBXSeparatorItem [8]
+ end
+ end
+ end
+ object tbxFiltro: TTBXToolbar
+ Left = 465
+ 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
+ object TBXItem37: TTBXItem
+ Action = actFiltrar
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 432
+ Width = 885
+ end
+ inherited EditorActionList: TActionList
+ Left = 72
+ Top = 120
+ inherited actModificar: TAction
+ OnExecute = actModificarExecute
+ end
+ 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
+ OnExecute = actDuplicarExecute
+ OnUpdate = actDuplicarUpdate
+ end
+ object actAnchoAuto: TAction
+ Category = 'Ver'
+ Caption = 'actAnchoAuto'
+ ImageIndex = 21
+ OnExecute = actAnchoAutoExecute
+ end
+ object actFiltrar: TAction
+ Category = 'Buscar'
+ Caption = 'Filtrar m'#225's ...'
+ ImageIndex = 10
+ OnExecute = actFiltrarExecute
+ OnUpdate = actFiltrarUpdate
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ 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/Base/uEditorGrid.pas b/Base/uEditorGrid.pas
new file mode 100644
index 0000000..560fa21
--- /dev/null
+++ b/Base/uEditorGrid.pas
@@ -0,0 +1,249 @@
+unit uEditorGrid;
+
+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, uViewGrid,
+ uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
+ JvComponentBase;
+
+type
+ IEditorGrid = interface(IEditorDBBase)
+ ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
+ end;
+
+ TfEditorGrid = class(TfEditorDBBase, IEditorGrid)
+ 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;
+ actAnchoAuto: TAction;
+ TBXItem35: TTBXItem;
+ actFiltrar: TAction;
+ TBXItem37: TTBXItem;
+ procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
+ procedure FormShow(Sender: TObject);
+ procedure actPrevisualizarExecute(Sender: TObject);
+ procedure actConfPaginaExecute(Sender: TObject);
+ procedure actImprimirExecute(Sender: TObject);
+ procedure actQuitarFiltroExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actDuplicarUpdate(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ procedure JvFormStorageSavePlacement(Sender: TObject);
+ procedure JvFormStorageRestorePlacement(Sender: TObject);
+ procedure actRefrescarExecute(Sender: TObject);
+ procedure actAnchoAutoExecute(Sender: TObject);
+ procedure actFiltrarExecute(Sender: TObject);
+ procedure actFiltrarUpdate(Sender: TObject);
+ private
+ FViewGrid : IViewGrid;
+ protected
+ procedure SetViewGrid(const Value : IViewGrid); virtual;
+ function GetViewGrid: IViewGrid;
+ public
+ property ViewGrid: IViewGrid read GetViewGrid write SetViewGrid;
+ constructor Create(AOwner : TComponent); override;
+
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uDataModuleBase, uCustomEditor, cxGridTableView;
+
+{$R *.dfm}
+
+{
+********************************* TfEditorGrid *********************************
+}
+destructor TfEditorGrid.Destroy;
+begin
+ FViewGrid := NIL;
+ inherited;
+end;
+
+function TfEditorGrid.GetViewGrid: IViewGrid;
+begin
+ Result := FViewGrid;
+end;
+
+procedure TfEditorGrid.SetViewGrid(const Value: IViewGrid);
+begin
+ FViewGrid := Value;
+ if Assigned(FViewGrid) then
+ begin
+ FViewGrid.PopupMenu := GridPopupMenu;
+ FViewGrid.OnDblClick := actModificar.OnExecute;
+ end;
+end;
+
+procedure TfEditorGrid.tbxEditFiltroChange(Sender: TObject; const Text: String);
+begin
+ if Assigned(ViewGrid) then
+ ViewGrid.Filter := Text;
+end;
+
+procedure TfEditorGrid.FormShow(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ ViewGrid.ShowEmbedded(Self);
+end;
+
+procedure TfEditorGrid.actPrevisualizarExecute(Sender: TObject);
+begin
+ inherited;
+ ViewGrid.Preview;
+end;
+
+procedure TfEditorGrid.actConfPaginaExecute(Sender: TObject);
+begin
+ inherited;
+ ViewGrid.PrintSetup;
+end;
+
+procedure TfEditorGrid.actImprimirExecute(Sender: TObject);
+begin
+ inherited;
+ ViewGrid.Print;
+end;
+
+procedure TfEditorGrid.actQuitarFiltroExecute(Sender: TObject);
+begin
+ if Assigned(ViewGrid) then
+ begin
+ tbxEditFiltro.Text := '';
+ ViewGrid.Filter := '';
+ end;
+end;
+
+procedure TfEditorGrid.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+end;
+
+procedure TfEditorGrid.actEliminarExecute(Sender: TObject);
+begin
+ ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
+ inherited;
+end;
+
+constructor TfEditorGrid.Create(AOwner: TComponent);
+begin
+ inherited;
+ actModificar.ShortCut := ShortCut(VK_RETURN, []);
+end;
+
+procedure TfEditorGrid.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 TfEditorGrid.actDuplicarExecute(Sender: TObject);
+begin
+ ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
+ inherited;
+end;
+
+procedure TfEditorGrid.JvFormStorageSavePlacement(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ ViewGrid.StoreToRegistry;
+end;
+
+procedure TfEditorGrid.JvFormStorageRestorePlacement(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ ViewGrid.RestoreFromRegistry;
+end;
+
+procedure TfEditorGrid.actRefrescarExecute(Sender: TObject);
+var
+ FocusedRow, TopRow : Integer;
+begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+
+ TopRow := (ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex;
+ FocusedRow := ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex;
+
+ inherited;
+
+ ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex := FocusedRow;
+ (ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex := TopRow;
+ // ViewGrid.Grid.ActiveView.Controller.TopRowIndex := TopRow;
+
+// ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorGrid.actAnchoAutoExecute(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ ViewGrid.AjustarAncho;
+end;
+
+procedure TfEditorGrid.actFiltrarExecute(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ ViewGrid.ActivarDesactivarFiltros;
+
+ if Assigned(ViewGrid) then
+ if ViewGrid.EstanFiltrosVisible then
+ begin
+ tbxEditFiltro.Visible := False;
+ TBXItem7.Visible := False;
+ end
+ else
+ begin
+ tbxEditFiltro.Text := '';
+ tbxEditFiltro.Visible := True;
+ TBXItem7.Visible := True;
+ end;
+end;
+
+procedure TfEditorGrid.actFiltrarUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(ViewGrid) then
+ (Sender as TAction).Checked := ViewGrid.EstanFiltrosVisible
+end;
+
+initialization
+ RegisterClass(TfEditorGrid);
+
+finalization
+ UnRegisterClass(TfEditorGrid);
+
+end.
+
diff --git a/Base/uEditorItem.ddp b/Base/uEditorItem.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uEditorItem.ddp differ
diff --git a/Base/uEditorItem.dfm b/Base/uEditorItem.dfm
new file mode 100644
index 0000000..147c342
--- /dev/null
+++ b/Base/uEditorItem.dfm
@@ -0,0 +1,53 @@
+inherited fEditorItem: TfEditorItem
+ Left = 457
+ Top = 278
+ 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/Base/uEditorItem.pas b/Base/uEditorItem.pas
new file mode 100644
index 0000000..ecfbff1
--- /dev/null
+++ b/Base/uEditorItem.pas
@@ -0,0 +1,40 @@
+
+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;
+
+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/Base/uEditorPSPreview.dfm b/Base/uEditorPSPreview.dfm
new file mode 100644
index 0000000..a3f98e6
--- /dev/null
+++ b/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/Base/uEditorPSPreview.pas b/Base/uEditorPSPreview.pas
new file mode 100644
index 0000000..683b402
--- /dev/null
+++ b/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/Base/uEditorPreview.ddp b/Base/uEditorPreview.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uEditorPreview.ddp differ
diff --git a/Base/uEditorPreview.dfm b/Base/uEditorPreview.dfm
new file mode 100644
index 0000000..f1186f3
--- /dev/null
+++ b/Base/uEditorPreview.dfm
@@ -0,0 +1,797 @@
+inherited fEditorPreview: TfEditorPreview
+ Left = 248
+ Top = 277
+ Caption = 'Previsualizar'
+ WindowState = wsMaximized
+ OnDestroy = FormDestroy
+ OnResize = FormResize
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Visible = False
+ end
+ inherited TBXDock: TTBXDock
+ Height = 75
+ inherited tbxMain: TTBXToolbar
+ Top = 49
+ DefaultDock = TBXDock
+ Visible = False
+ 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
+ AutoCheck = True
+ Checked = True
+ DisplayMode = nbdmImageAndText
+ GroupIndex = 1
+ Images = PreviewSmallImageList
+ end
+ object TBXSeparatorItem14: TTBXSeparatorItem
+ end
+ object tbxZoom: TTBXItem
+ Action = actToolZoom
+ AutoCheck = True
+ 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 EditorActionList: TActionList
+ Top = 104
+ inherited actImprimir: TAction
+ OnExecute = actImprimirExecute
+ 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 = 'Preview'
+ Caption = 'Primera p'#225'gina'
+ ImageIndex = 0
+ OnExecute = actPrimeraPaginaExecute
+ end
+ object actUltimaPagina: TAction
+ Category = 'Preview'
+ Caption = #218'ltima p'#225'gina'
+ ImageIndex = 3
+ OnExecute = actUltimaPaginaExecute
+ end
+ object actPaginaAnterior: TAction
+ Category = 'Preview'
+ Caption = 'P'#225'gina anterior'
+ ImageIndex = 1
+ OnExecute = actPaginaAnteriorExecute
+ end
+ object actPaginaSiguiente: TAction
+ Category = 'Preview'
+ Caption = 'P'#225'gina siguiente'
+ ImageIndex = 2
+ OnExecute = actPaginaSiguienteExecute
+ end
+ object actZoomIn: TAction
+ Category = 'Zoom'
+ Caption = 'M'#225's zoom'
+ ImageIndex = 8
+ OnExecute = actZoomInExecute
+ end
+ object actZoomOut: TAction
+ Category = 'Zoom'
+ Caption = 'Menos zoom'
+ ImageIndex = 9
+ OnExecute = actZoomOutExecute
+ end
+ object actTodaPagina: TAction
+ Category = 'Zoom'
+ Caption = 'Toda la p'#225'gina'
+ ImageIndex = 4
+ OnExecute = actTodaPaginaExecute
+ end
+ object actAnchoPagina: TAction
+ Category = 'Zoom'
+ Caption = 'Ancho de p'#225'gina'
+ ImageIndex = 5
+ OnExecute = actAnchoPaginaExecute
+ end
+ object actToolHand: TAction
+ Category = 'Tools'
+ Caption = 'Mano'
+ ImageIndex = 10
+ OnExecute = actToolHandExecute
+ end
+ object actToolZoom: TAction
+ Category = 'Tools'
+ Caption = 'Zoom'
+ 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 frxChartObject1: TfrxChartObject
+ Left = 16
+ Top = 272
+ 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/Base/uEditorPreview.pas b/Base/uEditorPreview.pas
new file mode 100644
index 0000000..1c809ec
--- /dev/null
+++ b/Base/uEditorPreview.pas
@@ -0,0 +1,308 @@
+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, frxChart, 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;
+ frxChartObject1: TfrxChartObject;
+ frxRichObject1: TfrxRichObject;
+ frxCrossObject1: TfrxCrossObject;
+ frxCheckBoxObject1: TfrxCheckBoxObject;
+ frxGradientObject1: TfrxGradientObject;
+ frxDotMatrixExport1: TfrxDotMatrixExport;
+ frxDialogControls1: TfrxDialogControls;
+ frxTIFFExport1: TfrxTIFFExport;
+ frxPDFExport1: TfrxPDFExport;
+ frxBMPExport1: TfrxBMPExport;
+ 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;
+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;
+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;
+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);
+var
+ FirstPass: Boolean;
+begin
+ FirstPass := False;
+ if Sender.PreviewPages <> nil then
+ FirstPass := not Sender.PreviewPages.Engine.FinalPass;
+
+ if FirstPass then
+ StatusBar.Panels[0].Text := frxResources.Get('clFirstPass') +
+ IntToStr(Sender.PageCount)
+ else
+ 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/Base/uEditorUtils.pas b/Base/uEditorUtils.pas
new file mode 100644
index 0000000..68b4b86
--- /dev/null
+++ b/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/Base/uExceptions.pas b/Base/uExceptions.pas
new file mode 100644
index 0000000..d3e6e85
--- /dev/null
+++ b/Base/uExceptions.pas
@@ -0,0 +1,20 @@
+unit uExceptions;
+
+interface
+
+uses
+ uDADataTable;
+
+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/Base/uSysFunc.pas b/Base/uSysFunc.pas
new file mode 100644
index 0000000..f4c26f4
--- /dev/null
+++ b/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/Base/uVentanaEspera.dfm b/Base/uVentanaEspera.dfm
new file mode 100644
index 0000000..99ef5e0
--- /dev/null
+++ b/Base/uVentanaEspera.dfm
@@ -0,0 +1,28 @@
+object Form1: TForm1
+ Left = 825
+ Top = 391
+ Width = 299
+ Height = 129
+ Caption = 'Form1'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poOwnerFormCenter
+ OnClose = FormClose
+ OnHide = FormHide
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object JvAnimate1: TJvAnimate
+ Left = 8
+ Top = 16
+ Width = 272
+ Height = 60
+ CommonAVI = aviCopyFiles
+ StopFrame = 81
+ end
+end
diff --git a/Base/uVentanaEspera.pas b/Base/uVentanaEspera.pas
new file mode 100644
index 0000000..6aa5947
--- /dev/null
+++ b/Base/uVentanaEspera.pas
@@ -0,0 +1,52 @@
+unit uVentanaEspera;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ComCtrls, JvExComCtrls, JvAnimate;
+
+type
+ TForm1 = class(TForm)
+ JvAnimate1: TJvAnimate;
+ procedure FormClose(Sender: TObject; var Action: TCloseAction);
+ procedure FormShow(Sender: TObject);
+ procedure FormHide(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Form1: TForm1;
+
+implementation
+
+{$R *.dfm}
+
+procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+ Action := caFree;
+end;
+
+procedure TForm1.FormShow(Sender: TObject);
+begin
+ if not JvAnimate1.Active then
+ JvAnimate1.Active := True;
+end;
+
+procedure TForm1.FormHide(Sender: TObject);
+begin
+ JvAnimate1.Active := False
+end;
+
+initialization
+// Application.CreateForm(TForm1, Form1);
+
+finalization
+{ if Assigned(Form1) then
+ Form1.Close;}
+
+end.
+
\ No newline at end of file
diff --git a/Base/uViewBarraSeleccion.ddp b/Base/uViewBarraSeleccion.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewBarraSeleccion.ddp differ
diff --git a/Base/uViewBarraSeleccion.dfm b/Base/uViewBarraSeleccion.dfm
new file mode 100644
index 0000000..cf83624
--- /dev/null
+++ b/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/Base/uViewBarraSeleccion.pas b/Base/uViewBarraSeleccion.pas
new file mode 100644
index 0000000..b09d87f
--- /dev/null
+++ b/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/Base/uViewBase.ddp b/Base/uViewBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewBase.ddp differ
diff --git a/Base/uViewBase.dfm b/Base/uViewBase.dfm
new file mode 100644
index 0000000..a3d96f0
--- /dev/null
+++ b/Base/uViewBase.dfm
@@ -0,0 +1,14 @@
+object frViewBase: TfrViewBase
+ Left = 0
+ Top = 0
+ Width = 302
+ Height = 222
+ 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/Base/uViewBase.pas b/Base/uViewBase.pas
new file mode 100644
index 0000000..f553ac3
--- /dev/null
+++ b/Base/uViewBase.pas
@@ -0,0 +1,33 @@
+unit uViewBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize;
+
+type
+ IViewInicio = interface(ICustomView)
+ ['{B567620D-8FE7-4ADC-B9BD-AFC639ED1923}']
+ function Control : TControl;
+ end;
+
+ IViewBase = interface(ICustomView)
+ ['{E1E559AC-31E8-4E5F-8655-428D12467518}']
+ end;
+
+ TfrViewBase = class(TCustomView, IViewBase)
+ published
+ property Modified;
+ property OnGetModified;
+ property ReadOnly;
+ property Valid;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrViewBase }
+
+end.
diff --git a/Base/uViewCategorias.dfm b/Base/uViewCategorias.dfm
new file mode 100644
index 0000000..623a8d8
--- /dev/null
+++ b/Base/uViewCategorias.dfm
@@ -0,0 +1,20 @@
+inherited frViewCategorias: TfrViewCategorias
+ Width = 256
+ object DBGrid1: TDBGrid [0]
+ Left = 8
+ Top = 8
+ Width = 241
+ Height = 121
+ DataSource = DADataSource
+ TabOrder = 0
+ TitleFont.Charset = DEFAULT_CHARSET
+ TitleFont.Color = clWindowText
+ TitleFont.Height = -11
+ TitleFont.Name = 'MS Sans Serif'
+ TitleFont.Style = []
+ end
+ object DADataSource: TDADataSource
+ Left = 8
+ Top = 136
+ end
+end
diff --git a/Base/uViewCategorias.pas b/Base/uViewCategorias.pas
new file mode 100644
index 0000000..d71838a
--- /dev/null
+++ b/Base/uViewCategorias.pas
@@ -0,0 +1,30 @@
+unit uViewCategorias;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, StdCtrls, DBCtrls, DB, uDADataTable, Grids, DBGrids,
+ JvComponent, JvFormAutoSize;
+
+type
+ TfrViewCategorias = class(TfrViewBase)
+ DADataSource: TDADataSource;
+ DBGrid1: TDBGrid;
+ end;
+
+var
+ frViewCategorias: TfrViewCategorias;
+
+implementation
+
+{$R *.dfm}
+
+initialization
+ RegisterClass(TfrViewCategorias);
+
+finalization
+
+ UnRegisterClass(TfrViewCategorias);
+
+end.
diff --git a/Base/uViewContenido.dfm b/Base/uViewContenido.dfm
new file mode 100644
index 0000000..dc488e6
--- /dev/null
+++ b/Base/uViewContenido.dfm
@@ -0,0 +1,182 @@
+inherited frViewContenido: TfrViewContenido
+ Width = 443
+ Height = 270
+ Align = alClient
+ object cxGrid: TcxGrid
+ Left = 0
+ Top = 25
+ Width = 443
+ Height = 245
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ DataController.DataSource = DADataSource
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ end>
+ DataController.Summary.SummaryGroups = <>
+ OptionsBehavior.AlwaysShowEditor = True
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.Appending = True
+ OptionsSelection.MultiSelect = True
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.Footer = True
+ OptionsView.GridLineColor = cl3DLight
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.Indicator = True
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ Styles.ContentEven = cxStyleEven
+ Styles.ContentOdd = cxStyleOdd
+ Styles.Inactive = cxStyleSelection
+ Styles.Selection = cxStyleSelection
+ end
+ object cxGridLevel: TcxGridLevel
+ GridView = cxGridView
+ end
+ end
+ object ToolBar1: TToolBar
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 25
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = ContenidoImageList
+ List = True
+ ShowCaptions = True
+ TabOrder = 1
+ end
+ object ActionListContenido: TActionList
+ Left = 8
+ Top = 104
+ object actAnadir: TAction
+ Caption = 'A'#241'adir'
+ ImageIndex = 0
+ OnExecute = actAnadirExecute
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar'
+ ImageIndex = 1
+ OnExecute = actEliminarExecute
+ OnUpdate = actEliminarUpdate
+ end
+ object actSubir: TAction
+ Caption = 'Subir'
+ ImageIndex = 2
+ OnExecute = actSubirExecute
+ OnUpdate = actSubirUpdate
+ end
+ object actBajar: TAction
+ Caption = 'Bajar'
+ ImageIndex = 3
+ OnExecute = actBajarExecute
+ OnUpdate = actBajarUpdate
+ end
+ end
+ object DADataSource: TDADataSource
+ DataTable = dmPresupuestos.tbl_DetallesPresupuestos
+ Left = 8
+ Top = 136
+ end
+ object ContenidoImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000D04944415478DA
+ 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
+ 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
+ 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
+ FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
+ 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
+ F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
+ 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000006E4944415478DA
+ 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
+ C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
+ CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
+ 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000E14944415478DA
+ 63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
+ 1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
+ B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
+ 9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
+ 17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
+ A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
+ 30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
+ 7F64240000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000DF4944415478DA
+ 63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
+ 074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
+ F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
+ 23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
+ 9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
+ FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
+ BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
+ 9A0000000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ Left = 8
+ Top = 64
+ Bitmap = {}
+ end
+ object cxStyleRepository: TcxStyleRepository
+ Left = 8
+ Top = 168
+ object cxStyleEven: TcxStyle
+ end
+ object cxStyleOdd: TcxStyle
+ AssignedValues = [svColor]
+ Color = 16119285
+ end
+ object cxStyleSelection: TcxStyle
+ AssignedValues = [svColor, svTextColor]
+ Color = clHighlight
+ TextColor = clHighlightText
+ end
+ end
+end
diff --git a/Base/uViewContenido.pas b/Base/uViewContenido.pas
new file mode 100644
index 0000000..cc3175e
--- /dev/null
+++ b/Base/uViewContenido.pas
@@ -0,0 +1,134 @@
+unit uViewContenido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, cxStyles, ComCtrls, ToolWin, ActnList, cxCustomData,
+ cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
+ uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ImgList,
+ PngImageList, cxGrid;
+
+type
+ IViewContenido = interface(IViewBase)
+ ['{AF7F3CD1-3CD1-4F87-A4B4-FCB1320104F7}']
+ end;
+
+ TfrViewContenido = class(TfrViewBase, IViewContenido)
+ ActionListContenido: TActionList;
+ cxGrid: TcxGrid;
+ cxGridView: TcxGridDBTableView;
+ cxGridLevel: TcxGridLevel;
+ DADataSource: TDADataSource;
+ actAnadir: TAction;
+ actEliminar: TAction;
+ actSubir: TAction;
+ actBajar: TAction;
+ ContenidoImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ cxStyleRepository: TcxStyleRepository;
+ cxStyleEven: TcxStyle;
+ cxStyleOdd: TcxStyle;
+ cxStyleSelection: TcxStyle;
+ procedure actAnadirExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actEliminarUpdate(Sender: TObject);
+ procedure actSubirUpdate(Sender: TObject);
+ procedure actBajarExecute(Sender: TObject);
+ procedure actBajarUpdate(Sender: TObject);
+ procedure actSubirExecute(Sender: TObject);
+ private
+ protected
+ public
+ end;
+
+implementation
+
+uses uBizImportesDetalleBase, uDAInterfaces;
+
+{$R *.dfm}
+
+procedure TfrViewContenido.actAnadirExecute(Sender: TObject);
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ DADataSource.DataTable.Insert
+end;
+
+procedure TfrViewContenido.actEliminarExecute(Sender: TObject);
+begin
+ inherited;
+ { Este cambio nos permite poder eliminar varios conceptos de una sola vez
+ y no de uno en uno como antes. }
+ with cxGrid.ActiveView.DataController do
+ begin
+ DeleteSelection;
+ SelectRows(FocusedRowIndex, FocusedRowIndex);
+ end;
+
+{ if Assigned(DADataSource.DataTable) then
+ DADataSource.DataTable.Delete;}
+end;
+
+procedure TfrViewContenido.actEliminarUpdate(Sender: TObject);
+begin
+ if Assigned(DADataSource.DataTable) then
+ (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfrViewContenido.actSubirUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(cxGridView.Controller.FocusedRow) then
+ (Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsFirst)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfrViewContenido.actBajarExecute(Sender: TObject);
+var
+ AField : TDAField;
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ begin
+ AField := DADataSource.DataTable.FindField(fld_POSICION);
+ // Por si el registro está recién insertado y la posición todavía
+ // no ha sido asignada.
+ if (AField.AsInteger < 0) then
+ DADataSource.DataTable.Post;
+
+ IntercambiarPosiciones(DADataSource.DataTable, AField.AsInteger, AField.AsInteger + 1);
+ end;
+end;
+
+procedure TfrViewContenido.actBajarUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(cxGridView.Controller.FocusedRow) then
+ (Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsLast)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfrViewContenido.actSubirExecute(Sender: TObject);
+var
+ AField : TDAField;
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ begin
+ AField := DADataSource.DataTable.FindField(fld_POSICION);
+ // Por si el registro está recién insertado y la posición todavía
+ // no ha sido asignada.
+ if (AField.AsInteger < 0) then
+ DADataSource.DataTable.Post;
+
+ IntercambiarPosiciones(DADataSource.DataTable, AField.AsInteger, AField.AsInteger - 1);
+ end;
+end;
+
+end.
diff --git a/Base/uViewDetallesFamilias.ddp b/Base/uViewDetallesFamilias.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewDetallesFamilias.ddp differ
diff --git a/Base/uViewDetallesFamilias.dfm b/Base/uViewDetallesFamilias.dfm
new file mode 100644
index 0000000..a267c07
--- /dev/null
+++ b/Base/uViewDetallesFamilias.dfm
@@ -0,0 +1,430 @@
+inherited frViewDetallesFamilias: TfrViewDetallesFamilias
+ Width = 638
+ inherited cxGrid: TcxGrid
+ Top = 22
+ Width = 638
+ Height = 248
+ inherited cxGridView: TcxGridDBTableView
+ OnEditing = cxGridViewEditing
+ OptionsView.Footer = False
+ object cxGridViewPOSICION: TcxGridDBColumn
+ DataBinding.FieldName = 'POSICION'
+ Visible = False
+ SortIndex = 0
+ SortOrder = soAscending
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ DataBinding.FieldName = 'TIPO'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = TipoPngImageList
+ Properties.Items = <
+ item
+ Description = 'Concepto'
+ ImageIndex = 0
+ Value = 'C'
+ end
+ item
+ Description = 'T'#237'tulo de cap'#237'tulo'
+ ImageIndex = 1
+ Tag = 1
+ Value = 'T'
+ end
+ item
+ Description = 'Total de cap'#237'tulo'
+ ImageIndex = 2
+ Tag = 2
+ Value = 'S'
+ end>
+ Properties.LargeImages = TipoPngImageList
+ BestFitMaxWidth = 64
+ Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
+ Width = 56
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
+ Width = 224
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ BestFitMaxWidth = 64
+ HeaderAlignmentHorz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
+ Width = 130
+ end
+ object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEUNIDAD'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
+ Width = 130
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Options.Editing = False
+ Styles.Content = cxStyle_IMPORTETOTAL
+ Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
+ Width = 130
+ end
+ object cxGridViewVISIBLE: TcxGridDBColumn
+ Caption = 'Visible'
+ DataBinding.FieldName = 'VISIBLE'
+ PropertiesClassName = 'TcxCheckBoxProperties'
+ Properties.DisplayChecked = 'S'
+ Properties.DisplayUnchecked = 'N'
+ Properties.Glyph.Data = {
+ 92030000424D9203000000000000920100002800000020000000100000000100
+ 08000000000000020000120B0000120B0000570000005700000000000000FFFF
+ FF0040384000703840008048500090586000C0606000A0505000804040006030
+ 30009050500070404000A060600090606000A0707000B0808000C09090004030
+ 3000E0B0B000B0909000FFF0F000FF787000E0787000C0686000FF9890009048
+ 4000A0585000D0888000E0989000E0706000FF80700080484000A0686000FFA0
+ 9000FF887000B060500070484000FFB0A000C0989000D0A8A000E0B8B000FF98
+ 8000A0605000FFC0B000F0C0B00080686000F0D8D000B0908000E0C8B000E0D8
+ D000FFE0C000FFF8F000F0E0C000FFF0D000FFF8E00020283000FEFEFE00FAFA
+ FA00F7F7F700F3F3F300F1F1F100F0F0F000EDEDED00EAEAEA00E7E7E700E6E6
+ E600E3E3E300E0E0E000DADADA00D7D7D700D3D3D300D0D0D000CDCDCD00C9C9
+ C900C6C6C600C4C4C400C3C3C300C0C0C000BEBEBE00BCBCBC00B9B9B900B7B7
+ B700B3B3B300AEAEAE00ACACAC00A6A6A600FFFFFF0056565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656404040444C4C
+ 463D5656565656565656122830262D2D2F325656565644444444433E4145474A
+ 50463B404456101010102734181D061A242F35122656564646443A3F434A544C
+ 49493A3C4646560F0F10362C1507110A2320362E0F0F56564845394341535554
+ 44473944484856560E13331C21023711161714260E0E5656564A3E403E38544A
+ 4344464B4B565656560D31122B01111A1E1B0F050556565656564E49423F4343
+ 434A4E4E565656565656040C2925221E1E2A04045656565656565650504F4D4F
+ 50505056565656565656560B0B1F19080B0B0B56565656565656565652505151
+ 505656565656565656565656090B03030B565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 5656565656565656565656565656565656565656565656565656565656565656
+ 56565656565656565656565656565656565656565656}
+ Properties.GlyphCount = 2
+ Properties.ImmediatePost = True
+ Properties.NullStyle = nssUnchecked
+ Properties.ValueChecked = 'S'
+ Properties.ValueUnchecked = 'N'
+ end
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 638
+ Height = 22
+ ButtonWidth = 105
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadirCap
+ AutoSize = True
+ end
+ object ToolButton2: TToolButton
+ Left = 102
+ Top = 0
+ Action = actAnadir
+ AutoSize = True
+ end
+ object ToolButton7: TToolButton
+ Left = 211
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton7'
+ ImageIndex = 5
+ Style = tbsSeparator
+ end
+ object ToolButton3: TToolButton
+ Left = 219
+ Top = 0
+ Action = actEliminar
+ AutoSize = True
+ end
+ object ToolButton4: TToolButton
+ Left = 286
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton4'
+ ImageIndex = 3
+ Style = tbsSeparator
+ end
+ object ToolButton5: TToolButton
+ Left = 294
+ Top = 0
+ Action = actSubir
+ AutoSize = True
+ end
+ object ToolButton6: TToolButton
+ Left = 349
+ Top = 0
+ Action = actBajar
+ AutoSize = True
+ end
+ object ToolButton8: TToolButton
+ Left = 405
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton8'
+ ImageIndex = 4
+ Style = tbsSeparator
+ end
+ object ToolButton9: TToolButton
+ Left = 413
+ Top = 0
+ Action = actRecalcular
+ AutoSize = True
+ end
+ end
+ inherited ActionListContenido: TActionList
+ Images = ContenidoImageList
+ object actAnadirCap: TAction [0]
+ Caption = 'A'#241'adir cap'#237'tulo'
+ ImageIndex = 5
+ OnExecute = actAnadirCapExecute
+ end
+ inherited actAnadir: TAction
+ Caption = 'A'#241'adir concepto'
+ ImageIndex = 4
+ end
+ object actRecalcular: TAction
+ Caption = 'Recalcular'
+ ImageIndex = 6
+ OnExecute = actRecalcularExecute
+ end
+ end
+ inherited ContenidoImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000E14944415478DA
+ 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
+ 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
+ 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
+ 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
+ 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
+ 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
+ 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
+ 0AF3B40000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000714944415478DA
+ 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
+ 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
+ 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
+ DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000E14944415478DA
+ 63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
+ 1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
+ B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
+ 9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
+ 17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
+ A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
+ 30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
+ 7F64240000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000DF4944415478DA
+ 63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
+ 074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
+ F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
+ 23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
+ 9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
+ FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
+ BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
+ 9A0000000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000002354944415478DA
+ 9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B
+ A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6
+ A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152
+ 92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83
+ 9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32
+ DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9
+ 2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B
+ EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977
+ 8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112
+ 55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0
+ CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201
+ F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526
+ 9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC
+ A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053
+ C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72
+ 4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA
+ F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03
+ 2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE
+ 426082}
+ Name = 'PngImage4'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D000002604944415478DA
+ 8DD25B48D35100C7F1EF7FEA9C96A60F4A362DF141C399E59BD05D4ABA5A60D9
+ 5BF8522F4119F4926610425A4F121145CFF5605E085C299A5D347AE8E2D0E5C8
+ B55AA5CD69CD369DEEF2DFFFF4DFC4E122B3DFDBE19CF3F9712E5273C3C54AA0
+ 95D81CABA96F6C638508219054409C3AAE8D99B8FB20F05FC8B2C012E4AF5161
+ 694560B984E16501CFAC60D01262D4AE44C69FA46FB46418C94A4DC3139C637C
+ 7C9AD3C12AF2A49CC8FCB94B57A518E0F96B1969D645D906071AB5A3F797933B
+ B93E2E975660F40F535FDFCEC3555964DA1DF45931D70E884D5120DC6EECD772
+ 247788345D00110A31ECF9495DF60C17B697D3E3B270ADE9112F9232E97F3269
+ 56FB8EAA802D0A2CB627660C1394154420C0E0948BC7C5095CD953418773901B
+ 75BD9C55774ECCD2D5524813A98422C089FD09D1F6FCA94E761615E09355D02F
+ 919F9749B13E078BEB3B03031F09089960928C46A3C1FACEB97089F9B99A85B3
+ 677FA174CEC4CDAA6AFC0409A1F0557131EA74122F24925312F1CCFBF0FB64AC
+ D34E7A6E9BDD1160F35A1729B66E821376CE1FD273A6F2006F9D766495D0092D
+ 89229E49B70787D78D1C2F501405BBFB07A3AD130B80B7AB31FACEB7AAD359E3
+ D331627380174AF7E671785F09AFAC363ABB4DC44D6B407DB4046D1C81B11052
+ F8332C8D542B6DE30D71E822C32D2527D73797EF3030E418A7FBBE19C5A4D4B0
+ 1A13E16D49EA25FE09C4600D52A1A144FF7E97A1800F2E27CF3A2CC816C520DA
+ C44874CD3F81266977D1467DDFBAEC743ECF4C31D6EF62DE142C13EDE2E9FF01
+ D7A5ADC9695A63C02623BB15348A06C5AB1C14F7C4CBC535BF015419481881D7
+ D75A0000000049454E44AE426082}
+ Name = 'PngImage5'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001974944415478DA
+ 63FCFFFF3F43E6CC1FFD37181E163090003418E4274C4FE728640419E038F3E6
+ 7F85130788D6CC671BCF70785511C3B91DD318510C489DAA8BA1F8C7D71F0CDF
+ BE7E63F8FEFD3BC3F7AFDF198E6F956738FADA8481E54E297E03FEFEFE0BD608
+ D6FC0DA2F9CFEF3F0C170E68E03680434183282F6035205E5B99E1FB4F6465FF
+ 187EFCFAC9C0C2CC0914FF8F82F79FFB8BDB002995BF0C010B1E30F499493128
+ 69B181D90DDA8A0C75C637197ECD2A63C8935FCF70FC0A1E03B28EDC6560D8B0
+ 83A1BF3D92A1F0E47B30BBBC2483A1F14A00C3828E1D0C47277C67B8701BA701
+ BF197EFEFEC9F0EF1F37D8A93F7E3120399D01CEBFFBF41F76033E7CF9C2A0A8
+ C90976768D86228389C57F303B51589EC1DF9711CC76FF2FCBF0ECCD7FEC06BC
+ FBF49FA1F8F43DB0B38B0B33187AEF3F00B32363D319967F7E0866DB79A432BC
+ FF8CC380A7AFFFE174368C0FF31A5603407EC3E5ECC0CA6C860B172E301C5D7C
+ 041CC9580DB872EF2F4E676B055833CC9871814197FB0B6E03FA56FC242A2562
+ 1800CACE27D71791949D81200068C04600978A82F0182DA2F50000000049454E
+ 44AE426082}
+ Name = 'PngImage6'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ object cxStyleRepository1: TcxStyleRepository
+ Left = 264
+ Top = 80
+ object cxStyle_IMPORTETOTAL: TcxStyle
+ AssignedValues = [svColor, svTextColor]
+ Color = clInactiveCaptionText
+ TextColor = clHotLight
+ end
+ object cxStyle_SUBTOTAL: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = clInactiveCaptionText
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ TextColor = clHotLight
+ end
+ object cxStyle_TITULO: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = clInactiveCaption
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ TextColor = clHighlightText
+ end
+ end
+ object TipoPngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001094944415478DA
+ 63FCFFFF3F03258011993323818124D39E7C75421800D21C9B8AA9E8D74F28FE
+ C1C0F0134603F1C913480690A3995F8281E1EA5DA00120CD2C82C43BFBCF7B84
+ 667018E0B21D64D3CFEF501A8A412E387306E2743BC37D0C87CE435D00122005
+ 80348300DC006C2E8081BF7F81CEFECDC0F0FB17C445376E20E4081A00D2F41B
+ A8F9CF2F087BCD1A0E06358D1F0C6C2C441880AE19E48A0D1B391814948106B0
+ 32800DC1690036CD20BC651B0783943CC40520434E5CC662002ECD20F6CE3D1C
+ 0C22D21003AEDC71626859BD8F11C5007C9A41E2FB0E7230F089FF6078F004A2
+ 19251DCC9CCA415414BEFB6D05D70C36A02F8A631D503090D83480AC196C00A5
+ D919005F65CFBFE56F19230000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D000001A24944415478DA
+ 9D923B2C43511CC6BFEB158B129341A283342241448C44D46222418C2261A0F1
+ 58BD26A193C482A18B8DC463D284A5212D121D3CDB26A452214A5295287A1FBD
+ F738E75EBDE90DD5C6B7DC9C73CFF7FBFEFFFF39DCE2EC4417804D18D53D3E63
+ DF42061142C0510019EC2930FC706C885941D2025220BF8A82B98C807462E0B4
+ 80B77782D3808CEB9092156C6C7A9E33000EBC0970EF51B4568491C3B104058A
+ 2000220F598883C822129F3104BC41B86E7035E921353A80A53BDD05E8305FA0
+ A450A4876528A20042CD8A48CD920459E221BCBEC1B1F37845F33A2920A80392
+ E96DE6B096CCF3DF66FA9544D55CBC3482E3061B4B5F9D3A44BF3E83DEF67C3D
+ DD94F70992A01508C664066B3977E2EC641F73265B2505047580C59CA3F55E7E
+ A7F54C01321F87427B6E3E5A330CCE6A2DC5827D1BB8B4713AA0AE2C8AA2E01E
+ A4A7D08F490FE5FA30DA6731ECADAC7BE075FB412E86B55BF8D8B5A7BDAA8D2A
+ 0DE07B88E039164724A63DB097DBB00A51CBF84BF5037EC200AEC0FD0FB35A41
+ 360036B8A41A9BAA75335B6704A48AAB5D560F27CDFF02A49A99BE008A302DB4
+ AC93694C0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D000001784944415478DA
+ 8DD1BF4BC3401407F0EFF9B38BC5D141B10E1637FF02A988205550C15FB3829B
+ A06EFE9C0A767170712A82B33FA0A08576A92D220EA2C5522D562B75B175A918
+ AA4DDA26E725DAC38049F38684E4EE7DDEBD7764C7B33A01E008FA985CDAF41E
+ A346504A411840E7A79A740BBEC39225C410F883FC1B0C263501A35061434028
+ 50C492325219C512B6B8B1457440F4AA0252C863A0338BE661BF2584036AF5C0
+ 7913C61C71B4DA4A08C7DE30B476A96D0AACF4C0D56D835C1621BD0BF09DBE26
+ D8EFF1F50B3C71A05A7DD09165BD29504411670C717B6E35E464B9037D5DF548
+ DE64107EC43E4B9EE533987137F2EAF6862FD04A095412A1948A88C4F318D94E
+ 6B887FCE8EBB07A15A3DCD01A7A3EEA7F7F6172892043040168B506406B19344
+ EF058CEEE63464DA89E0410A6EDD2DF4B6E5D1920EA19CCB180EEB3A0B2C84F8
+ 67BF3A730E7C06BDA6937EFE00F612FA647E02F5617A4D84B8D82B524D66FBA3
+ BA7533A056B229602999106A0698F7F61BDF228CEAE9FA9FA3C1000000004945
+ 4E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 72
+ Top = 64
+ Bitmap = {}
+ end
+end
diff --git a/Base/uViewDetallesFamilias.pas b/Base/uViewDetallesFamilias.pas
new file mode 100644
index 0000000..21f4b95
--- /dev/null
+++ b/Base/uViewDetallesFamilias.pas
@@ -0,0 +1,143 @@
+unit uViewDetallesFamilias;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, cxDropDownEdit, cxTextEdit,
+ cxSpinEdit, cxCurrencyEdit, ImgList, PngImageList, uDADataTable,
+ ExtActns, StdActns, ActnList, ComCtrls, ToolWin, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid, cxImageComboBox,
+ uBizImportesCabeceraBase, cxCheckBox, TB2Item, TBX, TB2Dock, TB2Toolbar,
+ JvExComCtrls, JvToolBar, cxMaskEdit;
+
+type
+ IViewDetallesFamilias = interface(IViewContenido)
+ ['{FFE0D3C1-F05C-4F28-9393-03F344CA6EBA}']
+ end;
+
+ TfrViewDetallesFamilias = class(TfrViewContenido, IViewDetallesFamilias)
+ cxStyleRepository1: TcxStyleRepository;
+ cxStyle_IMPORTETOTAL: TcxStyle;
+ cxStyle_SUBTOTAL: TcxStyle;
+ TipoPngImageList: TPngImageList;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewCANTIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewTIPO: TcxGridDBColumn;
+ cxGridViewPOSICION: TcxGridDBColumn;
+ cxGridViewVISIBLE: TcxGridDBColumn;
+ actAnadirCap: TAction;
+ ToolButton1: TToolButton;
+ ToolButton2: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton4: TToolButton;
+ ToolButton5: TToolButton;
+ ToolButton6: TToolButton;
+ ToolButton7: TToolButton;
+ cxStyle_TITULO: TcxStyle;
+ ToolButton8: TToolButton;
+ ToolButton9: TToolButton;
+ actRecalcular: TAction;
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewTIPOStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure actAnadirCapExecute(Sender: TObject);
+ procedure actRecalcularExecute(Sender: TObject);
+ private
+ protected
+ public
+ end;
+
+implementation
+
+uses uBizImportesDetalleBase, uDAInterfaces;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesFamilias.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_DESCRIPCION).Index;
+ if AItem.Index <= IndiceCol then
+ AAllow := True
+ else begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else begin
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_TITULO) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_VISIBLE).Index;
+ if AItem.Index = IndiceCol then
+ AAllow := True
+ else
+ AAllow := False
+ end;
+ end;
+ end;
+end;
+
+procedure TfrViewDetallesFamilias.cxGridViewTIPOStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesFamilias.actAnadirCapExecute(Sender: TObject);
+var
+ AFieldTIPO : TDAField;
+ AFieldDES : TDAField;
+begin
+ if Assigned(DADataSource.DataTable) then
+ begin
+ AFieldTIPO := DADataSource.DataTable.FindField(fld_TIPODETALLE);
+ AFieldDES := DADataSource.DataTable.FindField(fld_DESCRIPCION);
+
+ DADataSource.DataTable.Append;
+ AFieldDES.AsString := 'Capítulo de...';
+ AFieldTIPO.Value := TIPODETALLE_TITULO;
+ if DADataSource.DataTable.State in dsEditModes then
+ DADataSource.DataTable.Post;
+ DADataSource.DataTable.Next;
+
+ DADataSource.DataTable.Insert;
+ AFieldTIPO.Value := TIPODETALLE_CONCEPTO;
+ if DADataSource.DataTable.State in dsEditModes then
+ DADataSource.DataTable.Post;
+ DADataSource.DataTable.Next;
+
+ DADataSource.DataTable.Insert;
+ AFieldDES.AsString := 'Total del capítulo';
+ AFieldTIPO.Value := TIPODETALLE_SUBTOTAL;
+ if DADataSource.DataTable.State in dsEditModes then
+ DADataSource.DataTable.Post;
+ end;
+end;
+
+procedure TfrViewDetallesFamilias.actRecalcularExecute(Sender: TObject);
+begin
+ RecalcularTodo(DADataSource.DataTable);
+end;
+
+end.
diff --git a/Base/uViewDetallesNormales.ddp b/Base/uViewDetallesNormales.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewDetallesNormales.ddp differ
diff --git a/Base/uViewDetallesNormales.dfm b/Base/uViewDetallesNormales.dfm
new file mode 100644
index 0000000..45a5412
--- /dev/null
+++ b/Base/uViewDetallesNormales.dfm
@@ -0,0 +1,92 @@
+inherited frViewDetallesNormales: TfrViewDetallesNormales
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 63
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ end
+ object ToolButton2: TToolButton
+ Left = 63
+ Top = 0
+ Action = actEliminar
+ end
+ object ToolButton3: TToolButton
+ Left = 126
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 2
+ Style = tbsSeparator
+ end
+ object ToolButton4: TToolButton
+ Left = 134
+ Top = 0
+ Action = actSubir
+ end
+ object ToolButton5: TToolButton
+ Left = 197
+ Top = 0
+ Action = actBajar
+ end
+ end
+ inherited ContenidoImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000E14944415478DA
+ 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
+ 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
+ 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
+ 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
+ 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
+ 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
+ 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
+ 0AF3B40000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000714944415478DA
+ 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
+ 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
+ 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
+ DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000E14944415478DA
+ 63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
+ 1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
+ B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
+ 9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
+ 17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
+ A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
+ 30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
+ 7F64240000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000DF4944415478DA
+ 63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
+ 074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
+ F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
+ 23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
+ 9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
+ FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
+ BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
+ 9A0000000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ end
+end
diff --git a/Base/uViewDetallesNormales.pas b/Base/uViewDetallesNormales.pas
new file mode 100644
index 0000000..8ba0f06
--- /dev/null
+++ b/Base/uViewDetallesNormales.pas
@@ -0,0 +1,34 @@
+unit uViewDetallesNormales;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
+ uDADataTable, ActnList, ToolWin, ComCtrls, cxGridLevel, cxClasses,
+ cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid;
+
+type
+ IViewDetallesNormales = interface(IViewContenido)
+ ['{7E9FEF3B-2A2E-404C-BF1E-7C103E671AFE}']
+ end;
+
+ TfrViewDetallesNormales = class(TfrViewContenido, IViewDetallesNormales)
+ ToolButton1: TToolButton;
+ ToolButton2: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton4: TToolButton;
+ ToolButton5: TToolButton;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Base/uViewDireccion.dfm b/Base/uViewDireccion.dfm
new file mode 100644
index 0000000..800152d
--- /dev/null
+++ b/Base/uViewDireccion.dfm
@@ -0,0 +1,114 @@
+inherited frViewDireccion: TfrViewDireccion
+ Width = 300
+ Height = 140
+ Constraints.MinHeight = 140
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 140)
+ object lblCalle: TLabel
+ Left = 16
+ Top = 34
+ Width = 27
+ Height = 13
+ Caption = 'Calle:'
+ end
+ object lblProvincia: TLabel
+ Left = 16
+ Top = 106
+ Width = 47
+ Height = 13
+ Caption = 'Provincia:'
+ end
+ object lblPoblacion: TLabel
+ Left = 16
+ Top = 58
+ Width = 49
+ Height = 13
+ Caption = 'Poblaci'#243'n:'
+ end
+ object lblCodigoPostal: TLabel
+ Left = 16
+ Top = 82
+ Width = 69
+ Height = 13
+ Caption = 'C'#243'digo postal:'
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 55
+ Height = 13
+ Caption = 'Direcci'#243'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 72
+ Top = 8
+ Width = 216
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object eCalle: TcxDBTextEdit
+ Left = 100
+ Top = 30
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'CALLE'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 185
+ end
+ object ePoblacion: TcxDBTextEdit
+ Left = 100
+ Top = 54
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'POBLACION'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 185
+ end
+ object eProvincia: TcxDBTextEdit
+ Left = 100
+ Top = 102
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'PROVINCIA'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Width = 185
+ end
+ object eCodigoPostal: TcxDBTextEdit
+ Left = 100
+ Top = 78
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'CODIGOPOSTAL'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 185
+ end
+ object DADataSource: TDADataSource
+ Left = 24
+ Top = 32
+ end
+end
diff --git a/Base/uViewDireccion.pas b/Base/uViewDireccion.pas
new file mode 100644
index 0000000..d4f1de1
--- /dev/null
+++ b/Base/uViewDireccion.pas
@@ -0,0 +1,40 @@
+unit uViewDireccion;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, StdCtrls, Mask, DBCtrls, DB, uDADataTable, ExtCtrls,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit;
+
+type
+ TfrViewDireccion = class(TfrViewBase)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ Label5: TLabel;
+ lblCalle: TLabel;
+ lblCodigoPostal: TLabel;
+ lblPoblacion: TLabel;
+ lblProvincia: TLabel;
+ eCalle: TcxDBTextEdit;
+ ePoblacion: TcxDBTextEdit;
+ eProvincia: TcxDBTextEdit;
+ eCodigoPostal: TcxDBTextEdit;
+ protected
+ end;
+
+var
+ frViewDireccion: TfrViewDireccion;
+
+implementation
+
+{$R *.dfm}
+
+initialization
+ RegisterClass(TfrViewDireccion);
+
+finalization
+ UnRegisterClass(TfrViewDireccion);
+
+end.
diff --git a/Base/uViewFiltroBase.ddp b/Base/uViewFiltroBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewFiltroBase.ddp differ
diff --git a/Base/uViewFiltroBase.dfm b/Base/uViewFiltroBase.dfm
new file mode 100644
index 0000000..5248d1c
--- /dev/null
+++ b/Base/uViewFiltroBase.dfm
@@ -0,0 +1,198 @@
+object frViewFiltroBase: TfrViewFiltroBase
+ Left = 0
+ Top = 0
+ Width = 565
+ Height = 102
+ TabOrder = 0
+ Visible = False
+ object TBXDock1: TTBXDock
+ Left = 0
+ Top = 0
+ Width = 565
+ Height = 102
+ object TBXDockablePanel1: TTBXDockablePanel
+ Left = 0
+ Top = 0
+ Caption = 'TBXDockablePanel1'
+ CloseButton = False
+ CloseButtonWhenDocked = False
+ DockedHeight = 98
+ DockMode = dmCannotFloatOrChangeDocks
+ ShowCaption = False
+ ShowCaptionWhenDocked = False
+ SupportedDocks = [dkStandardDock, dkMultiDock]
+ TabOrder = 0
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 561
+ Height = 68
+ Align = alTop
+ ParentBackground = True
+ TabOrder = 0
+ AutoContentSizes = [acsWidth, acsHeight]
+ object txtFiltroTodo: TcxTextEdit
+ Left = 86
+ Top = 10
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ Style.LookAndFeel.Kind = lfStandard
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfStandard
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfStandard
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfStandard
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 273
+ end
+ object edtFechaIniFiltro: TcxDateEdit
+ Left = 86
+ Top = 37
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ 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 = 121
+ end
+ object edtFechaFinFiltro: TcxDateEdit
+ Left = 347
+ Top = 37
+ Properties.OnChange = OnCamposFiltroChange
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ 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 = 2
+ Width = 121
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Item1: TdxLayoutItem
+ Caption = 'Que contenga:'
+ Control = txtFiltroTodo
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ LayoutDirection = ldHorizontal
+ ShowBorder = False
+ object dxLayoutControl1Item2: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Entre la fecha:'
+ Control = edtFechaIniFiltro
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item3: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'y'
+ Control = edtFechaFinFiltro
+ ControlOptions.ShowBorder = False
+ end
+ end
+ end
+ end
+ object TBXAlignmentPanel1: TTBXAlignmentPanel
+ Left = 0
+ Top = 68
+ Width = 561
+ Height = 30
+ Align = alTop
+ Margins.Left = 10
+ TabOrder = 1
+ object tbxBotones: TTBXToolbar
+ Left = 10
+ Top = 0
+ Width = 551
+ Height = 30
+ Align = alTop
+ AutoResize = False
+ BorderStyle = bsNone
+ Caption = 'tbxBotones'
+ ChevronHint = 'M'#225's botones|'
+ DockMode = dmCannotFloatOrChangeDocks
+ DockPos = -23
+ DockRow = 1
+ DragHandleStyle = dhNone
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 0
+ object TBXItem2: TTBXItem
+ Action = actQuitarFiltro
+ DisplayMode = nbdmImageAndText
+ Images = PngImageList
+ end
+ end
+ end
+ end
+ end
+ object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
+ Left = 136
+ Top = 16
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 384
+ Top = 72
+ object actQuitarFiltro: TAction
+ Caption = 'Quitar filtros y ver todo'
+ ImageIndex = 0
+ OnExecute = actQuitarFiltroExecute
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001B04944415478DA
+ 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3
+ C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999
+ FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7
+ 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E
+ 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840
+ 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3
+ CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657
+ 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28
+ 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34
+ 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9
+ F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296
+ D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801
+ 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A
+ 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 424
+ Top = 72
+ Bitmap = {}
+ end
+end
diff --git a/Base/uViewFiltroBase.pas b/Base/uViewFiltroBase.pas
new file mode 100644
index 0000000..b22ab8f
--- /dev/null
+++ b/Base/uViewFiltroBase.pas
@@ -0,0 +1,144 @@
+unit uViewFiltroBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl,
+ cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls,
+ StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList;
+
+type
+ IViewFiltroBase = interface
+ ['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}']
+ function GetFiltrosChange: TNotifyEvent;
+ procedure SetFiltrosChange(const Value: TNotifyEvent);
+ property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
+
+ function GetVerFiltros: Boolean;
+ procedure SetVerFiltros(const Value: Boolean);
+ property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
+
+ function GetTexto: String;
+ procedure SetTexto(const Value: String);
+ property Texto: String read GetTexto write SetTexto;
+ end;
+
+ TfrViewFiltroBase = class(TFrame, IViewFiltroBase)
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ txtFiltroTodo: TcxTextEdit;
+ dxLayoutControl1Item2: TdxLayoutItem;
+ edtFechaIniFiltro: TcxDateEdit;
+ dxLayoutControl1Item3: TdxLayoutItem;
+ edtFechaFinFiltro: TcxDateEdit;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ TBXDock1: TTBXDock;
+ TBXDockablePanel1: TTBXDockablePanel;
+ ActionList1: TActionList;
+ actQuitarFiltro: TAction;
+ PngImageList: TPngImageList;
+ tbxBotones: TTBXToolbar;
+ TBXItem2: TTBXItem;
+ TBXAlignmentPanel1: TTBXAlignmentPanel;
+ procedure OnCamposFiltroChange(Sender: TObject);
+ procedure actQuitarFiltroExecute(Sender: TObject);
+
+ private
+ FOnFiltrosChange: TNotifyEvent;
+
+ function GetFiltrosChange: TNotifyEvent;
+ procedure SetFiltrosChange(const Value: TNotifyEvent);
+ function GetVerFiltros: Boolean;
+ procedure SetVerFiltros(const Value: Boolean);
+ function GetTexto: String;
+ procedure SetTexto(const Value: String);
+
+ protected
+ procedure LimpiarCampos; virtual;
+ function ValidarCampos: Boolean; virtual;
+
+ public
+ property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
+ property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
+ property Texto: String read GetTexto write SetTexto;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrViewFiltroBase }
+
+function TfrViewFiltroBase.GetFiltrosChange: TNotifyEvent;
+begin
+ Result := FOnFiltrosChange;
+end;
+
+procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent);
+begin
+ FOnFiltrosChange := Value;
+end;
+
+function TfrViewFiltroBase.GetVerFiltros: Boolean;
+begin
+ Result := Self.Visible;
+end;
+
+procedure TfrViewFiltroBase.SetVerFiltros(const Value: Boolean);
+begin
+ Self.Visible := Value;
+ if not Self.Visible then
+ actQuitarFiltro.Execute;
+end;
+
+procedure TfrViewFiltroBase.LimpiarCampos;
+begin
+ txtFiltroTodo.Clear;
+ edtFechaIniFiltro.Clear;
+ edtFechaFinFiltro.Clear;
+end;
+
+procedure TfrViewFiltroBase.OnCamposFiltroChange(Sender: TObject);
+begin
+ if ValidarCampos then
+ if Assigned(FOnFiltrosChange) then
+ FOnFiltrosChange(Sender);
+end;
+
+function TfrViewFiltroBase.ValidarCampos: Boolean;
+begin
+ Result := True;
+
+ if not VarIsNull(edtFechaIniFiltro.EditValue) and not VarIsNull(edtFechaFinFiltro.EditValue) then
+ begin
+ if (edtFechaIniFiltro.EditValue > edtFechaFinFiltro.EditValue) then
+ begin
+ ShowMessage('La fecha de inicio debe ser anterior a la fecha final');
+ edtFechaIniFiltro.SetFocus;
+ Result := False;
+ end
+ end;
+end;
+
+procedure TfrViewFiltroBase.actQuitarFiltroExecute(Sender: TObject);
+begin
+ LimpiarCampos;
+ if Assigned(FOnFiltrosChange) then
+ FOnFiltrosChange(Sender);
+end;
+
+function TfrViewFiltroBase.GetTexto: String;
+begin
+ Result := txtFiltroTodo.Text;
+end;
+
+procedure TfrViewFiltroBase.SetTexto(const Value: String);
+begin
+ txtFiltroTodo.Text := Value;
+end;
+
+end.
diff --git a/Base/uViewFormaPago.ddp b/Base/uViewFormaPago.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewFormaPago.ddp differ
diff --git a/Base/uViewFormaPago.dfm b/Base/uViewFormaPago.dfm
new file mode 100644
index 0000000..253f8e4
--- /dev/null
+++ b/Base/uViewFormaPago.dfm
@@ -0,0 +1,47 @@
+inherited frViewFormaPago: TfrViewFormaPago
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 222)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 85
+ Height = 13
+ Caption = 'Forma de pago'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 96
+ Top = 8
+ Width = 192
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memFormaPago: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'FORMAPAGO'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 175
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Base/uViewFormaPago.pas b/Base/uViewFormaPago.pas
new file mode 100644
index 0000000..fe3d269
--- /dev/null
+++ b/Base/uViewFormaPago.pas
@@ -0,0 +1,26 @@
+unit uViewFormaPago;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewFormaPago = class(TfrViewBase)
+ DADataSource: TDADataSource;
+ memFormaPago: TcxDBMemo;
+ Label5: TLabel;
+ Bevel1: TBevel;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Base/uViewGrid.ddp b/Base/uViewGrid.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Base/uViewGrid.ddp differ
diff --git a/Base/uViewGrid.dfm b/Base/uViewGrid.dfm
new file mode 100644
index 0000000..83ff94e
--- /dev/null
+++ b/Base/uViewGrid.dfm
@@ -0,0 +1,151 @@
+inherited frViewGrid: TfrViewGrid
+ Width = 443
+ Height = 270
+ Align = alClient
+ object cxGrid: TcxGrid
+ Left = 0
+ Top = 102
+ Width = 443
+ Height = 168
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridView: TcxGridDBTableView
+ OnDblClick = cxGridViewDblClick
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ DataController.DataModeController.SmartRefresh = True
+ DataController.DataModeController.SyncMode = False
+ DataController.DataSource = DADataSource
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ DataController.OnSortingChanged = cxGridViewDataControllerSortingChanged
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ 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
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ Styles.ContentEven = cxStyleEven
+ Styles.ContentOdd = cxStyleOdd
+ Styles.Inactive = cxStyleSelection
+ Styles.Selection = cxStyleSelection
+ end
+ object cxGridLevel: TcxGridLevel
+ GridView = cxGridView
+ end
+ end
+ inline frViewFiltroBase1: TfrViewFiltroBase
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 102
+ Align = alTop
+ TabOrder = 1
+ Visible = False
+ inherited TBXDock1: TTBXDock
+ Width = 443
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ Width = 439
+ inherited txtFiltroTodo: TcxTextEdit
+ Left = 87
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Left = 87
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Left = 275
+ end
+ end
+ inherited TBXAlignmentPanel1: TTBXAlignmentPanel
+ Width = 439
+ inherited tbxBotones: TTBXToolbar
+ Width = 429
+ end
+ end
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 368
+ Top = 96
+ end
+ object ActionList1: TActionList
+ Left = 336
+ Top = 96
+ end
+ object dxComponentPrinter: TdxComponentPrinter
+ CurrentLink = dxComponentPrinterLink
+ 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
+ object dxComponentPrinterLink: 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 39213.688278530090000000
+ OptionsCharts.Transparent = True
+ OptionsFormatting.SuppressBackgroundBitmaps = True
+ OptionsOnEveryPage.Caption = False
+ OptionsOnEveryPage.FilterBar = False
+ OptionsSize.AutoWidth = True
+ OptionsView.Caption = False
+ OptionsView.ExpandButtons = False
+ OptionsView.FilterBar = False
+ OptionsView.GroupFooters = False
+ BuiltInReportLink = True
+ end
+ 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
+ end
+end
diff --git a/Base/uViewGrid.pas b/Base/uViewGrid.pas
new file mode 100644
index 0000000..cdadd28
--- /dev/null
+++ b/Base/uViewGrid.pas
@@ -0,0 +1,499 @@
+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, uViewFiltroBase;
+
+type
+ IViewGrid = interface(IViewBase)
+ ['{07468FAD-4891-42E6-B646-51F17F0033F5}']
+ function GetDblClick: TNotifyEvent;
+ function GetFilter: string;
+ function GetPopupMenu: TPopupMenu;
+ function GetGrid : TcxGrid;
+ procedure Preview;
+ procedure Print;
+ procedure PrintSetup;
+ procedure GotoFirst;
+ procedure GotoLast;
+ procedure SetDblClick(const Value: TNotifyEvent);
+ procedure SetFilter(const Value: string);
+ procedure SetPopupMenu(const Value: TPopupMenu);
+ procedure RefreshGrid;
+ function GetMultiSelection: Boolean;
+ procedure SetMultiSelection(const Value: Boolean);
+ property Filter: string read GetFilter write SetFilter;
+ property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
+ property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
+ property MultiSelection : Boolean read GetMultiSelection write SetMultiSelection;
+ property Grid : TcxGrid read GetGrid;
+ procedure SyncFocusedRecordsFromGrid;
+ procedure SyncFocusedRecordsFromDataSet;
+ procedure StoreToRegistry;
+ procedure RestoreFromRegistry;
+ procedure AjustarAncho;
+ procedure ActivarDesactivarFiltros;
+ function EstanFiltrosVisible: Boolean;
+ end;
+
+ TfrViewGrid = class(TfrViewBase, IViewGrid)
+ ActionList1: TActionList;
+ cxGrid: TcxGrid;
+ cxGridLevel: TcxGridLevel;
+ cxGridView: TcxGridDBTableView;
+ DADataSource: TDADataSource;
+ dxComponentPrinter: TdxComponentPrinter;
+ dxComponentPrinterLink: TdxGridReportLink;
+ dxPSEngineController1: TdxPSEngineController;
+ cxStyleRepository1: TcxStyleRepository;
+ cxStyleEven: TcxStyle;
+ cxStyleOdd: TcxStyle;
+ cxStyleSelection: TcxStyle;
+ frViewFiltroBase1: TfrViewFiltroBase;
+ procedure cxGridViewDblClick(Sender: TObject);
+ procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
+ procedure SelectionChanged(Sender: TcxCustomGridTableView); virtual; abstract;
+ private
+ FViewFiltros: IViewFiltroBase;
+ FFilter: string;
+// FOnFilterChanged : TNotifyEvent;
+ FOnDblClick: TNotifyEvent;
+ FPopupMenu: TPopupMenu;
+ procedure FiltrarGrid(TextoFiltro : String);
+ function GetViewFiltros: IViewFiltroBase;
+ procedure SetViewFiltros(const Value: IViewFiltroBase);
+ procedure OnChangeFiltros(Sender: TObject);
+
+ protected
+ function GetGrid : TcxGrid;
+ function GetDblClick: TNotifyEvent; virtual;
+ function GetFilter: string; virtual;
+ function GetPopupMenu: TPopupMenu; virtual;
+ function GetMultiSelection: Boolean; virtual;
+ procedure SetDblClick(const Value: TNotifyEvent); virtual;
+ procedure SetPopupMenu(const Value: TPopupMenu); virtual;
+ procedure SetMultiSelection(const Value: Boolean); virtual;
+
+ procedure SetFilter(const Value: string); virtual;
+ procedure RefrescarFiltro;
+ procedure AnadirOtrosFiltros; virtual;
+ function AddFilterGrid(const Operator: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList;
+
+ public
+ procedure ShowEmbedded(const AParent : TWinControl); override;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure Preview;
+ procedure Print;
+ procedure PrintSetup;
+ procedure GotoFirst;
+ procedure GotoLast;
+ procedure StoreToRegistry; virtual;
+ procedure RestoreFromRegistry; virtual;
+ property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
+ property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
+ property Grid : TcxGrid read GetGrid;
+ procedure SyncFocusedRecordsFromGrid;
+ procedure SyncFocusedRecordsFromDataSet;
+ property MultiSelection : Boolean read GetMultiSelection write SetMultiSelection;
+ property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros;
+ property Filter: string read GetFilter write SetFilter;
+ procedure ActivarDesactivarFiltros;
+ function EstanFiltrosVisible: Boolean;
+ procedure RefreshGrid;
+ procedure AjustarAncho;
+ end;
+
+procedure Register;
+
+var
+ frViewGrid: TfrViewGrid;
+
+implementation
+
+uses
+ CCReg, uDataModuleBase, uDBSelectionList;
+
+{$R *.dfm}
+
+{ TfrViewGrid }
+
+procedure Register;
+begin
+ RegisterCustomContainer(TfrViewGrid);
+end;
+
+
+{
+********************************* TfrViewGrid **********************************
+}
+constructor TfrViewGrid.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewFiltros := frViewFiltroBase1;
+ FFilter := '';
+// FOnFilterChanged := FilterChanged;
+ GotoFirst;
+end;
+
+procedure TfrViewGrid.cxGridViewDblClick(Sender: TObject);
+begin
+ if Assigned(FOnDblClick) then
+ FOnDblClick(Sender);
+end;
+
+procedure TfrViewGrid.FiltrarGrid(TextoFiltro : String);
+var
+ Columna: TcxGridDBColumn;
+ i: Integer;
+ AItemList: TcxFilterCriteriaItemList;
+ AItemList2: TcxFilterCriteriaItemList;
+ EsPrimera: Boolean;
+begin
+ with cxGridView.DataController.Filter do
+ begin
+ BeginUpdate;
+ try
+ Options := [fcoCaseInsensitive, fcoSoftCompare];
+ Root.Clear;
+ if Length(TextoFiltro) > 0 then
+ begin
+ EsPrimera := True;
+ for i:=0 to (cxGridView as TcxGridDBTableView).ColumnCount - 1 do
+ begin
+ Columna := (cxGridView as TcxGridDBTableView).Columns[i];
+ if Columna.Visible then
+ begin
+ if EsPrimera then
+ begin
+ AItemList := Root;
+ AItemList.BoolOperatorKind := fboAnd;
+ AItemList2 := AItemList.AddItemList(fboAnd);
+ AItemList := AItemList2;
+ AItemList2 := AItemList.AddItemList(fboOr);
+ AItemList := AItemList2;
+ AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i));
+ EsPrimera := False;
+ end
+ else begin
+ AItemList2 := AItemList.AddItemList(fboOr);
+ AItemList2.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i));
+ AItemList := AItemList2;
+ end;
+ end;
+ end;
+ Active := True;
+ end
+ else
+ Active := False;
+ finally
+ EndUpdate;
+ end;
+ end;
+end;
+
+function TfrViewGrid.GetDblClick: TNotifyEvent;
+begin
+ Result := FOnDblClick;
+end;
+
+function TfrViewGrid.GetFilter: string;
+begin
+ Result := FFilter;
+end;
+
+function TfrViewGrid.GetPopupMenu: TPopupMenu;
+begin
+ Result := FPopupMenu;
+end;
+
+procedure TfrViewGrid.GotoFirst;
+begin
+ cxGridView.DataController.GotoFirst;
+end;
+
+procedure TfrViewGrid.GotoLast;
+begin
+ cxGridView.DataController.GotoLast;
+end;
+
+procedure TfrViewGrid.SetDblClick(const Value: TNotifyEvent);
+begin
+ FOnDblClick := Value;
+end;
+
+procedure TfrViewGrid.SetFilter(const Value: string);
+begin
+ FFilter := Value;
+
+ //Así tendremos el mismo valor en el filtro simple que en el filtro en detalle
+ if Assigned(ViewFiltros) then
+ ViewFiltros.Texto := FFilter;
+
+ FiltrarGrid(FFilter);
+
+ //Obliga a generar todos los filtros de las vista hija
+ AnadirOtrosFiltros;
+end;
+
+procedure TfrViewGrid.SetPopupMenu(const Value: TPopupMenu);
+begin
+ FPopupMenu := Value;
+ cxGridView.PopupMenu := FPopupMenu;
+end;
+
+procedure TfrViewGrid.cxGridViewDataControllerSortingChanged(
+ Sender: TObject);
+var
+ i: Integer;
+ AFields: array of String;
+ ADirections: array of TDASortDirection;
+ ABookmark : Pointer;
+begin
+ inherited;
+
+ with cxGridView do
+ begin
+ for i := 0 to SortedItemCount - 1 do
+ begin
+ SetLength(AFields, i+1);
+ AFields[i] := (SortedItems[i] as TcxGridDBColumn).DataBinding.FieldName;
+ SetLength(ADirections, i+1);
+ case (SortedItems[i] as TcxGridDBColumn).SortOrder of
+ soAscending : ADirections[i] := sdAscending;
+ soDescending : ADirections[i] := sdDescending;
+ end;
+ end;
+ end;
+
+ if Assigned(DADataSource.DataTable) then
+ with DADataSource.DataTable do
+ begin
+ DisableControls;
+ ABookmark := GetBookMark;
+ try
+ Sort(AFields, ADirections);
+ GotoBookmark(ABookmark);
+ finally
+ FreeBookmark(ABookmark);
+ EnableControls;
+ end;
+ end;
+end;
+
+function TfrViewGrid.GetGrid: TcxGrid;
+begin
+ Result := cxGrid;
+end;
+
+procedure TfrViewGrid.ShowEmbedded(const AParent : TWinControl);
+begin
+ inherited;
+
+ if not DADataSource.DataTable.Active then
+ DADataSource.DataTable.Active := True;
+
+ with Grid do
+ begin
+ ActiveView.DataController.GotoFirst;
+ ActiveView.Focused := True;
+ if (ActiveView.ViewData as TcxCustomGridTableViewData).RecordCount > 0 then
+ begin
+ (ActiveView.ViewData as TcxCustomGridTableViewData).Records[0].Selected := True;
+ (ActiveView.ViewData as TcxCustomGridTableViewData).Records[0].Focused := True;
+ end;
+{ if (ActiveView is TcxCustomGridTableView) then
+ (ActiveView as TcxCustomGridTableView).ApplyBestFit;}
+ end;
+end;
+
+procedure TfrViewGrid.Preview;
+begin
+ dxComponentPrinter.Preview;
+end;
+
+procedure TfrViewGrid.Print;
+begin
+ dxComponentPrinter.Print(True, nil, nil);
+end;
+
+procedure TfrViewGrid.PrintSetup;
+begin
+ dxComponentPrinter.PageSetup(nil);
+end;
+
+procedure TfrViewGrid.RefreshGrid;
+var
+ FocusedRow, TopRow : Integer;
+begin
+ { Refrescar las filas del grid a partir del dataset y colocar la fila
+ seleccionada donde estaba }
+
+ if DADataSource.DataTable.State = dsBrowse then
+ begin
+ TopRow := cxGridView.Controller.TopRowIndex;
+ FocusedRow := cxGridView.DataController.FocusedRowIndex;
+
+ cxGridView.DataController.UpdateItems(False); // <- Refresco
+
+ cxGridView.DataController.FocusedRowIndex := FocusedRow;
+ cxGridView.Controller.TopRowIndex := TopRow;
+ end;
+end;
+
+procedure TfrViewGrid.SyncFocusedRecordsFromDataSet;
+var
+ AIndex : Integer;
+begin
+{ for AIndex := 0 to cxGridView.DataController.RecordCount - 1 do
+ begin
+ if (MessageBox(0, PChar(cxGridView.DataController.GetDisplayText(AIndex, 1)), '',
+ MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = idYes) then
+ begin
+ cxGridView.DataController.SelectAll;
+
+
+ cxGridView.DataController.SelectRows(AIndex, AIndex);
+ cxGridView.DataController.FocusSelectedRow(0);
+ Break;
+ end;
+ end;}
+end;
+
+procedure TfrViewGrid.SyncFocusedRecordsFromGrid;
+var
+ AValue : Variant;
+ i: Integer;
+ aObj : ISelectedRowList;
+ Clave : String;
+begin
+ if not Supports(DADataSource.DataTable, ISelectedRowList, aObj) then
+ raise Exception.Create('La tabla no soporta el interfaz ISelectedRowList (SyncFocusedRecords)');
+
+ Clave := cxGridView.DataController.KeyFieldNames;
+ if Length(Clave) = 0 then
+ raise Exception.Create('Falta indicar los campos clave de la tabla en la vista del grid (SyncFocusedRecords)');
+
+ DADataSource.DataTable.DisableControls;
+// DADataSource.DataTable.DisableEventHandlers; <- No descomentar
+ try
+ for i := 0 to cxGridView.Controller.SelectedRecordCount - 1 do
+ begin
+ AValue := cxGridView.Controller.SelectedRows[i].Values[cxGridView.GetColumnByFieldName(Clave).Index];
+ DADataSource.DataTable.First;
+ if DADataSource.DataTable.Locate(Clave, AValue, []) then
+ aObj.SelectedRows.CurrentRowSelected := True;
+ end;
+ finally
+// DADataSource.DataTable.EnableEventHandlers; <- No descomentar
+ DADataSource.DataTable.EnableControls;
+ end;
+end;
+
+function TfrViewGrid.GetMultiSelection: Boolean;
+begin
+ Result := (cxGrid.ActiveView as TcxGridDBTableView).OptionsSelection.MultiSelect;
+end;
+
+procedure TfrViewGrid.SetMultiSelection(const Value: Boolean);
+begin
+ (cxGrid.ActiveView as TcxGridDBTableView).OptionsSelection.MultiSelect := True;
+ (cxGrid.ActiveView as TcxGridDBTableView).OnSelectionChanged := SelectionChanged;
+end;
+
+procedure TfrViewGrid.RestoreFromRegistry;
+begin
+ cxGridView.RestoreFromRegistry('Software\\FactuGES\\GridSettings\\' + Self.Name, False, False, []);
+end;
+
+procedure TfrViewGrid.StoreToRegistry;
+begin
+ cxGridView.StoreToRegistry('Software\\FactuGES\\GridSettings\\' + Self.Name, True, []);
+end;
+
+{
+procedure TfrViewGrid.FilterChanged(Sender: TObject);
+begin
+//
+end;
+}
+
+destructor TfrViewGrid.Destroy;
+begin
+// FOnFilterChanged := Nil;
+ ViewFiltros := NIL;
+ inherited;
+end;
+
+procedure TfrViewGrid.AjustarAncho;
+begin
+ cxGridView.ApplyBestFit;
+end;
+
+function TfrViewGrid.AddFilterGrid(const Operator: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList;
+var
+ AItemList: TcxFilterCriteriaItemList;
+begin
+ AItemList := cxGridView.DataController.Filter.Root;
+ Result := AItemList.AddItemList(Operator);
+end;
+
+procedure TfrViewGrid.RefrescarFiltro;
+begin
+ //De esta forma obligaremos a que se creen nuevamente todos los filtros, cuando llamemos a este metodo
+ if Assigned(ViewFiltros) then
+ Filter := ViewFiltros.Texto;
+end;
+
+function TfrViewGrid.GetViewFiltros: IViewFiltroBase;
+begin
+ Result := FViewFiltros;
+end;
+
+procedure TfrViewGrid.SetViewFiltros(const Value: IViewFiltroBase);
+begin
+ if Assigned(Value) then
+ begin
+ FViewFiltros := Value;
+ FViewFiltros.OnFiltrosChange := OnChangeFiltros;
+ end
+ else
+ begin
+ FViewFiltros.OnFiltrosChange := Nil;
+ FViewFiltros := Value;
+ end;
+end;
+
+procedure TfrViewGrid.OnChangeFiltros(Sender: TObject);
+begin
+ cxGridView.DataController.Filter.BeginUpdate;
+ RefrescarFiltro;
+ cxGridView.DataController.Filter.EndUpdate;
+end;
+
+procedure TfrViewGrid.ActivarDesactivarFiltros;
+begin
+ if Assigned(ViewFiltros) then
+ ViewFiltros.VerFiltros := not ViewFiltros.VerFiltros;
+end;
+
+function TfrViewGrid.EstanFiltrosVisible: Boolean;
+begin
+ Result := ViewFiltros.VerFiltros;
+end;
+
+procedure TfrViewGrid.AnadirOtrosFiltros;
+begin
+//
+end;
+
+end.
diff --git a/Base/uViewInternet.dfm b/Base/uViewInternet.dfm
new file mode 100644
index 0000000..4ad138a
--- /dev/null
+++ b/Base/uViewInternet.dfm
@@ -0,0 +1,94 @@
+inherited frViewInternet: TfrViewInternet
+ Width = 300
+ Height = 115
+ Constraints.MinHeight = 115
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 115)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 45
+ Height = 13
+ Caption = 'Internet'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 56
+ Top = 8
+ Width = 233
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblParticular: TLabel
+ Left = 16
+ Top = 34
+ Width = 76
+ Height = 13
+ Caption = 'E-mail personal:'
+ end
+ object lblTrabajo: TLabel
+ Left = 16
+ Top = 58
+ Width = 70
+ Height = 13
+ Caption = 'E-mail trabajo:'
+ end
+ object lblMovil: TLabel
+ Left = 16
+ Top = 82
+ Width = 59
+ Height = 13
+ Caption = 'P'#225'gina web:'
+ end
+ object ePaginaWeb: TcxDBTextEdit
+ Left = 100
+ Top = 78
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'PAGINAWEB'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 185
+ end
+ object eMailTrabajo: TcxDBTextEdit
+ Left = 100
+ Top = 54
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'CORREO2'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 185
+ end
+ object eMailParticular: TcxDBTextEdit
+ Left = 100
+ Top = 30
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'CORREO1'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 185
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 32
+ end
+end
diff --git a/Base/uViewInternet.pas b/Base/uViewInternet.pas
new file mode 100644
index 0000000..1be2231
--- /dev/null
+++ b/Base/uViewInternet.pas
@@ -0,0 +1,39 @@
+unit uViewInternet;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit;
+
+type
+ TfrViewInternet = class(TfrViewBase)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ Label5: TLabel;
+ lblMovil: TLabel;
+ lblParticular: TLabel;
+ lblTrabajo: TLabel;
+ ePaginaWeb: TcxDBTextEdit;
+ eMailTrabajo: TcxDBTextEdit;
+ eMailParticular: TcxDBTextEdit;
+ end;
+
+var
+ frViewInternet: TfrViewInternet;
+
+implementation
+
+{$R *.dfm}
+
+initialization
+ RegisterClass(TfrViewInternet);
+
+finalization
+
+ UnRegisterClass(TfrViewInternet);
+
+end.
+
diff --git a/Base/uViewMensaje.dfm b/Base/uViewMensaje.dfm
new file mode 100644
index 0000000..1f63dfb
--- /dev/null
+++ b/Base/uViewMensaje.dfm
@@ -0,0 +1,104 @@
+inherited frViewMensaje: TfrViewMensaje
+ Width = 443
+ Height = 22
+ Align = alTop
+ Visible = False
+ object TBXAlignmentPanel1: TTBXAlignmentPanel
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 22
+ Align = alClient
+ AutoSize = True
+ Color = clInfoBk
+ Margins.Left = 2
+ Margins.Top = 2
+ Margins.Right = 2
+ Margins.Bottom = 2
+ TabOrder = 0
+ object Image1: TImage
+ Left = 2
+ Top = 2
+ Width = 19
+ Height = 18
+ Align = alLeft
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000
+ 00001008060000001FF3FF61000000097048597300000AEB00000AEB01828B0D
+ 5A0000000467414D410000B18E7CFB51930000027F4944415478DA95926D4853
+ 5118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440A4E84D828C
+ 304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A645083CC557871
+ 29CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3C2A1608EF5
+ A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBEFF3CBC5830
+ C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78091139AC66
+ F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5DBD8D6985E3
+ 7BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB7E5FE2A15A
+ 18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BFD37823B3D8
+ 79784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E1509132316
+ E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159AC0502785D8
+ 984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611E4038EF342
+ 56FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF288E87A8D5
+ 97389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5D632EEDC1F
+ 00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0406C62D86E
+ EFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E686872C1CE1C
+ 2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075184D43A0FF
+ 400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D03467FFC8106E2
+ A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A895046225E8670B8C
+ D01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE5482788F788F
+ F9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51CF00000000
+ 49454E44AE426082}
+ end
+ object lblMensaje: TLabel
+ Left = 21
+ Top = 2
+ Width = 398
+ Height = 18
+ Align = alClient
+ Caption = 'Mensaje'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ Layout = tlCenter
+ end
+ object bClose: TJvNavIconButton
+ Left = 419
+ Top = 2
+ Height = 18
+ Align = alRight
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ ButtonType = nibClose
+ 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
+ ImageIndex = 0
+ StyleManager = dmBase.StyleManager
+ ParentStyleManager = False
+ OnClick = bCloseClick
+ end
+ end
+ object ApplicationEvents: TApplicationEvents
+ OnException = ApplicationEventsException
+ Left = 104
+ end
+end
diff --git a/Base/uViewMensaje.pas b/Base/uViewMensaje.pas
new file mode 100644
index 0000000..551785a
--- /dev/null
+++ b/Base/uViewMensaje.pas
@@ -0,0 +1,49 @@
+unit uViewMensaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, StdCtrls, pngimage, ExtCtrls, TBXDkPanels, AppEvnts,
+ JvExControls, JvComponent, JvButton, JvNavigationPane;
+
+type
+ TfrViewMensaje = class(TfrViewBase)
+ TBXAlignmentPanel1: TTBXAlignmentPanel;
+ Image1: TImage;
+ lblMensaje: TLabel;
+ ApplicationEvents: TApplicationEvents;
+ bClose: TJvNavIconButton;
+ procedure ApplicationEventsException(Sender: TObject; E: Exception);
+ procedure bCloseClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewMensaje: TfrViewMensaje;
+
+implementation
+
+uses uDataModuleBase;
+
+{$R *.dfm}
+
+procedure TfrViewMensaje.ApplicationEventsException(Sender: TObject;
+ E: Exception);
+begin
+ inherited;
+ lblMensaje.Caption := E.Message;
+ if not Visible then
+ Visible := True;
+end;
+
+procedure TfrViewMensaje.bCloseClick(Sender: TObject);
+begin
+ inherited;
+ Visible := False;
+end;
+
+end.
diff --git a/Base/uViewObservaciones.dfm b/Base/uViewObservaciones.dfm
new file mode 100644
index 0000000..86381d8
--- /dev/null
+++ b/Base/uViewObservaciones.dfm
@@ -0,0 +1,47 @@
+inherited frViewObservaciones: TfrViewObservaciones
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 226)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 85
+ Height = 13
+ Caption = 'Observaciones'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 96
+ Top = 8
+ Width = 192
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memObservaciones: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'OBSERVACIONES'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 179
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Base/uViewObservaciones.pas b/Base/uViewObservaciones.pas
new file mode 100644
index 0000000..2430eba
--- /dev/null
+++ b/Base/uViewObservaciones.pas
@@ -0,0 +1,26 @@
+unit uViewObservaciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewObservaciones = class(TfrViewBase)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ memObservaciones: TcxDBMemo;
+ DADataSource: TDADataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Base/uViewPlazoEntrega.dfm b/Base/uViewPlazoEntrega.dfm
new file mode 100644
index 0000000..a639fd0
--- /dev/null
+++ b/Base/uViewPlazoEntrega.dfm
@@ -0,0 +1,47 @@
+inherited frViewPlazoEntrega: TfrViewPlazoEntrega
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 240)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 97
+ Height = 13
+ Caption = 'Plazo de entrega'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 112
+ Top = 8
+ Width = 176
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memPlazoEntrega: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'PLAZOENTREGA'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 193
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Base/uViewPlazoEntrega.pas b/Base/uViewPlazoEntrega.pas
new file mode 100644
index 0000000..c5cb33c
--- /dev/null
+++ b/Base/uViewPlazoEntrega.pas
@@ -0,0 +1,26 @@
+unit uViewPlazoEntrega;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewPlazoEntrega = class(TfrViewBase)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ memPlazoEntrega: TcxDBMemo;
+ DADataSource: TDADataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Base/uViewPreview.dfm b/Base/uViewPreview.dfm
new file mode 100644
index 0000000..54a0015
--- /dev/null
+++ b/Base/uViewPreview.dfm
@@ -0,0 +1,10 @@
+inherited frViewPreview: TfrViewPreview
+ object frxPreview: TfrxPreview
+ Left = 0
+ Top = 0
+ Width = 320
+ Height = 240
+ Align = alClient
+ OutlineVisible = False
+ end
+end
diff --git a/Base/uViewPreview.pas b/Base/uViewPreview.pas
new file mode 100644
index 0000000..c076735
--- /dev/null
+++ b/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.
+
+end.
diff --git a/Base/uViewTelefonos.dfm b/Base/uViewTelefonos.dfm
new file mode 100644
index 0000000..e1f7768
--- /dev/null
+++ b/Base/uViewTelefonos.dfm
@@ -0,0 +1,114 @@
+inherited frViewTelefonos: TfrViewTelefonos
+ Width = 300
+ Height = 140
+ Constraints.MinHeight = 140
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 140)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 57
+ Height = 13
+ Caption = 'Tel'#233'fonos'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 72
+ Top = 8
+ Width = 217
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblParticular: TLabel
+ Left = 16
+ Top = 34
+ Width = 49
+ Height = 13
+ Caption = 'Particular:'
+ end
+ object lblTrabajo: TLabel
+ Left = 16
+ Top = 58
+ Width = 41
+ Height = 13
+ Caption = 'Trabajo:'
+ end
+ object lblMovil: TLabel
+ Left = 16
+ Top = 82
+ Width = 73
+ Height = 13
+ Caption = 'Tel'#233'fono m'#243'vil:'
+ end
+ object lblFax: TLabel
+ Left = 16
+ Top = 106
+ Width = 75
+ Height = 13
+ Caption = 'N'#250'mero de fax:'
+ end
+ object eTlfParticular: TcxDBTextEdit
+ Left = 100
+ Top = 30
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'TELEFONO1'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 185
+ end
+ object eTlfTrabajo: TcxDBTextEdit
+ Left = 100
+ Top = 54
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'TELEFONO2'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 185
+ end
+ object eTlfMovil: TcxDBTextEdit
+ Left = 100
+ Top = 78
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'MOVIL'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 185
+ end
+ object eFax: TcxDBTextEdit
+ Left = 100
+ Top = 102
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FAX'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Width = 185
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 32
+ end
+end
diff --git a/Base/uViewTelefonos.pas b/Base/uViewTelefonos.pas
new file mode 100644
index 0000000..a1f4f9b
--- /dev/null
+++ b/Base/uViewTelefonos.pas
@@ -0,0 +1,41 @@
+unit uViewTelefonos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit;
+
+type
+ TfrViewTelefonos = class(TfrViewBase)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ Label5: TLabel;
+ lblFax: TLabel;
+ lblMovil: TLabel;
+ lblParticular: TLabel;
+ lblTrabajo: TLabel;
+ eTlfParticular: TcxDBTextEdit;
+ eTlfTrabajo: TcxDBTextEdit;
+ eTlfMovil: TcxDBTextEdit;
+ eFax: TcxDBTextEdit;
+ end;
+
+var
+ frViewTelefonos: TfrViewTelefonos;
+
+implementation
+
+{$R *.dfm}
+
+initialization
+ RegisterClass(TfrViewTelefonos);
+
+finalization
+
+ UnRegisterClass(TfrViewTelefonos);
+
+end.
+
diff --git a/Base/uViewTotales.dfm b/Base/uViewTotales.dfm
new file mode 100644
index 0000000..aa87857
--- /dev/null
+++ b/Base/uViewTotales.dfm
@@ -0,0 +1,271 @@
+inherited frViewTotales: TfrViewTotales
+ Width = 730
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ object TabControl1: TTabControl
+ Left = 0
+ Top = 0
+ Width = 730
+ Height = 122
+ Align = alClient
+ TabOrder = 0
+ object GroupBox1: TGroupBox
+ Left = 8
+ Top = 8
+ Width = 713
+ Height = 105
+ Caption = 'Importes totales'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 0
+ object Label1: TLabel
+ Left = 16
+ Top = 25
+ Width = 74
+ Height = 13
+ Caption = 'Base imponible:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ end
+ object Label2: TLabel
+ Left = 248
+ Top = 25
+ Width = 77
+ Height = 13
+ Caption = 'Descuento (%):'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ end
+ object Label3: TLabel
+ Left = 282
+ Top = 49
+ Width = 43
+ Height = 13
+ Caption = 'IVA (%):'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ end
+ object Label4: TLabel
+ Left = 483
+ Top = 25
+ Width = 76
+ Height = 13
+ Caption = 'Importe de dto:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ end
+ object Label5: TLabel
+ Left = 482
+ Top = 49
+ Width = 77
+ Height = 13
+ Caption = 'Importe de IVA:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ end
+ object Label7: TLabel
+ Left = 479
+ Top = 73
+ Width = 80
+ Height = 13
+ Caption = 'Importe total:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object lblBase: TcxDBCurrencyEdit
+ Left = 96
+ Top = 21
+ AutoSize = False
+ DataBinding.DataField = 'BASEIMPONIBLE'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 21
+ Width = 137
+ end
+ object cxCurrencyEdit3: TcxDBCurrencyEdit
+ Left = 562
+ Top = 21
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTEDESCUENTO'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Height = 21
+ Width = 137
+ end
+ object cxCurrencyEdit4: TcxDBCurrencyEdit
+ Left = 562
+ Top = 45
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTEIVA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 4
+ Height = 21
+ Width = 137
+ end
+ object cxCurrencyEdit5: TcxDBCurrencyEdit
+ Left = 562
+ Top = 69
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTETOTAL'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clActiveCaption
+ Style.TextStyle = [fsBold]
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 5
+ Height = 21
+ Width = 137
+ end
+ object cxCurrencyEdit1: TcxDBSpinEdit
+ Left = 328
+ Top = 21
+ AutoSize = False
+ DataBinding.DataField = 'DESCUENTO'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.DisplayFormat = ',0.00 %;-,0.00 %'
+ Properties.ImmediatePost = True
+ Properties.MaxValue = 100.000000000000000000
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 137
+ end
+ object cxCurrencyEdit2: TcxDBSpinEdit
+ Left = 328
+ Top = 45
+ AutoSize = False
+ DataBinding.DataField = 'IVA'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.AssignedValues.MinValue = True
+ Properties.DisplayFormat = ',0.00 %;-,0.00 %'
+ Properties.ImmediatePost = True
+ Properties.MaxValue = 100.000000000000000000
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Height = 21
+ Width = 137
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 80
+ end
+end
diff --git a/Base/uViewTotales.pas b/Base/uViewTotales.pas
new file mode 100644
index 0000000..3d0908e
--- /dev/null
+++ b/Base/uViewTotales.pas
@@ -0,0 +1,40 @@
+unit uViewTotales;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
+ ComCtrls;
+
+type
+ TfrViewTotales = class(TfrViewBase)
+ DADataSource: TDADataSource;
+ GroupBox1: TGroupBox;
+ Label1: TLabel;
+ Label2: TLabel;
+ Label3: TLabel;
+ Label4: TLabel;
+ Label5: TLabel;
+ Label7: TLabel;
+ lblBase: TcxDBCurrencyEdit;
+ cxCurrencyEdit3: TcxDBCurrencyEdit;
+ cxCurrencyEdit4: TcxDBCurrencyEdit;
+ cxCurrencyEdit5: TcxDBCurrencyEdit;
+ cxCurrencyEdit1: TcxDBSpinEdit;
+ cxCurrencyEdit2: TcxDBSpinEdit;
+ TabControl1: TTabControl;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Cliente/FactuGES.bdsproj b/Cliente/FactuGES.bdsproj
new file mode 100644
index 0000000..4a81d78
--- /dev/null
+++ b/Cliente/FactuGES.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ FactuGES.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\Cliente
+ .\
+
+
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+ PluginSDK_D7R;GUISDK_D7;BaseD7;Configuracion;Usuarios
+
+
+ True
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+ C:\Archivos de programa\Borland\Delphi7\Bin\
+
+
+ True
+ False
+ 1
+ 2
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+ Rodax Software S.L.
+
+ 1.2.0.0
+ FactuGES
+
+
+
+ FactuGES
+ 1.0.0.0
+
+
+
+
+
diff --git a/Cliente/FactuGES.cfg b/Cliente/FactuGES.cfg
new file mode 100644
index 0000000..52439a1
--- /dev/null
+++ b/Cliente/FactuGES.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"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-LN"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas"
+-LUPluginSDK_D7R;GUISDK_D7;BaseD7;Configuracion;Usuarios
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Cliente/FactuGES.dof b/Cliente/FactuGES.dof
new file mode 100644
index 0000000..bcd0d40
--- /dev/null
+++ b/Cliente/FactuGES.dof
@@ -0,0 +1,522 @@
+[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=
+PackageDCPOutputDir=
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Packages=PluginSDK_D7R;GUISDK_D7;BaseD7;Configuracion;Usuarios
+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=4
+Release=0
+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.4.0.0
+InternalName=FactuGES
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=FactuGES
+ProductVersion=1.0.0.0
+Comments=
+[Excluded Packages]
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Cliente/FactuGES.dpr b/Cliente/FactuGES.dpr
new file mode 100644
index 0000000..406a828
--- /dev/null
+++ b/Cliente/FactuGES.dpr
@@ -0,0 +1,24 @@
+program FactuGES;
+
+uses
+ Forms,
+ uLoginForm,
+ uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal},
+ uMenuUtils in 'uMenuUtils.pas',
+ uSplash in 'uSplash.pas' {SplashScreen},
+ uAcercaDe in 'uAcercaDe.pas' {fAcercaDe},
+ schPresupuestosClient_Intf in '..\Modulos\Presupuestos\Reglas\schPresupuestosClient_Intf.pas',
+ schPresupuestosServer_Intf in '..\Modulos\Presupuestos\Reglas\schPresupuestosServer_Intf.pas';
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+
+ Application.Title := 'FactuGES';
+ Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal);
+ Application.CreateForm(TfAcercaDe, fAcercaDe);
+ Application.Run;
+ Application.Terminate;
+end.
+
diff --git a/Cliente/FactuGES.drc b/Cliente/FactuGES.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Cliente/FactuGES.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Cliente/FactuGES.res b/Cliente/FactuGES.res
new file mode 100644
index 0000000..4ed9eb9
Binary files /dev/null and b/Cliente/FactuGES.res differ
diff --git a/Cliente/PluginSDK_D7R.drc b/Cliente/PluginSDK_D7R.drc
new file mode 100644
index 0000000..a81d7c4
--- /dev/null
+++ b/Cliente/PluginSDK_D7R.drc
@@ -0,0 +1,10 @@
+/* VER150
+ 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.
+*/
+
diff --git a/Cliente/uAcercaDe.dfm b/Cliente/uAcercaDe.dfm
new file mode 100644
index 0000000..297ca72
--- /dev/null
+++ b/Cliente/uAcercaDe.dfm
@@ -0,0 +1,1090 @@
+object fAcercaDe: TfAcercaDe
+ Left = 531
+ Top = 365
+ Width = 435
+ Height = 435
+ ActiveControl = bAceptar
+ Caption = 'Acerca de...'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object JvGradient1: TJvGradient
+ Left = 0
+ Top = 97
+ 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 = 97
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Image1: TImage
+ Left = -19
+ Top = 0
+ Width = 450
+ Height = 97
+ Picture.Data = {
+ 0B544A76474946496D6167651A7F0000474946383961C201FA00E60000625E5C
+ FFFFFFE66738AB8259F6D2A8B72624886A4DC538298F8F8FAC2724000000FBFB
+ FBB2B2B2E4E4E4F2F2F2EDEDED30302FEC733CF48544D5AC83DFDFDFF07B40CD
+ 432CF7F7F7F9A8A6FCEDC2DD5933D1482EF6D7CEE9E9E9D5D4D4EABB95DA5532
+ D1B1ACFA9630C4746ECD9992C7C6C6D75130FBCC30D44D2FF39367594E44BD96
+ 6FC0574EFBE8DFB04D41CC665AFDF3E6B0AC8FD7C5C1D8D8E6BA3532B08981CE
+ A87DE15F35BF2E26C2433AE59D90FDD75DF8A57DFDF5F1D26F2F423D37D9D5D4
+ FA812EF1E1DDEAEAF9FEF8F5AD3A35AB302CA22824DACFCCFEFBFA878686E3E4
+ E9CECEDEDD6142BDBCBCA48C33A6A6A6BBBCC8F6792FD2513AE1E1E1F5F6F1E3
+ 7D62D6D6D8EBEBEBE0D8D7999999F6F0EFFDFDFDF1EDEAFCAA4CDADBDBEDE9E4
+ E7E8E9CE827DD45A44EAEBECEFEFEF767473FBF1F0D85538F9F9F9CCCCCCEBED
+ EDC94E40F5F5F5DA4E2FD9D9D9FAFAEFEFEFF5F3F5F3ECECE9444343CACA9DE1
+ 7630E96D3AF4C2BAD1D1D1DD8542D3AF34D7D7D7D75E32E7E7E7EAE6E62C0000
+ 0000C201FA000007FF801282838485868788898A831F04305C01919293949596
+ 9798999A9B9C9D9E9FA0A1A2A3935C0B17650F580F0E176990A4B1B2B3B4B5A4
+ 12221229B8BABCB982BBB9C1BDC283C3C7BEBCBBC0CABA3C041949B6D3D4D5D6
+ D7D8A50B6D657EDE58656D170B0B01B0D9E8B3905CECEDEEEFECE6E9968BF5F6
+ F7885E3C1C30F3FEFF00038AE292A6CD033F541A34E800AE559A05E7044AAC64
+ EAD4853618336A14E70AA2C45ECC42821CB98CA4B193224BAA342682079E7E13
+ 63CA9C69CD94C10614285049E86795B85734279A2AE820D5AAA3AA92B26AE531
+ 20BEA75017A5F89021A8D5AB5837D9C4D2E00B05AF5EA9F42CE31062BCACD6C8
+ 5D4CD5C18FC2B770FF15FAE9F020DCB888E906FDE26568AF5F7C7B09FD3534B5
+ 05DAC38883DA7C8033A7E39D0D7AB26A930668E25A04DB3850E576A7CECF5474
+ EEE4B9CA01E572FEA2AA5E3D68DFD9CBB063635BEC272758C7A2E74EBEF05A36
+ A805698AB66D101AB771E33C3B901D979AB5737C29F611C1EBBBBAF550B44343
+ 56E85967642C584CDFA57EBD54E63258DC1E7FFCF93864C9E27A5B4B54E1797D
+ 45F725E43FE4120691F20006A8096D3925D74107C43D469A5D4D091889291738
+ 804518097E65A168A365681B6E3BF5C4143ACF85584F0A53F1439E8328566753
+ 37A1454616375C35A6A0870E3C84A24D0E20581C870945E68D379171B7236E0B
+ 7D888D6AFB2D92A4FF214B12F64C34294609E0296574305A789545889E5B0986
+ F5DD8B0FC917DB8A086E285A6407829714780702495C715E5150641B62D622E2
+ 9D8AF040D57F52F6291B3B11EAD800166D40A4168C9D15D7E35CCB59A6628458
+ 20C8259A0FD4E5C0A59A657A69A5E001A9E8770E9D388B7EA4D6676AA9A89EAA
+ 2AA982ACDAEA20ABC6CAEA333DF8692B6C5CA0820564E1C5C3CE2945455AE163
+ 0BB172973CA25A056C5165344B9678955506DCB4695CA459B39CC9459769D226
+ 1BCBABE0B22A6E7EE41E522E93B0A61B6E0A041876EBBB59019A23710B158A6C
+ 00C05DB4D9703B26B75C470D8252861208D0A1C0C108230C01024A3831CA50D5
+ 46FC103966C1F30EFF5197A692CA4F2528A1040409274C87C7B2A46AB2AC289F
+ AC72CAAA16C627BC30D34490846F2A07D43AED54A6992A0A291859A56455EBAD
+ 251F876CF4D14A6CA2C5D14C376D3400B96A8629656928E1F4D100382CCAB9E3
+ AADB75B85C87ED759253393274CC685FC34E705CF154A3AFF7021AE103FC12EB
+ CDB374B6B30903205FED3403992CEDF7E0099B911946AE70E144DF84270C4019
+ A1AC2C39CB9357DEF2332D4893F6E600CDBC6B42E135B80EB2C01195ADA29085
+ 01CE4FDE02D0B8D3495F22F8EB7E435DED4F0B584D7BC81040FE891E964B003C
+ E5C4077FAA045E50552BE7FF98B1BBD197C9ABA31F65004572DCC81214A184EA
+ CDA81CB7273E60F0FFF34723203BF94E1B6ED12BB3A3AF0004A05420FFFCFACD
+ 6FFFFDF2D76F6AFEF4F7CFFFFFFB0BA0FE04E192CC31CF1FAE739F02709506F4
+ 2CA40CE370C2C19236BA0ACAE3503C7B9363BE139E1A996512E35360C2D46089
+ F689F06000C05765B8F085134EF013C58BA1F166589F12F5E06C079485F31418
+ BD5C6D86156978430215603EEC5970285A12D68EE43216713445772E3C18FC2A
+ 61C213AA2F4C211421041EE009FC79F18B600CA318C7581FCCD52987B61822FA
+ 70B53D57EC10611434A2114FC18D8374E92B1D5A1D44A010C59069818A7D4421
+ BE20D2C23EC68E13FE0BA0FDF4B7C8440ED08B8F046024EFA32703A2111B6F5C
+ 6362D6E68A2A2A20FF76479423272F252C0D7AC70FADE002E30249074006D270
+ A6E002145D38454492F196B8CCE5FDF450A2E95CF21A6A241FAE8033CB84C531
+ 94C8AC484152E18D9DC4A9010F4803020219320A50C2930A4C613BB2E8422EDA
+ 528C8C14A31EC4E9C571DE323AEDD2DC2FA9914961C20622C54458119129CA0B
+ 9A2E46DE81E02A9D0600C005C009ED6CDA2123814DF7C11212FB341A04B45099
+ 1204F4685ADB842E23A04BF951147F17AD680A30C08116E0709D9E08E6F3C624
+ 4BA61D931C70A367052D122CB78487018383000929A186C10D940B0545D81740
+ F12B762434645FD0D9052E5002BFFDF19B154DAA52F1278102BE0CA4B478E8C1
+ 8E9A2276C4F3850FFF32947CE8F9207340486369906AC220B0534BD4946966F0
+ 98372591D38359931338FB55007EAA307210C58D47FB81C7943053895234A37F
+ AD0060E717D8C21256B088B5E86115AB58C31A969204581E5469215284515514
+ 6A508254D37AD94D5040B30ABD1E264A8A3449C4551E14B9D72532330EBA26EC
+ 8FA3A3C40E47C6D74CE0D46F651D90572BE2D3ABD1E10D11EBC81961B8D4E21A
+ 5717ED9A6C2DC4DA594F40C1B5466B6E25D4C04D93AE5512D5759A166E5BBEAE
+ 42A2B20A704245B0E037081064851FA508779DF6D64EF4B41CD05598C7A4558E
+ F45A02B18EC5AF7EF31BD8C6EEF7BFFC05B0609B5A15E5CE02BC0A90EE2610DC
+ B45662E2AA4E8B68FF24B2DBB4ED62F39891002FE020C1C7AB292138A1B26F29
+ DABA3BF1F256AC4D4BAB882BC158010FD6BFFD5DAC8B671CE00A3C8308EA34B0
+ 28981B0A14C3EE120C6E9A8429CCB43F5EF81D01006F44219CB012B4013C10FC
+ 2076D6EB4287518C0B1D7EDEC2AE1BBFBF4620C0FCFD328DC70CE6FFDA50C7A4
+ 40B082312141F4B557124CC62D765F67619312841C19665A447DAC8006BAB40D
+ 24365A6E1710E8D789775AE510211DFAFA89323B9ACC907E7405D0E95134EF18
+ 7DB59CB04169EA3E070780C84733B2494BE711254BC2C710682071FC708169D2
+ EEADEC2874E30E3D2D2EC054846608C59777CDEB5EFB5AB062F6B5B0833DEC5F
+ EF1AD85EFE6B5339FFF0544B7722C8579B04051498E9B92A506BA08E6E002E6C
+ 91BB6878CE4EA3C302BA512F59EB5412840EE4A1A305CF1392B5D1918EF7A3E7
+ 0D605A391B147C6E5AA6990C80BE16B4BD6D36295BE99AC24FD379DB762E487C
+ 4CADE9706F836E58B880B9DDFA202A9F70DDECE642BECB9BDB4D10BBD8200FB9
+ C8471E722BE0A1D2F77EB6FB2601DE5C5382E106679A3F25F1809F6ED1B4101E
+ 2841055E2DA6C03CDBAD5C668D26AE80DC5A5C841877C55DB2DC694F241BD950
+ 3FB6D43F1E75AA4FFDE957AFBAB2F77186947762E347AB7600A0C0300424D077
+ 93803055E9AAF348E8AEEC3AB72AD38AE85584978F93AF8079907F608EDBA5FB
+ D5A625FAD5C49BA5FF8B0C354C7126DC9A2941F2C63BFEF1C59EB474BCBEE095
+ 83E2B3158EC4B499F6664FC8BDB46B7BC885BD8AD26FE739DABF8208D18D2EF8
+ 0843C8F019019812B2ED34B15F02F2B8CF3DC9059B8297505E136057A827B450
+ 34ED4622E0BC7B18698D064AA18DFE5E4A6E079FB9383AA2530067AD17B2F6C4
+ C17DC44DCC141E8BEFD1188D895DDF210276D875FACFCFEBF5A3BFD7EC87FFFB
+ E39F7E5F9FDFFDF8973FAFADF00166AF78B2D0E6349AE03107677746E3693CB5
+ 7C21134714337AB1157DED763533050BAB670AE640623BA552D99325C17578E3
+ 60281453190800768B2709BA778228286C12A003EDF27F50C563A1F059E2176A
+ 3B77342E37651036FF4FF1804D0860414A362DB7F663D5B73B41152624767DB1
+ 040F5A655712134B4B5811E48011ADE00A8987559A1001E7978558B8855AD885
+ 5CF8855E18866038866258865F161D1C7043BF67096A160A55687C0618320587
+ 83025741A34731A767340C700A0B405E573345B145095C70357C102185426259
+ 503A0FB188D4122D43E50A69F0057BE531DC04000B2021614017855254573387
+ 99F0655E088A64687E5F288A62688A5B888A66A88A5B38691FD002CDB6860100
+ 839E407B4AA005D87454D8748382A80911C87CDE1587C6942F364261B4368846
+ 158C9570356F6010D583818A182DD2185CD532540B807C4CD3014F2617D5C305
+ 2AD0899C308A66D8FF8577308EE2788EE6E88536860767E082BFD4869EC06F03
+ 958B91C07463650981888F0A684CBB75814C033586071174E530D23738B0865A
+ 9270564DC3070ED01312875B50885220483121480E85043B6CC32810916DBC88
+ 09E9888E20F99122398ABD248B93408B9C206495A07691A09046C36591E08769
+ E53112F67946633E49288C080335A7F0101769345AC30EF6A892955006D0C690
+ 07D26A1069314CF95E830305B7731A24D67696508E5679955899955AB9955CD9
+ 95598985E508965C6905BDD775269987DAD6092EE93896405754255014917338
+ 5787EE50505FE00E62B561F1D0380040554A10800AC090730168D45474E43083
+ 74A005AEC0000108FF059CE0955B69075629995949997760999139999A099995
+ 19011B058BEE984328A909D8A4022B99790D377E9CC634137874076338FD3894
+ 0AA306ECC060E2855AAE569807F30639D2010F494D59600AC1F73A305995E528
+ 005E899CC8C999CCC999CB7907CF7995D1790715A003AF28596B088F9C505037
+ A805D0055BAE094770A66F7A139E0A707D92F8005CB096CF6362F2F000BA8930
+ 82A98DD9E7345F00119CC84A9DC09962D99CFEF99F90690556D01F67399A8173
+ 42DB552D0B3083DAD59310818DACC9057EE83E4E808790509F7EC307DDE09BB9
+ D9476F001C5C407B25B69FCA79073E009D5859A2275AA2C8B9A228CAA22F1AA3
+ 2EAAA2310AA3365AFFA37760051C956394A79D9BC09ECF8300970841B2D938A9
+ C62C94F193DAA74A0AB487DD020922AA657EC018BE89A14C1354AE00A10A8480
+ 9A9095D3799CC96995370AA3D289A2607AA6669AA6656A9564D982B268A099C0
+ A0EFF3531F562510349C09C3074F3617849206E2075B6FA8005255A1D6721735
+ 474D007011DF9006567A34595010E380A7FAD6715D3AA6386AA9987AA99A9AA9
+ 997A072BC801ED989DA8D909457A3414905D6690068C814A6910A521E30417C0
+ 187954357EA304908005E2D74A7AC605D7621A10B1795104058172378C5A9841
+ A51969D001723A7808A909CFF9AC9B9AA6D08AA6D05AA2D42AA6D86AAD388AA6
+ 9EC903964479709AFF095528535CD0A10A131CBA4119C3E904C1A123A1413D7E
+ 105FB906095A3A56EAA967C07129E20111E2734200C06A12C2100F40278D6A34
+ C0551435F206CB2A73DD8652A2029D0210B13E10B1264AB1112BB1173BB1CA69
+ B1177BB110DBA21CBBB11D2BB202A0B11F5BB221FBB1D0D97BD899723EDA0971
+ 4607EAC9056FA067CC822969E004220A001DD0737483103AA18DF9F98F5DC537
+ FFB89747C300E73554DC7717E64A3B74500273B30A93C13EC66A100C01417E00
+ 984743077CD04040132A98C0A2294BB622BBA9656BB135DAB16B6BA36A7BA3FC
+ F7AD67290B0393450BB3537404894A272DFA921138CB07E1C77C1FD66DA68320
+ 0A31B055134C1040FF9371537C13449B28853D15F72B0A271E36D9386620B506
+ 01654CB18385C99BC3D113E2E0045C7B307420AC7B4A1A037B2C9510B223FBBA
+ B01BBBAE0BBB27EBB1B27BBBB51BB19E79723C3AB7B4B00EC01229748137A621
+ 8587172CA5E128A6052C2F6216CB941E0752171E485F152965D9A31617415F39
+ 59414321854EC40E92E8B8BCE331521B1C07C128A7818F82188D7B0B89D3388D
+ 7BFA193F532369000504C834B4E50ADCD03DB9D110007316676BBB691BC003AC
+ B2024CB2076CC005ECB19ECA2E72EBBBB2D0BD5B422FBAF122A651BCD6423772
+ 512395B00DD08BB8E8B63D461129ABD02CCCE22C97321EF76257D652BC18A1BD
+ 71A54CD578780EABFFBE2B921E7231B001635A0889445278C2CE421642ACAF6C
+ 312CDEA1891FE8844E483117A1C143722692C12DF51500B70BBB4D50C5589CC5
+ 5ABCC54D60053A00AA101CC143B119FC9B472FE2BD2E4CC6383128BC4109B14A
+ 2F1DF036E64047178C1E860B1709B120B85331CAA42F433C85DACBC7731C95FB
+ 8A17EBC03609D22165801AEAA5847E4C37771C1792DC1D71724A0DC111333CC3
+ 52A3C1326221B7C113CB811A5B3CCAA45CCAA6FC99B118C6EEB50DDCA02305F2
+ 1D4BB1112EBC3308B11384821717C0157212C7E3A0339B61C14571BE466CC967
+ 1C2638031C689C2998FC7D2BA533DE9752EDB0BFFDC2AAA3953D3EBC19E98110
+ A6B41E3CC2449C8BFF2917AC2944AC0AD92C24EB31BF4071B137A0CE02B0CEEB
+ 1CB1EFDCCEEC0CCFF21CCFF6CCCE137BCFEE8CCFF24CCFF4BCCFFB4CCF77F099
+ AA8C1DCBD416DD2116C3ABAF0CCDD018C14C384105B7ECC60F0019CA91110EF4
+ 0D76714F3DE3C939A110591B62A4573A3F8C377BFC0E209871FDB83637B12162
+ 0141DE72CCF99231AAD0165CA221DA311A6F311774511728FCD3260CD4D892CD
+ A1711BCFC4CBE560CAB21BCF1DCBD4B07BCFA5ECD4B17B073A80073DD0BB058D
+ 8FC062471B042AADF0C30D3D35DCF326133D09B9BCC653DA2CE9F12940C4C2C2
+ D119EEF13360F20AEE80BD0D8D38902891BE020FD7FB709D2C163AAC37ABB581
+ 2DFC436DE21693C2FF44DE90263EDDD043FCD8083BCBD782C39DEC18536A2FF5
+ 9CD900ADD99CBDD99E9DD97DD0D99C1DDA9F5DDAA02D0015C051A19AD599F0BC
+ 1592100BCD1152F3D30ECD4CDA51D69210AB3A3D17DCE1C909D1D676752D3F5B
+ 2171921C96225C381395608DD7E865CD7B9DDC2D7D2183E241829C5AC95DD86A
+ 0D1EC23B173C4DC2541BC4E01DDE288C298FA82FD80CD7B7014DF612D0A2BDD9
+ FEDCCFED9DD9FF0CDFEE1DDFECFDD902409678C06CAC8D090F07D779042D5992
+ 31269C31E0CC3D574227949006BB222779FCC4AF8C2520C8B42D35CC72B2101D
+ 943832ED880F3D352BA4554826D39BF1D7D37D78CC5CCDA167DE045E1795D2E2
+ 1AE3D3418DB0421CFFE37FCCDC4AD7C255322C808DD9A6DDE3ED7D03EE0CE4ED
+ 2CE4004DE4F56CE49E4DE448AED942DEC5558D72FD6D5A057110C501D20C32E1
+ 7504E3350ED13A81DBEC9023EC51203CD1195F003A1E74412C65C7C46D210B22
+ C50EDB0EC82C35189CD720EE0E5E35E58DF14CE1B1CCC6DCACBDE8C3E26CE090
+ 3DE8272CE3913D35263E8DFA22AB60F1DBEB6DDF90EEE3921EE9948EDF9FBADA
+ 518E2F0601B47232A553A8D73DA7317F7CE06BBD13035B0AA8501BC601D2ACE0
+ 40117EE6A917956C01D74482262F92C45980013A2004444047C9CC117ACDC715
+ 11DDAF5EDE265EC36DE0049A0500508005A6B5B4D602D6613DEDD41ECEB1F788
+ 8ABEE89CAE13979DFFD4401EE4DF1EEEE22EEE430EEEE37EEEE87EEEE55EEEE9
+ DEEE40FE025E0CC6999E2B07B141D443DD13B90DC1ACE587BE25B7ADE010322F
+ B7D1E9D2DB730D5EE625BE8421F8C8B42EDDC5120EAFE0042CD0041F7043F952
+ D229FC811479319BCE1ED3DDB44D8BDC25000000A00200600679F0072590070E
+ 10EBD528EDD51EF388C311E59DC9144EC654D0E8EA5D0E459EE4E0BEEE3F7F03
+ 4DF0EDEC4EEE3E1FEE40CFE4EA4EF49BDD048581D5104C105552E5178D67EF35
+ D3A21EE3445CEA125D2343251C8DD1230C91C2F5C5366CED41497831220CC9FC
+ CBED7B6E6B286002567DE716E1BD74AED7A9D7CA88FD16E131BD4C6B8D5CD000
+ 4A60004A10020C10FF026AC00066300040F0EC1073E37F1FF28F08F2D3FBBE8B
+ 1831DDB729DB0ED8CCE1EE9EFFF9A01FFAA2DFEE2FF0F4AC6D0A34F3D1171D26
+ 0A8FCC3FC4EFCF122C3DF3D2151EF60FFF1374AD3DE851D42F5D281FC4BD4C98
+ 2530F2260F44BF32E00226100237F4DCE7F57D751EEBDB43D3BA41DD32DC1101
+ 9007245F029100071DF097FDA65E294D9188B6C4ECA6F0E50FE7173FDB54AEF3
+ E1C0F340AFE442BFF4403EF4F05FF4E3FEFEE96EFFE6CEF4F70F083782023702
+ 7729783D5C018C8D8E8F909192939495969798975C6D0F0D54140D1D0E6D690B
+ 5C0BA8A8A70B69170E65580F0F65B4650EB7AF587E549F7E1DBA9F1414540D7E
+ 58A3A55CCAA6CC69FF0E580DC2C565A45C5B2D5B175D426749015C497F421C42
+ 2D441765BE586D5B60E324161B78175C69DB1C781C1C678B6D5D2DFC025C6B91
+ 6415AB3614D494B8320796037A581222A1B0255599062154007022A4CC852C03
+ 00986120A4439A301D9571F1D3A04D80050E1A60B910008B90120C182001A3F2
+ 4287966DDE5068636A53423542885E68738B163061C3FC3CB8B020C08D3E82AE
+ 66DDAA212B56415F6F74E5AA5550D7B35BBD661D5B562BDAB46EDBA20D8B5543
+ 93173A38F4C8C4B7AFDFBF802F39DB15F5015166A9121F7420AB712D5A4DA17D
+ E2D5C0D39761C53AD83AFCEDDB2A65ADCA740816EA6100286248C8A83126C599
+ 001756BB60D37A5EFF1AA6DA640C78C1BB8885103D16FCA9C1C285050B2FC4B4
+ E092A586151D491690C0BBC5A0032766546864E08A5416040000A83003A58C32
+ 064AC48F0700C5497AF1060C20A0029E4199000D949829B18981991A145C0045
+ 78DA01800005A67CA184124E302052092F95014576E13951C66DAFD0F2C02E97
+ 7D418C61558105D788249668E28964A1A86289117CC0011181C528E38C343292
+ 4627D26071612A06A9824A68B0C852C62CB61409CB2E930D230C15BED8724129
+ CC9C62D02A4B6D48DA03697051036D2CE4604113599CC60672237439860E8751
+ 50837153BC30660E785484040B6E5821C60839B021C61969D490039873BA31C1
+ 32A638A8C2826698FFF1E4022550A85F7808146A8678E101A005769402608012
+ 73287128050138119E165C94E1A9167F7430A9125AE8A7C2005804A0C6A4145A
+ BAD2A400D4909E0A2400E14C864F2D29155156D515175A73891597B1C622ABAC
+ B35D35AB2CB3D33E5B6DB4D662EB6C1F0258F1811035862BEEB88F28D34644BC
+ F8410D628AA59206860F60110B918F31064D34147418D53154152565BB3FB2F2
+ 8C1F5075D006174A5890030B62842046173218801C122D84C082052C70700A09
+ 5E8AC1011250F816423642848044165B34300272430480C4CA620C70C0C3CB94
+ 8A804679F85142090EDCE8A9194E44A3051D1BA581C51B5068C700105279E029
+ 000C64D1401A499BFF91C7025A88A74403658807C5026538A10615B624ADC217
+ 5CE441E04839A5011E0031EC72B3A50BB4518B951D12B36E007D34116D136669
+ C5ACDF8257DB37B4D66245ADE2842B5EB85D8163BBB8E1C7021E410A2F92ABF9
+ E681D5E300C11418F310C03CFEE84ABC42D26BCB2B1D20099534A2F4AB12BBEE
+ B2623B533F49E3C0027E5A40B310499050C414217406850507E0C1C51F74B221
+ 042A4E208FC116ADBC9B06120C5CCC82108B38D125C6CA1B24A078314CBD541A
+ 258CAA121FD9D5E08032256804844A6D68315E1E9D79105E0917E00A800C0D10
+ 8F1A1641403E406100F24B1B85F8730179656700256800D23462864D008B30C2
+ 02915534D007C49DFFA583620121B234F0C11286D0841C3C0B094FB8420F9EF0
+ 85C8EA600B618895E770837338CC61256E83232651832A3D6AD7BB9812AF790D
+ A95EF1F284302E839907ECEE3342B45D29A6E88A7450E10B0D78C002CC700079
+ 1030004A38001B3850152EC8A0080720411A64609C3DA12204681C992B644002
+ 33B0E08E46D89E32B6508303CCEC0FDFB0DD02DE800003D061241E4983FD54C0
+ 809EBCA703E7D18E1A8A8285A7C9A02706B0140554A0854921A00487A44200D2
+ E0815689443D7C485B7894F0BE6FBC413B4A789B7634B2802A0E8943F9FA10B1
+ 5CC8CB6CF9B297BC14E12F8589C26122AB094D48C107CCA1C3663AB31EA28906
+ 158EF12ED229E636FF439297638894A1D6F1E275D3A08A67A23845EBBDEB02A7
+ F3C434FB64842670C0335A3AC01834B688881D4007B129C20680A38C101C8006
+ 1F7888F7BA388210F4D179A668430870708011706F15505A807F3402052C250D
+ 6A52EA93461AA00C27686492A6A8A40A0CC09FA2D88F3C2AC88383CC603F2D74
+ 21006AD308831840B4F9E5213B0C789F29628A0004D02A514AB0A05330581871
+ 925086293C2A0997CA54A53AB5A948452A53A3BA54AA3ED5AA506DEA559B7A83
+ 26E8000FCB71A65839B7898BF4622A11B5262BE0A5CD6D422689F862E2340E46
+ A8C494D39CE644A76888611225D0600C485049006A400338C1C88C68240117E0
+ 788010D0840B4E30FF42636F34023186A01550C0011BB2F02E24B8E09F39800E
+ 68DC454A04108D0154D3CED794612A8D6021922A504396B8205200F0E7140130
+ 547628F086EC98810E390DC0CD54E084AA785405A9541B7B76F7AE2F6807010D
+ C8D02B7667370DE1D2435CDBE52FB7BB54EE7AD783C42466B6C20BAD1996D72E
+ 56E0011E6030D6F68EAB6ED0888A47AE694DB6B63575AF7880375F275F62D955
+ 8A787D92805B3130995CA0064678011EE0490223E4400CCA18EC0170A0BC33CE
+ 8C08D6101E0D30C01C0334947A5918010D9C7701215476043528C20BDE998A0B
+ 78A004EF72C0CD06E0002AAC92AEE9E3245D3D0A80492A030B35D08E1358CB05
+ 2A4C6AA47E58C0AEFF5400A107FCEC3E7E80424D619A9DF2D472010D30C07806
+ 680A3EA8010875BB60300AB34BAD6A1504664E339AD34CC235B3190D4B85339B
+ 35E06635CF59AB4D88000632E7DE3ECB0826A3E18566A03445415ED3BEA8738C
+ 867E120C26FA9028842A7480058CCE4A33451726318311D81058CFCC09070F0E
+ C1088A8083EDB9CCC30FAEC108468D0335368005A026C10894308204E480B329
+ 3E0007B2E0021C8CE00C824C9A12A030A0433D44CAE38142D688960555D0940E
+ B2458503CCC6D21A20E0424AA0C3781EC00564AB409417F0141D3AD9533AD021
+ 0F5C5083786A7021743AC07E87D40214C0A304D456F79657CC6516CBCC66A9B6
+ F9CE000FB8C09F0AFF70AC32B509DEE2B39F17DE179810A634590A58A18568B7
+ 22C6625E421AD27E5FF7E8324234C0D5ABB4C897E2805FB46104090E9F4AA280
+ 721C14C108BEC64341B6A0851C140007051003030C80031D0C210DC233821168
+ 400206148106BBE6F90B9E44D8E4598F0B0ED2B6B6CDE001AA34A0D8DA396423
+ 53C16390B2C2C800D0F6A1B86D362838200025D0B212EE8376F1685B0B397602
+ 955500852EDC86146058F62CC70DE3A61C69CC4C9A4A559A8A6637175E037086
+ F3E1154F783A3BFEDF875F3CE2279F78CA3795F168AE7CE41BBFF9C8237CCF30
+ 62B8E82F0136827DA8671297E2A189A8CD8B671C168C5EA2B0D615E9B59E33E4
+ 236FC3524EA79910FF904007CF93D2229020EB55EB0009F0FC0309EE64853885
+ 400723E30218963F02E0B7E0F754203EF45B9185DF3BF64969F003035AC5AA3C
+ 2C8528D7D1020258C53F5650E50BC46E40C0D2366FF6670969506836171EC000
+ 28C8761161A37E5A40056D307E6F405BC4A6066DC0140F910601B820081035A3
+ 9021F89637D955152020439AD7417D90798E77789087781D48677D907832E481
+ 2838796EA6799477822388822F18673128791E8806DDB24CDE307A3A28090E28
+ 4DC31271AA9756EEC27AAD976843A25F44357BC41269D6436922A77B50884E9C
+ 80059AB180BA374511F64575257CF0343B2A4140B3B35655320B56380ABA077E
+ ADE00AF2B22EFE02FF1A69283BA85069C9F0853CD2235EF8459050338BB13ABA
+ E723A770777E172C4585812050887456888898888A98888758788BD8888B1889
+ 88088993288996688897A88874D60462E02239B883A06823174166B523698636
+ 44F6E27A18270B54A844F9A284458118E7347252B87B56B81447E20761D00164
+ B8286D288B86463A42F823E7C414B0E707BEC08BD4B0804ED13A2C213AE02786
+ 6978864DB87BD1584E689886E6244859D808A0717E7E570BB7B080E04881D695
+ 6FD8A5419558881D8889EE9881EBE888F0F88EED288F8D788F88588FF5C888F1
+ D888F5E88FF1588F08F72D8B108AA0E8809F100AD40084A61851535471F2A28A
+ A9B32149D85F1E27FF8B6F688BB66885CC281ACF680C3F545F00D390DB2884C5
+ C8182C110A4EB480B7000CBC707AD5737B23877B338986037693319918DDF80D
+ 04365DB8E0934CC18013385D43057852214E2060028AA89499D89491C8944E99
+ 8850A99454199549699553D907CD471006B98337120DA5711841A87AC44884A8
+ E37AACC868FA62917A683A96B6911CC99219320B45840C71584D519297F5E087
+ 519497A46537BFF043D57369F8123A89647B00E69025B98DC4387188B956AAF0
+ 4571E80AB75069B8B07B97E96E148837FAB63726800688089A49299A50A988A4
+ 9988A7199A85F899AB299AA6A99A57B99AA8299BB00902A95988AE799BB68988
+ 5680082DD0953AD8FF837CB59010359601437216779689468515D971E3F471B5
+ 088571C9916678017E400641B9006B4005CC657B19958635730104B80CBEB800
+ 724001E6B10A6D2007A4707E651006900613D1953B4CD2334BF1230FF1190E48
+ 06C9609E5F200789E100FCB99717100716C42397A10A72F000612007DF784EF2
+ B906D6488EA4D00661D000945994501178C4D204B25995207A95213AA2225AA2
+ 247AA2269AA228BAA22A9AA220C089605590C0E9675F090AA220960D798A8826
+ 918D8184DF944190F62FEE02977139810C480A6AC0001E503D0D8013251006A8
+ 100679207FA6400179A0066A400F01D0012510055A1400543036CA100625E004
+ 5140065581054E0AFFA527C10041A30C1DC00025B0066645010653066A806E5C
+ 10A70CE0076B50A572FA3E5C100651E0044E30A05810050C90070E5A645AB004
+ 6EBA06A07129CB50066E1A06637A0568BA00841A0561D00A0B70054E4001D5D4
+ 204C804DE768811AA4071E2AA2684095AFDAA22C0AA2B1FA99B0BAA2B55AABAE
+ 3AA2B9CAABBE5AA21AF01CFB20A333DA5E08490C3AB228396A8AB8989CAAF818
+ B05719407A91422A85455A8641D9800CF04915DA7FFD1705CAE0010CC06590D5
+ 7F5020A95C100507D2A86AA00503945B50A0A84E703014E0534A7005EF7205AC
+ B204CAF005080005F01968334105C4D6AF89E204509AAEC30669E3D7AE25E0A0
+ F53A6C64A00CB3E2FF1F5BA30C14C02A82AA485A405779100568D30651E0AEFD
+ B20050A004E0CA0A08702961A6A119244EB2D604AF6A02349B94347BB3389BB3
+ 3A8BB3364B95350BA23B9BB32A1AB4445BB4466B02C19A177B51ACEE55A36149
+ 6863A998662991AB830B70450CEA12A47AE97EE098ADD93A8EA4E000FD47054B
+ 71292A0505CA7005E39A0A38A16CE6711AA4D2194C000510D26D50D0006E7A76
+ 14507F57C00A6F506F90540F6FA005E627B06D70758DC4055730215A80AE2550
+ 6F74D57F65A00551601E14D02A0F5B0F79C02AC34601A7E01E0890B201A0055B
+ 17AAA30A13C44605ABB006989B0A61A07E757337D7A537C412021360051130B3
+ A379ABAFDAABBBFBFFBBB6BABBBD7BABBB4BB3BD3ABCC03BBCBE6BABC81BBCCE
+ ABABCCAB94686005182004A1C7B462259C0A490A513B96C8199146C8871CA971
+ 1DC08BA3F32F423A44D73A94B8A07BE2C7005F701B6A0B05F0AB0C54E0A63B42
+ 01E31705B3A5B64C80A65CF0050C7005E1AAA85180205CB0040DA204018210ED
+ D101A820078B7B057B45050643A843B6005F5002C4F6A7E91605AABB5339C100
+ 080CA93931B1A14AB78ACAAFE51AAF5C3764A590101C95067B1B0558C00A8B1B
+ AF3D9306F70B0518E2B283E832CF27064D80B35370B3474CB3496C022880C446
+ BBC44DACC43BBBC44B1CB4516C0250ECC4347BC554ACC539BBC46340BD42A0A5
+ D8DB4C4E5B85509BFFA365998AE1FB93454A817D08453EE27E72F993760CB624
+ C72F593825DA485A91694D61F8C7E8A02357584B95060B4AA42EFD5268B5D798
+ 7FAC9353428791599C6E398DE844C7BED80AE4888AB28B8E3EA4A540800421E0
+ 307740675B6CB4577CB4557CB36E70B3A91CB43DEBCA3BFBCAA72CC5B5CCC4B3
+ 6CBC2FA04C5C59C63A849036BA90DDCBAC10D9569061A4B77886D6D89FE88B18
+ EEE6B5776CC7E9500C8631876168AD1C599EA51884781966AD23131EA1992ED9
+ 443B1C724D4893E80472798557B7B7CE79558E46DABE2C09CD44F9771B6A0CA4
+ 10006FC0074820030E630520E006ADDCC4048DCB597CCA059DD0B8ACD047DCC4
+ 078DC55EACD052ACFFD014BDD0169DC505FD99ADF12DD7EBCB9BD383F2857AC3
+ 0C6066C94DED5B9DD4D8CE7CD9CC8018CD4D618EF4798160B80CD328949B9C98
+ 20178DA783245CF31084297BA1730CCA3CD41A19854E488B22979172B8D4D368
+ 8E465224F50CD54FCD991EC2A169C0075FF00640E0CF2B90BB6850D1130DD108
+ 6DD115EDD0106DD6192DD6674DD64E5CD66B5DD10D7DD137EB5531EAD19C03D2
+ 568D98CBAAC9F69271779CCDD4188DECD2CCF500CF2E3D5D499490A290068C10
+ C862787E56584DECECCEEE87920969182C195F1B2A130FF18445AD91481DDAA2
+ 5D93E508AD4479DA525DCF82380C1CEA017CA0D56FE0CF448C06538002B67DDB
+ B75DDBB6ADDBB8DDFFDBBEEDDBBCCDDBB81DDCBF3DDCC59DDBC7BDDBBFCDDB26
+ 801778D00D76AD39A547CE693CCC3F7C44E258B5F24C8E824D3A3D4272B890DA
+ 4F8DC89371948B503A733C44D688D3EF6C3DB5F40CEA94453E5D72719523A3F0
+ 965198DFA3BDDFFBDDD4D0FADF000EE054FD8A4C82051E70E058FD05B26D0563
+ C0C4CAEDDB0E4ED0B61DE1CC7DDB11BED0B87DE116BEE10F2EE11E9EE1093DE1
+ 1CEEE11A8E062FB067D511DDE3321809C92FB627D9514B724FED93E388CCCB0C
+ 2553A297EAFBD23C8EDA1B224D9C1D515F18863209E3935D92E974565688C81C
+ C7D9B9F7D946CDDF52BED4A55D2FE28DDAAA5D91C272E057E0016FB0CF25E07B
+ 5680066E90DC668EFF026C70E66ABEE6C59DE66CBEE663F0022190082A2E2E80
+ F692C92A69461E84E04D8134BEDD29EDDD7EC9D7E20D198F112C8F86975E088C
+ 7B7DE4A5A086A627DF24973BAF18D4F71D9D503EE59A7E93326EE586FEE933DE
+ C9FAB296075EEA6FF0055FA00674C4E0650EDC232EDCC8FDE61D5EDBB51DE167
+ 0EEB6B4EDCC51DC62EA208754E23F0E509C5303A77B5E77A6ED86E6C86149ACE
+ 38AE18CD5C4B0C78E5D9FDE350312C819E56429A7AC58E577108DF4ACE8C9ABD
+ 244EEED9FA1DE59BDEDFD61A8E868EE5D26ECFFC05151E9007F17EE01D82044E
+ 40020CBE011B8002FB6EDBFBFEEFB70DF0FDCEEFBF2DF0BD6DF0087FF0046FF0
+ FEBEF001EFF0093FFFF00DBF01711E02C3FAEB32B2099DD00B8739D9D69DEE2E
+ 1D9446DDCDCE5E3AD71DE0879E3B97B16F5D7B863A494EDCCC98AE10D386818B
+ 942E57428DDF997EEE53EEDF28FFF3D03AE0A37EE0F25EEA1E70055FE00132A0
+ 035630056E20F110FFF0C91DF10F0FF0B8CDF00A6FF5510FF554AFF50D8F02BC
+ AE17C48AF17DC105176025A0B0908E3ED2B338CF279DCDDD5DF2E8DB93521DE0
+ D42E0C8ADCE795B928D94E5F7A3E71E810688F868BE18E19FC42EE3BCFF3A35D
+ D3EA2EEDEC2E66EF0E15499F07451FEFAF6DA5ABFE024FFFF45BDFF908AFEFFC
+ 0EFA022FFA5B4FFAFF2EFAA87FFA9FAFFAA1CFFAA3BF019C087A641F18330F96
+ FC22D9ECDCBD12C7FFF85E7B8B71DF2ED56A374E7D37B5D08AF9E6070D58C7D9
+ DCEC2319F3AA800E84519F5048DF402D3A445DEED6A8F8A28D7BC6E8E9A10EEA
+ 9B795D4BB2440D90F4468FE0599D07FE9C022F40DB9EBFF053D0F5F1FFFE083F
+ FF1B60FF5B8FFFF5DFF5F40F0828284D561F1C3D5C018A8B8C8D8E8F90919293
+ 94915C690E580D1454580E171769A2A3A40B69A6A8A7AAA669A0A06DB0B16D17
+ 6DA20BB7B8B9B75C0BBC696D0E65C2C3C20F65C60F0F1D7E5414147E65B6A2AF
+ C00E9FA7BAB8ABAAD2BC170F7ECE541D65AF659ACEE20D9EAEAFB4EFB3B3EDF3
+ F4F5F6A1AED5C465C1FDFCFFFEFC9D63968E139566141E50F902C4431E871E3C
+ F07943514D08122FFF9A4C41B1A1239B8E1B3E821C49D26349922243824C79B2
+ A5CA922C57BA9C39460C063C3D2AE9DCC9B367A505DFC25181768D15A951A992
+ 6E63858F962C50B6B2E9E2650AD8B064C8921D7B80A5438385141A94E392886C
+ 2BABD6B0F5CAB674D5AD0B653685EDE0205E19AFCEBE385B57371FBCBFF2EE09
+ 1EDC8A56B07D8813230607562F95065F29B429138E0FC4881EAEF06168518718
+ 1F1C51820CED92F4CCD3A853AB563DA6909024897CCA9E4DFBD1250704FD786A
+ 63F428D2B6A872716B272FAAD4A9550F233BB6156B5782CFA2C50E60F617AC50
+ BB8E034F43F69BDC06E4CCE14DF7981D71C0EF06ABB757D8F0E1610101CA1788
+ 05FA5EDD1D3A04C0FF54F932C42B6F008144082188F1C246AB25E892050A36E8
+ E048638C80010767D466E1853D91D506160691534B6FBE6DA7542AA3B8D28A71
+ C7AD65CA05D614C31C56CE79D5805E0D38C0DD7464DDE2162F54B135622F707D
+ 47D72CC18CA7D733BBF9150F7AEB350955535611F3DE94F055590C337A7D511E
+ 3F0E50C72233963D8499666F7880840C055A81C6141B98F6A0836ECE14E79B34
+ 15C2011118E6A96724693CB0C9630FD818A26F238AB84D2929E6429561CDC1C8
+ 1557CF2104CD05BD94451D5998E6C8A3764A75E7E75E7439A58C5CEA98A7247A
+ 8139A95E61B0B428E57CB0D2671F92B32CA0082F0E7440051F793C2466667C00
+ 01049A628C30069BFF1B30A86CB2CC2ECB6047CE829443B320456B2DB5D14E7B
+ EDB6D8763B2DB41D4538219E7B96BB671A7189132A88841AFA23896E254A9528
+ 56399A0C168FE61759580FF0662B8ED45D8A4B8F522D05E4A7737DC22238721D
+ C957604B469C9EAA4DB2FA9E6218EFC3589680DAB8404E8A0085C5AEBC6216D1
+ 665F7C71260956348142B4232D3BD3B3CCC65CF38227D13C73B725E95C6D4963
+ BC6008B9E6165DDB02B91E345439A10C1A62A1501B9C6876405985EFBD8FE28B
+ 457DD0AD536BA50167AAE95A040B179C3708F365587DFB72A2F6791253AC6A7B
+ FABC1ADFDDFF0C849033BA7DB2400B442FD04607147C51B2C9115194870C24E8
+ 318605DB428EADE4FF902B4B79B3975BCE6DE5C9663EB9E69F770BFAB353BC80
+ C16BD3196D6EEA95701154336FB3EB74D4504F5DF02FC1640DE9D65BEBFB9D79
+ 51917569A664ABE8E3C06D28B49727D68CDAF65049BA2371AA720B76E22B17E7
+ AD3D95C2BCB771E1E55D43000C492C22B8575FF887D91B5F64B1720A2F24EB46
+ E4A3636EADE7F487BEB9E8FCEF6F414D7810421A54A73AD64DE23678014F196A
+ C10DA795C25DC0B19D8A5A110CADED8E775BF343D776F3941B896D6C9B9297E0
+ D0013D7E380F324A838CA9A4F797EA552C1FAEAA12DEF0A6B782F48D373CF840
+ 06C817B22095C95726A3C81B9030A0158CA1739AAB9C129788C42572EE894E54
+ 6213A328C5282271FF8A94732216FF27A1431890801642C54E7891BCAF40CF6F
+ 0E7C1A046B37357A39006B18C4E032BE42A340D5CD6FC313DBC02488B4917142
+ 37C9F04A3394F698F0410C552E7C21A332C6C8AB60097C6A4B430A7298013070
+ 873AE85A82E17E859989E8A5882F38E215A138BA2CD6AF94A81CA529F5673FFD
+ AD92731B00E021C088A1EE4CA62FD83920D20877100F35308DBFA15D042548C1
+ 73C4B1035DE9CA1C25D52F6AF445781F04A1F114A5A3C1C10E3F82244F2155B8
+ 40B8B53091848161F666182B61B0CD86BB59800444C0031E10A005B1B90465BE
+ D02BC449643340B008098C45C57EFAB38AFF0CA840FDB9452A22B126A7830D2D
+ 2D8409AEE5C71894FF3AE0E0D41128603A50986C4C142D2E984C6422538307D1
+ 8B1F3CA6235B582A9A9B0AE1713231C86530A3318513C7633C348FB881D37A50
+ 1AA795B6B7538635434B9194400A24E0051E70A005705804171C1086F4D93322
+ 00E2431688A591825A919403CDAA56B1BA5525025008205BA84F1048AA3F8E45
+ 124B25DC7D1678228B3E10A3C3D40E8B8CD9BB8E2A1332E9E8401B5277D2B045
+ B378659B9735C302D28218D66D1DB0A33CA677D3703A2586DD2B270D9F43AA1B
+ 2E400412C86C0ABC30B4B22C200E61A000AFEAC9493EF06140696283050EB0DA
+ CAB11672AFB5400E2A375BD8BAF6B6B6CD6D6B751BDBDEE276B7B2FDAD6F797B
+ DB58DAE44E62E509FF1973D5B0980EC58EA7688429DEB80987ED461A6E95065C
+ 9362BB8529D3A3F909AF1F22A3A50E5C00127D45E91EA74295A4B9EDA732551A
+ 79C0638CBA2CA9B14EB25823F7EB5348B2230DEB14AA505340000EC00064AE23
+ 83682302C4CC00284032609C158ED8D50A5BF8C215AE8921C29ADC49088E6187
+ 55876ECA61AB5B4D46577BFB633365E7D6ED4A8D2D73056F78673C5E8474A20D
+ 96085B1E8997D2E24D575721868C06C7BBAF9962811FD7C1AF22DDB30F724E76
+ 3C7C63873A334B65A17E20801552C405C8D08C1FDA937D4394F081663BDCE012
+ 97CCAD65AD9A83CB5A34A31972B5056E9BE59C6636D7D9B66F6E6D9EDB1CB410
+ CCB2C396E0421961FF9AA5983AC60F0FA014DAC26168F08DA31CBFCCAE8BDF65
+ 36607065C6F9F1C332B2B997443322BD3A566F8F73D48ABBC0D76188BE57A444
+ 8C682E5D877A4A36514E9BBC53EE69EF7B403D7228048CD9A18A60921F684158
+ E1A2AB303DD503610E01FC1E87E128C6B9D9027D76856BCB06A109F08B1D2623
+ 65521C62F2F4CD1AF5E1B6B72B9ADD764D3A5EC259188D37ADE9C29A7580B7D2
+ 71BC4FFA571E11EF178C21CF5C906C8D0AD638859A0E947D637D0F56D54D86E5
+ 8C6CBFF39D0E05D6A2CA1097400E390006720125B40D69304428B2328C4C61CD
+ 20AF73C8472EF29293FCE4264F39CA57BEDA298CC0CF1C06B489FD849042DBBC
+ D18F810C0A1B5DE8FF12CEA2DC4739F7BBDCF81C768761C835768C274A3CEF80
+ 35BD2C7FDD05A94F4CAA83348028F3685E18766E90301C79E004AF476120BB5F
+ C4E4EE9187B62395310B71767E80004280436CD240861995C99EA66508129CE0
+ 71E2FA9DCE7F2FF39C052FDCDBBA19F0881F6EE97440A1F2C99C8C34EFB6E427
+ 7FD8C7689A1F4D03BA76D7F8E2AA0D84DD2ED5205ECD1AD1A7DBC6AFEA5D5191
+ F675F5AD617E3814880234D866E3A124D6D5B056B2C1C94E4E85E72DDC05294F
+ A0221EF1491698870158C03C0F87993C0048EF1719010B6CCBF2EAABFCFAD6CF
+ 3EF6EB3CAD17E8000F5B707C725D778E7DDDFC483C4FFFF9E56B75296B3EE89C
+ E72E2B2AC86EA413FFF9A7E0F9443C43DD087AA79E16C75063A0C2257DD11E17
+ E00466A0056F200CCB701022E67AB81476D7B348B5568191750C9A005396874C
+ 02A65954365499555405D6038EA77C7EC0109C743213212C6832026CB066D4B7
+ 7D21475C2C1783DA378332785B07506DDF7706E2B75026E88092F71894D76D39
+ D73688F673EFF756F157521BC535F6277A42D800FDD20B4AC57F9F867A1F5435
+ 5CD136F97748B2D0064E00013F00005A90076F744E7B7175E400764DD2067C00
+ 0566308773C8007ED00E74C37B920510CDA386F3355E7E407CC4970229F07680
+ 13324C350325F32B62720559305521104AC9027239307295B85A977800997800
+ 96A86699988969F6FF896AC68998E889A6B85AA4A889A7A88AA8688A1BE07D78
+ D0023FA83AA65006A1A57E6EA31B5D617EB8D8739AC669541006DDB4849B3769
+ 3AA26E80687FCF238C97046A96627AFE07146F1406A77675FC300DCE140B4E40
+ 0710D08D00A004255043CE7575F5E586F75006500000DCD88DDD480766500278
+ 883D65A7185C218085E636572788835888B148346DA060A3C54957E001595026
+ C4620553908337A8900CB990D5C783E0876D7B0217B3725888665FC1305E4528
+ 0E23D68583D409DDC46216257425050CCF118502B83CBCC17FA0068D7E856F28
+ E66D98072561D8065140070010034FF003104007E00862F3B50E02976406E80A
+ 6F60063C89936600FF00EA98945AF073F87070BED77BBB5856DAA442FA28886E
+ 9701B21832654001FE515A13B132D2B7019C388A68D98A95988A6779966B9996
+ 6E7996AD38977259979CF8966FD9967479976D19979C089187488BE9828BFC12
+ 51DDC15C79818BE1D322E84023BA9679EF4792D2588FC93864CF335217B07FCE
+ C892A8C78540566854A830F050936D50024C09031950074AA0023D69064E307A
+ 9C1016E0716448660F7E0000DD98800CB09B50A00566C09A3F8000D7208FD973
+ 813C750E9C7673B2995859A98F1327405EB910C686387CC009C342021EE7900D
+ B99DDAE990B1F47D5D59342CA2564698844CE7256FB44C95D77AD6100BE0305F
+ 49B284247909C818FF85B0B934BCB1999BE908B7606950E636A6429AB290074C
+ B94330000375B00274F003EEF89A3A37486C882FED992A1D809B74A0051E9032
+ BC52024EC000BE498608F0242CA25354C969EB091EE400711540652B9A592D5A
+ 65C6179848B3090399829D742617F1022FD8973C6A973DFAA33CDA8A403AA444
+ 5AA441DA966CA00332D00299692EC0777E7C03697C459FE046103DE775046815
+ 8FE436C6A084C4184C22D29F778192A3A7741EC399FAD97F82A33735171647F6
+ 6A4E21A06A00002A900176BA4319C00708009C00C000E0516490814C48561C5A
+ D08D0AA88B60A2061DAA0516EA01FA358F189892F7B886C8940CCD9995C66760
+ B7920684B349F5D4FF4952652621A003C642666C09976976AA7B89AA23A7AA3E
+ BAAAB05A979B4872DE8701E1B927E26658D0D08CF2B6A9C9934D333594F63519
+ E8306E82F2A54C3874BF7A75A2777FE44117BC9AA6FA2938B9F25206B1254A22
+ A0B040A0005007A869A7078AA031809B10600650101629667B837A015FC08D4A
+ F00558500B96768279D0A108809B4A100DA0A08753694E296958560748DD73A9
+ 985A88E3432E17B0061DF00557F0A9A0FA06A715021360206669A4167BB1189B
+ B11A6B016C6005212004E7B527507A6824D67F8E700956916989D59E758191C5
+ 6A5DC389AC605A2870010E96694689F9688689A69CA954620A659637628B15A7
+ DAFA05BFF905779AFFB4DFCAA8DE08051EA081AD27700C00012AE0044B971CBA
+ E20125C00072C8A07C409C89C13DBB48687FE87A5C42B0CD69B02D000365F18F
+ 14502696613257700529E30168B202233089AEBAB770998AA9DAB7801BAB7C2B
+ 72836B971D7B3A6720913E31799362853D2B30C9D10FFD060CB190096DE3A6D7
+ 5022323B74BF3010A2C775EA22A5D28A850183B5552794DD1331DA1A0B7EB094
+ DE9AB4778A9AA839AEDC68866A107C6C980C48690679E0071F823BC5C6A15080
+ 007440074E3076242A1FC6A491956779F8720C7501602B3ABD1240BDD4EBA2D5
+ 9BBD2BEA7614722BA055380C26B72B88A36230061A7BBEE89BBE199B031DCB78
+ 598621505A98A3CBFF3ADEF058D5D0B299C06859927FF8808D5F1A35B85395A0
+ 1BBA3B3BBFA146A5945156EBB04003170FAB1B0B546006745007765A07311003
+ B09BB4316006ED88002510536ED354F89A0762E10AD4450179B0B5C38B9B5020
+ 8F8D742FD934A9CE1B285C720AD81B712F9AC32C5A659C95013E980817100733
+ 726CF7A4324E60202C50B1EABBC44CBCC439E0B1DD8B2121F65C2BE9927DF569
+ DAF058ED298EE2F05F9ADBBFC43822B0A00C356695E1130A078C293C7B2BF439
+ 10A7FBA62CF4C0B2D000AEFBAD767AC1141CBB785A074849B5E0A84D1EB0A008
+ 900709D1B2A69605F5EA04BD09003FA005C84B6BCA8181BE1364023B70366CBD
+ DA9BC9988CC94465FF08609508333A03BDA27112C1827C2706D3D7C4AABCCA18
+ DBBE14A2B83A717E5E73493CEB8CF7661DF8FBB2CB13B3FD0B99F2B90A00E853
+ 6DCAA51E034D2855CB285B7E7BC34D11E8C0720C0B743CC1195C07169CC77A9C
+ 9A4A90944AC000E29007ACA9044EC0076211800D5026C2BBC210A0052EBC535B
+ 812F99F652F7287CA92B0D3A7CC3D96BCFF51C82EE64606D7B820CF62B032911
+ 6F6B11E5BBA3AC7CD008AD97AEFCBEB411640B2475D054CBBD5A1DEE60B929C6
+ 175F7C3DFF3B1C234A7B7FE821560875D154CB9E09A8B79764A3F9CCB0D0BA2A
+ F0BAD40CAE151C03792CBB788A04ABD99A4E205AB8E99A6AF00657F7531EA006
+ 2AAC05C4FB030CF0FFC8AFD2CEBC9369664C5F936B1C9A1CD59B2CD5D50B6CB1
+ F82F6DD0540E918279B01954F006FA642C9C88030740D6643DD6659DD666ADD6
+ 67B9D667CDD66F1DD76D3DD768BDD6685DD770CDD6786DD72F40024705CB9320
+ CBFFB50B12AD9FF342419A708F91D4148CDD562DB614FB7A76A7DB861FA28523
+ 7DC5D4E17978E1180AB44060A8D2B110CDD65C075AF0D2775ACDD61CBB7540BC
+ B9C90008A0002A00054ED0D314E1102530D4BE59BC5F4B811A73411F05CFCE55
+ C90C940B537DBD545DDC84F87607D61DFE7C6C01DD10C4320695F8D66D29D777
+ DD97D4BDCAD9CDA3D69DD6DCDDA34FECBE801D0941E6213F2775858DA6543119
+ B382D1D3A0D160ACFF794C31A28C2917677C0A2875D92C39999CD67A33990FA0
+ DD0692010B11AC02189CB4167CE0A77DC14A8BA71970AF64C88EDBEC0425A006
+ 161E051DEAA15AA004F8DA1464A7D4C8D43B32127C238664D8A01615B0C9297E
+ DC2CBEA285680859B6006B4005FF6CA36F9005765B203A9A036E9DD73DFEE36C
+ 4D033E3EE4405EE4447EE4424ED6429E03DEC7015B401BB2DC86B8143C06EC8C
+ 984073FB1B2AF0BDE59AE74C928B98515AC0F92D36FB6D92C0FD5CD650530FFC
+ 057238E000E09AB040BC329DC11980C7B06BE77A4C00ACCD8E748000B2ED0480
+ AEC8BD49D41C5CAE58402FB7E422AA16E290D280603153F3AC16D850DC2D5EE9
+ 12A7433E481D6D00FF069E8A386412206A20618F53DDE7BBDDDE7D0042CE89A9
+ 9ED0AA4ED7409A034DA00348004FB251DEB89764E85DE57E551508C3099E90D1
+ BDECD86EE5E50468D17FA47F639EDF07CC22C0C791D193D2A4890525C0E13DF9
+ 06B0C08D3EE904AB79E0041003488BE0738EE07A1C03EBD8934FC09A7D0E05BB
+ C9B5838E0048C99365E8A78B04237194356A68795D3ADCD950BD2B9EE2D3DBEF
+ 00FFEF02CFEFFFAE0799CAB6FBC16577074462122C614602A85CB1463EF1474E
+ F1165FF1180FE407F00262800743308B9510E5C53EB9D851296AEC7FC70C751B
+ E2808BDD1E2E6F22C044EC52026E91F168CD98EC63FE16969BB33794ADA4F900
+ 4E809B0C5ABC5F70FFED2AB08E0BAAE0099EDAA9C9E0D34CAE7E4C00A9D98E66
+ E0E75A40D4EE4EAE3FC093DE88007C70155A83418E82055B6775B75714C741E9
+ 6A5FE92B6A05C98D5C0100175F1DBE63724F61360118B1013D9EE418BFD7A88E
+ E479CDF768CDF76BCDF7849FF17FCFE41DDF028B7B580AC4B22C0B0B549EC663
+ 1E3648032976148F5BEECBBEE1E5BCD72291777536B26338BFEB016C1FECF9D9
+ 35E9005120F4E66A9A749005B0F0E679908EEDF804A38DDA49EB01329DDA7580
+ ED5E0F0777BA025CCF9474A88EDDA80276E00306C0F53DA9046A700E1CF528C8
+ C035CCAA5828A20B01EFEFDCDFFD044FF0DD1FFE2B6E8855C00549305199C1F0
+ 502511388A113B7AFFF1F08FF8F13FFF184F035F05F29220F293BBFFB2000869
+ 0B5C5C01858488898A890B0B178F176D9090691795979699699B9C9C6D6D650E
+ 0F65A3A365A70EA9587E5414541D65698BB38B865C0B69A01D7E14145FAE1D0F
+ 0E928F929FC79F0E516610744A4E0CD166745F9F74667E69D1003F103F003175
+ 19E331E51904E31975E6E3752A100017B730E31F7AEF10F9FA10472E41412282
+ D87181AF991935581E245CF8A094C25D7E3A6029236953A38B18175490B0B123
+ C78F1E43821C29D2638A0F1F849C09106041075F7CF27898E9E14A4D3E319184
+ 2031E2458E0338800A0D4A74A8D1A2488F2A0D4A63A9D3A4509F1A3DF0620406
+ 2149586ADDCA3540FFAFAFBD1AC04AD56698D9B264DB6CBA45AB2D2243706F6D
+ D2441793DD4E73CB92C292B0A129B2A258B9F2E34096DB59B62A3928E3A7C157
+ 2A6285118B840C190525747E9861E0044A342700E8BCF904000083694A2894C0
+ DC0D000274EDC2894B473BC33B0019E020A2B7C38B0F032A54FC08EEC34EC07F
+ FF4EEC79223C1F02857EFD9EDA2B7122C50B19B337AAC0BDBBF7EFE0C38BF72E
+ 41C2490E2DB2A629B3E48B0799F0697A78E37EA798172E80E2D84F743F0DFEFA
+ E1F0DF7E011608A080FD11F55F800326682081074228A18300D290C30B5715D2
+ D586BF74E88B58A1A422E288227EF2884587D87218215A1D820B2E954C722225
+ 27E25549590DF1D5FFD774213AB04A2B54F8110B2183ACE86225A434D6CB2F54
+ 84211924C654D6461EDC00E004057920A085675084568D0374D0E14D664A8411
+ 06135A0090CF0F4AC490CE3AB2D5E60E042AECB10301BA7101070C3BF0208204
+ 76048ADC3F52FC23820827246A80737D45C7A3427C9D529120DA35724B781C71
+ 9769479A76B7E9A79876C7C3070408D1C3200EF811937CF2BDD18B0725384182
+ 186C18285554B8DEAA6BAEBCDE6A81551C64B52157607D05226065257BD6596A
+ 0962A49183E042A35D757512C9623936440A2A663D205890853DAB482E6560D1
+ 8063BD4016CC3091B42B651B0DA840070241FA9187165B7A165A167E20D01A03
+ 5F7053661843CCB0FF8C983F1810CE38049433DB383B88A942A227EC90010C88
+ 407C82085E1C2AC21E1C234A71A27A38A76D293C92A2502893BEA81D5BE3C52C
+ F3CC155891020F7870704612EB5181930740B0CA6A1E32CCCA460EFC2D886083
+ 4C27EDF48406FED7B47F4F2348B5D254676DF5D6521375E155C20ECB92871D1E
+ 0BD8D9668D6822A56C89DBD65C9CD4556D5EA240BAE374227A0BA49086157958
+ 23E49A4B8587413E590C65529AF10302E7FA61AF96F9AAA9C4BF11A9CA8D164B
+ 643EC412512020263C4FD4814E1DA4ABA3CE3B759EE045A277E6C9056F23C74E
+ 71403E74F3DCB6294F678A249562C496467AC81C3C77C37F573CCD9ADE4C0007
+ 30A8F780CFF1B18AFFD31748147D1F1B07EEAA7DAF5029BDFDF738FC8A87101A
+ 8A5D6C58632DABACB2C8AECDF6216E2312ED8B73CD486DDC7AE97832B7382A19
+ 6419F230922170010AC1152B22EC3ADCBBDAF0063A00800FE76A801FD48000C8
+ 75291F008002053AB00BC794204C6A58021534370334A9C91B4F70136D085007
+ 89C9AE6217DB4D0676B083179E003976704EEE74A72D7659A477BFD34804BA33
+ 44EE14B102474C2211C3630724C6CC3C1FC0430B88D0120734E00D79C8A2D070
+ F20620A861272FD84083F843C6329AF18C684CA31AD7C84636B2E10521E0802C
+ C446B60FA58F4478CC23591E61A9F8CD225A989891202DA198BAE9CF14DC0ACC
+ DE00182DF9FDD111FFBA68C0E07C81BE50B86B8165D10204A00019C834400D4A
+ A820BE4E680688B4E20B6FF08026CD308325F46206B05C02134EF339703C2C06
+ 12DB83EA36363B1AC2A0487CAA21C54026856206C107F9D0C20E55360A1F02AE
+ 52B7B8C8059047CD6A22D13CA3CAC019B840843684810257E0C34C6442139C50
+ 200BD5E3C9180214210A41AD9D0F4A1019D9D9CE79D6139EF8DC0F1B80B5CD61
+ 9D8F02665B9FFA060A981AF5D18F8A005CDCEE47B7BDECE82F66618C63FE270F
+ BFF98D11B9F05107A8D08A7449100BA98012E2A48485D0E481A392FCA4124239
+ CA7C286117BD788338F35002663020731C9DC1176009CBCE7D4E054A20C00E5A
+ 48271B52CC6230B0FF05EC0E55A84209C4398B41C52950C6AEDE5DE477B968C3
+ 1287C8552776F5AB4E34E256C34A56B062536749E0C205BEF91E72B2EA0DA9AC
+ 5E08C4C08236DAF5AE78CD2B5EF789812CA4615875FC82D9D24658B414B644C3
+ 20C641111A44854E8B90D772E8DD1693B70E4812A00FC04EDBDAA6A20594E547
+ 94FC02642692C04B2E900A0E74154AA900CA95569094309D891AD450821230E0
+ 1B8275E5126079059E96304DF9A0433950A7CBD519D59744CA400A8250CCA61E
+ B31BCA8CEA547BC83B4A4113907AB1A676AB79330E302F0D4948D517C4F91EA1
+ 010D9D4EB8CF4FCA38C633C6736A5B43637BD5085F32C277BE38D8671CA9D895
+ 7F0674A0020D30B3FF4ED448C612299A70D3444321B5BF10E9C5B2287D401B0E
+ 7AD1689605C26091A0306A14A328BD8B0210484DBA204341D70237C41CF48307
+ 665B5B2738611A08F0004E774B01583281A74CB82002883A31A3C60EA95CE081
+ 319DFB54082080B2D36D261FAD7AD54DE8E5015E8D3258A7ECC426527988562E
+ 6B942B908293E06167017000196670852CBA95264048B30CE64A57A49DB100FC
+ 81B35ED128E734D679CE7626E31B758004FE6E25B083D5A3A0054D0C41BCEF6F
+ 8B8DA642EB07D9271F9247222A03861B20E1465AF416919034BA9814910D1B3A
+ 460A1CE927BE00013350325DAD5DA912601B912FC42A56D0D02438C2E18A1A93
+ B9844CB8F10CA000FF8172480C51AB33AE8F692802E73A17991050260F9BC93B
+ 262B3AA37B018F12A52DB32356B388E521550B321187067C217AAD92693A57F0
+ 02ECE1F9DCE84EF77E2EC4E77E6AC5BFE913B0BC019C581311B22D96FE9DBE2D
+ 0D23BAA085C18874F062200C994A5F9A109B48C52E3AAA2E0957847EA07697A8
+ 41AC845F3C6635AEF50C669410915DA8210A2E8E4697E8A08637ACA30E6FA082
+ 6F739D6BCF85C3853EB6E1A008F58F1C1A39AA7E092976ACFB32EC622B21520E
+ FA95854EF4A19B75541C00832CE0E59EF2BE953E40D0094F58805F755BFDEA66
+ 3C000BAC2083956805D07734ACD8118BB6B1ABAD59962AF0BED7AE76C72E5847
+ B8A3EC3034DD0A4AFF4F78B38350CC032CBBA4D10290E73062B4C491416A337C
+ C143AA716D34A250828F3B8E83148886C8A1A0382DCCE1254E880103F2C05B5C
+ 33410910D8430C88BBCB9853CC0BCC4DFDB16D97644B02BEE75C70F2CF15A244
+ 2A8BF5F6451F2B58716FED1460003DB1B72238CD4B932B443D042118C118D68B
+ F5E63B9F4039E0730FDE7DBEFFCEFBFACB6A9F412B9CEFEE3BF2996FBF1BFF06
+ 2EC9824FD8A2D20ACC655DD100905A427E104FB0488F815A33F0E1F05FA160BE
+ 38D3F82F38AE7251C0255000059E63060DD101614005255007BB856333A0382F
+ 575431274C15932833977A4566647CD0103AC76496066D7603655C1501243882
+ 2468072578652488FF442588822988652D287429E87BA5727E65400536016E33
+ 71055DA41331701F4001674680037076676F1667449884FB51674C8884459884
+ 4DB88450E8844A58854628856CA00321E07560D72383F6855F982C0F877EF353
+ 868A76861871233FC717DA8237A9407798A5597EA3778241495430119A7560E0
+ 17373212251D605287970587E76A50902F2E56027CD0188E13066A508885A805
+ 9EF3030C500773E0380D40633656428AB30EBF767AA6A71CAA178AC8165C5060
+ 49D8E16C1701820C810546977BADF88AB9C76538C33C49B000EC814AAC621357
+ C083E1B466E47600F4F47CC2786E16C2753D4004F02670D8B78C04955896E03B
+ DE178DFB262D7AC1FF4C9016510B677E14462E7CF7187E506971A168F4D36F11
+ 670C0E300D51F00682483679000D0CC078572041FFD70003882FF81226A41303
+ 2540016180532AB7533300002A50077B00739F383217E85436B70F005002AF97
+ 1D08762DD9C2102B58822C688217999116B99115D9912F78912FF8825044002D
+ 7006555006644005A9E474AD7278BE380248F38452389353D8844F2893359993
+ 3749853B49933B89934C588CE30304A165473D6276875576649794CE8876DCC7
+ 7650E9584FB632A1E060E57259EDA7167D44407B774AE8E30001640B65388EF2
+ A740BCA6057C005783687114C0076AE0042590078D238F0C802F1584006AA206
+ 5D00069947018DB1FF5B2A074B743090A34727C57590A0686CA9573BF0B00FF0
+ A0065615916F081D8DC28AAE7899B098995B064552B4059E150714407CBB0857
+ 5EB46662E066C3989AE7A6753A800148C09695842CF4C68CB4A95897268DB899
+ 7E2AE38568015AED571816950B7A632CDF0896D198119F267892D0000EE40169
+ 491FB0F915CE1941FFE704908800A1C40D25000755500573D00508E88FAD3498
+ 04699088794333A7902E4500A0E70D18D400B0A7182AB38AD01192F6799FF899
+ 9FFAB99F56807460A016C2D7564303347C804E3C91036EF6933AB9A00ADAA00C
+ FAA00E1AA14448032C2006242003AE52367704861CDAA1224209D09876226A86
+ 57053817F0869116FF69C3F90AC0592490349CBF702C4E39A2E2989C837401A1
+ C1005C441FEB08161C855211540215B45266A026E1D0055DE09D73602697D84A
+ 0D349066803A22537A31877A8A5928C836000440001FC00CFBA004192199F309
+ 1D13B99FFA0992661A92689A9F56804DA5D203DC840558A245D273055F000432
+ C00053E7930B2A8540C99348E8A75618A865D49383CAA7FC9103FB4402AF692C
+ F1369B904A9BEA730C04867751C976FD461928BA18A07587C0293FE452870035
+ 16F6B616DD978A30E29099F0084E1062CE9996EB887F8FE1498D53624A600698
+ 215C7560795BE09D7BD78F99C304A596AB02799E14939035B79EE8C04206D00D
+ 6B02050755481349FF99F599A6D67AADD8BA82E6913367400417F03C027A66A3
+ 797C2130002C1084109AAE12BAAEEADAAE3769212370A144295861B7944879AF
+ F69AAFC8F28C6977A9B9D908D7A2A2FED3015AE9A2C2B951BE305A10352998FA
+ 4C9A1462ABFA06DEC000F3311FD0897F16F7A39E9407446A06D30001600007DC
+ 79924ADA41615002DFE0AC74B202C61A108AF90F3EF00E5ABAA5343B0105E10D
+ 90197B273AA6F4B910F8B9A61FC99141EB91409BAD50C4015D200F6DE0073968
+ 5E57D00B59F0456230024723A87CFAA7826AA85178A85C6B935D3B854B08AF24
+ 800744697D917AB6929A162DC336B8E9AF37920CE5C20BC05018CE2217A0A024
+ 83010B6EF87051B9FF0093A30F740005DAE0AC00F0AACF89B13E4AAB1CEBB11E
+ FB0D22FBB823DB0592C64151A00F23E0B1A063AC178843DDA004E7C001CB7A0E
+ 2BE0ACDDA09BD3DAB30F100177A0BAAC1B92ABFBBA2FB8BA2408BBB3DBBAB65B
+ BBB04BBBB69BBBACDB9F52841D373853C417342B5634547B000590BC44A8BC0D
+ CABC50C8BCD01BA1CECBAEC95B84D3BBBC0A4A032F20AF81E6A1DEEBBDA5CA73
+ 6848A3258A9C37729509DB01C669B0172069A7D470295355E53B3F5EEA982A4B
+ 275A30133BFA053D0A9B1C555345FAB14AC09D905B05493A07959807CCA00223
+ 800778800123405CBA647A7B108A4E250276D00D063001344BB3E74000270401
+ F279BAD4EAB3B16BFF9FABEB82FA29BBF6A9C2B5FBC227ECBA1180821280121C
+ B0053CF33C5844A7F28113E8643D2C9003D4EBAE443CC4463C8517220632B041
+ CA88B64E9CB6CCF243FDDAB6C719095D395A74EBA28EE000DD0850DF18707B64
+ 116CCB05DCA00F21ACB20610263A1A4E870B9D894B052F0600459A196A500504
+ 0CB93050057EC000B7F1C01880010E1C028A9330131C739B1B108B321C1BBCA5
+ E790011C300E2BA00F3B4BC2A83BC3AC0BBB28C8BB98CCBA997CC996CCBB9DAC
+ C99FECC99D1CCA35D35D2D9051EDD1B4B908577245023E91B5D85B93D75BBD0C
+ 5ACBCFFB93B8ACCB124AA14A9C055DA0AF4C89AF4A59CC847576DBD7B0E2188D
+ E7BB0AC1D06C4482FF24082B5AAF301128E36093718A5CF039DE200344E004DC
+ 0C0106600303000F4EA0BFCF79B1A7D60B6952A4EFA00473D09D772CB255D000
+ 0C202674F0C7FAACCF78F0B72AF004856C43C536737650102A30B38C8C0E1C30
+ 018B920FD852C2106DC230CCC2148DC22558D1136DA6BACBC22948D1BEE75D60
+ 40110FD0007C60135B449A5237027555C42C7DC42EFDA0BE8C0759C0324F5CD3
+ 92BA3E943AC663E98169B8B32CB31644B2C55DAC6188045169C14799B1264040
+ 0470C0D40CA02666300152FD0E0781135C747F75E40B1E5B1AF0C0077260C776
+ 0CB973E03999B1CF660DC8355003B9E4633387C1EFF0033F500403B002A19B0E
+ 133000E5DC0D3C1BFFD1D4EAC977F0D77E0DD8A29CBB822DD87EADBA86FDBA89
+ 1DD8841D013713454AC7050F004EC41B3D7C0004970D046094A0D5DBD99EFDD9
+ A01DDAA23DDAA45DDAA18D032C60150DF0BDACDDDAC84C4821CAD3D09855B629
+ 3F278A055E1924D6C143F1CB2EFAF0031E708C3DB0273D00037520D553DD0C25
+ 504E6979B883480194172674A206A9D09DF26CC71E8000DE5003AD79D618D09A
+ 3AF0C024D00D09F30402ED544120002EB026074DD7092DBA78DDD01080BAF44D
+ 7BBBEBC9198DBB87BDD1F87DDFFACDBBFFADBA34EC65DB76B75F506648706633
+ 91A12510033D91033460CB2F2DE1BB8CBD15CECBEA1ABD056004153A3E376DD3
+ 208ED38536C5CB1CFF998004A28E940BE6429C6D8873DBB2B0FA1002C33DE37B
+ B2273080041F60B3F0B0DCCEF9AA32A596BF004A496D6A8071DD555053745203
+ 7EECDD671D0265FCCF2F34280270032ED00D076D03A1FBC81CB002788DD7FAC0
+ D7F56D07AF2BE688ADC9644ED88A9DE602AEE67770E66EAEC9827DE6852DBB1B
+ 312A4290CA174006EEA1060A1E4EE385044E30573069E1A65DE8867EE888EED9
+ 34300662E0E1C24CCCC3FCE8927ED4A728DB4CC60914B600A2E0189C661DD2C5
+ 4CD2B118FA30002951DCA60E03A80E032D4000EF400771D9C3CDAD968DA8053F
+ 400751B0047110072362DDA701012E30B64CBECFDDFDC73AA00327F4CF013DD0
+ 37D007549E0FE3BCFF3CA14B005CDEE5F25DDFF43DD8FB9DEDD8BEEDDADEED83
+ DDA6D9D4023DE00073400158C49235114EF4E101C6EB02421CBDB34CE1D6EBD9
+ F10EEFF25EEFF38EEFF8DED9D84B03DADBE87FB0054E2C9B1FFEE1942EC6961E
+ A6CF54BEB78D2E83911052F5E28E320AFAB00252FD011753DCA99EEA1CF00D3C
+ AEBF3EBE620CE0880E84EBBA5E2272F000A0010F21B0E4C1EEDD7850ECDC40C8
+ B323050270F352D0ACCFDEC80C33EDD4FEE5D60ED17F3DF4445FF4465FE6469F
+ F44ABFF44CDFF4442F8BE37306ED4BD27C0E6E79A05AE94402419CE85CDFF55E
+ FFD9319D051EDAC4AECDDA62B87D09DF3B79E1BE76E807BBCDDBD2E117A38EDC
+ 1380F1A97E312D40FF0F30900566066E7CC000A1840003282F4B3004B91E0721
+ 420550F00E06D0F24C3EEC90AFCFDD8D07A141272AE003017103382F05BFC1C1
+ EF2DED5DFEF3F910F43D3BF4655EE6623EE7A83FF4A99FE66F6EF4AD8FF4AC3F
+ FB73DEFAB11F0112C003357892A1497CF29107800ECB3129DAFA2EEFFC7EEFC8
+ 6FEFCA3FEFC70FEFDA3BB67FC08C7257F0213EA92D93F6DA513F9C5A870ABB4C
+ BAA332154FF7525D0779AFEAE69FF72DD00296ED9C50C0525A70CF003003871F
+ 075B009A98516A8EFFF2FABFCF2100082C3F103F3E025252411512031304198F
+ 19902B0395960306109A0F589C9E9DA09F9E77A4A5A6A7A8A9AAABACADAEA612
+ 291F045D170B650DFF5779BB791EBE79577C7C6F482124232C3405CBCCCDCECF
+ D00509D1D4D5D6D7CC342F62485D6D0EE0DFE10EE2650F0F6565E3DFE2E4E0EE
+ E3F1F0F3EDEDEFE46D171769690BFEFF00030AF4C74F1FB8077E2850F8D2A0C3
+ 3907E9224A34674E1384463626649CC051460B1819607CCCD0A224855D1E7A79
+ 80A2048116285000D09931E4C190380F3C28A1030100093C18820A1D1A548750
+ A3458F0AC5536350A14441820C98C5E1D1A30F942E59CAA4299457515E4F4528
+ 359654D9556755A57DC56A6DAB085624F0C0D3629F033F6F52FAF275C583B037
+ 403CC8303682068E02879F25460C6D71B3C59099455E36993165C998ABE1D046
+ 0289902DEED8E1FBFF56068BE987A3DB885E1DBA35EBD7AE53E7E337B0B6C07E
+ B8D3E87BD04021950E58D2419C28119DC5151B392A9F30ABA4C8E71F5B64E8D5
+ 8BA54B280C00006032E4E603260006D5900194A8F9F3E883720891A99088208C
+ EA58959401ABD64B5C2180DDFFB5958053FFB1A54A80000A68CA7F0422586005
+ 3C7CC081105D3880C50C7CFCB2974A6F0026830C35BC908332CC4C538D88CE90
+ 88CD89282E43A289056823860C54DC730F699CF8110670E8A823E38E3CF6E8E3
+ 8FAAD1869B6D44FEC3C5026D744005157E74922371C4598491465426E70807D2
+ 6549124904A4C4404B2F6547077743CC905D4F4E70C0011EE50D8514066FC6A9
+ D45278A450C40F85FF443515017C4252DF7D5AE5F7D5A06019C8168103A682A8
+ 808BA255410A3AE02104175C944141857AEDC5C7156F0823D8316CE490E2A8A4
+ 966ACD66DB2001C66BAA99D341077EBC7ADA0310AD131B6CB8DE4A0F3EFA0859
+ 64915C5C20E143E9A0F32494651CC75172562A4740495A6AC90103085C979D0A
+ 6446C1930A329CD1829A6C62D0667AE48A8B81151F1EF1830152C9E7A7241F00
+ 1AA845FCD5DB49290AE67B87BE09E2EBAF82A4E81BF0BE040F6C70C104039C30
+ C2F94690021E1C9C014E427D51B79707C150F0A9182CB0E198A920877C220E2C
+ 8821693DF070F26AACAFE228DCAEF2A01CF33B32EFCACE6C450E39A440FAE443
+ A3B1C8A623659544FF2FBBDC23DF66C9017D75586BC60F512C3104143C0D80C7
+ 10420801EEB849750DE79C41E1A1C31846D050840A10F830009F55F96983BCF3
+ 76652F7FFD1E2C30C3FEDA9D37DE07F25DA0C2752F7C470AB23CABCF1A4B58B8
+ 575FC3BC91C760C7B080C3C78A6566D9E5D754168DE69657866A6743ACA69A03
+ 0FAC0CAB1FA837199C8EB9B6AEABEBE1E4B3CFCE01E9BC80ED0B1C79641AA4BD
+ 532C94C731AB5CB3CAD581E5965A6650157666D01145770CD0A1C2083A7C9081
+ 102D68CD66B8E59A87070156B051360D39A8A0C2DAF349624356705792DFDC84
+ EE2B00BF043731FFC2F3D38FE0FDFA27CC3FFFF80BE0FEF8F53F04C1E5037800
+ 03391E4085BC58ECFF626FF802108A11B92224661A180C913436A8A20DAE4883
+ 190C21073D48C20F76B083193CE10639E399191D040B1D0843AC6CC4321CE5C8
+ 563FCAA10E65A41AD5F4AA1F00B19D10FD71A4DBF1AE87103987122532B48C38
+ 91684F5C4E08D4A4BC2A2E4D4D75300304A23684E8FD60042310C3141F94B570
+ 95C728724A0A523E200651D1E08D343000FADAF688B7B50F3F1621941E3901B8
+ 7F09106FFDBB5BFF0616C8BD05727E0EC3800CB0D4065C38F06229E1C3172890
+ 05C184400C23C801E544C6C94E2E838542B859234B07AB52CEB094C0595DEC5C
+ C7CAD7DD4A76B421C8ED6639C45AEAA691143956B234B102A3F9924ACB09E62C
+ AC484C0EC4A00471FF1882B6BE280631E88004E2CA9AD6D60414AE1125526C7A
+ 011CE1C802F4BD2B03ECBBA3FBE8B54742019080F94BE71FF375CE75B67380F2
+ D3DF39DF994EB81885917FA040A72009492038EE922F2802084B48D00F8AD084
+ 051D21420DAA501276B00823E8CCAA520643539A1275B03A8D3A5847B38ECEEC
+ A3309BC73D7EE82B59D6929601B940398693A32642F1A5C4630E151FB1349A72
+ 406A6A000004C2884930EA608A43F81635DDA4146CEA409BE3334C37FB445370
+ 8A336E102827DDD6E9BF42A293AAF0646756055840770AC00A8FC20096B6D086
+ 2D34800FBCE0E71B16A20619800A449E54615C47788D04908F7A1C180DE94C77
+ CABEB62C952FEBE1FFE85A49D857FA7076B543E94909A21B958E6E89C11B1E47
+ 9023D9605A9600572C660690909D1F984107CD6C661875A0A6AC51937B6E6293
+ 0E3EB44D1A0C60056D5B9A245610CEA7BE4FAA5F49A7000CA1DBDEE68FB7BE0D
+ AE70874BDCE21AF70E119040A438D0852D38F2811004021F9020831888C10520
+ 3A6842B5CBDDED7AB7BBE09586117240BD2CFCE11D2A9321ACD44BC3F59ED249
+ 3B8CAF7C77349B93DA57B1B71396398CA389293DD100728429308559153AD291
+ 0010285968C3C8D3E56ECD5C5F438A9D9401C702B060056CB30A019E0A2841C1
+ 0F2CF98BA73A434CE2AE9678802336716FE3C9E2138BF8C4294690156421A932
+ 6C414979519C2F84FF41C962708C0D3430423416AAC167107944283AB2347040
+ 5E1D202174AEB2A85F67983A967522B08375656159094B7EDC77884154E97094
+ 35E0B701D800BD2CB3658FD6D4F93C4206A18D3318A9B7DC69A2964D5668ED1B
+ 7DB0023F4562C31CBECF6D3F1C0AE31ABAB83738B4A2839BE84557E0517421C2
+ 05CA4005E82E4E92405003615820E4F07AFABBA0FEB4A7C71B51E692AEA25396
+ B24553890E1C86B466B0F6A8CD7AB80FFC7E99965EFEC6035CFADF33CBB1974F
+ 8CE9721C649502F389007860302617DC4C36D9797B18E0410E8A90546D60783E
+ 55097487F348E84F2CFADBE00EB7B8757B87B908010CCE4D08A654B2B84E0161
+ 3035C8245C1BAA42FF25DBBBC8F4CEB7BD994C3D214439D5003F1DCB5063AB2D
+ 6B59CB5DB6B5C271C73B0744D69798F0B51C6D20EC353BC2CD07AE439C996D32
+ 2C4D53087840979E0740023FC976C3B5D5F6A071EB090124DA7E7D1080FD5EEE
+ 7299D73CD134A779CCE767BF99DFDCE631C739D06DDEE89AFBFCE8461740CC61
+ FE73A4EB5CE6C8859467F6518619E8022517130610F2E08410C41BBBA20EB5D8
+ C34E761C4034044248EF0CD9CBF6B553D9CAAB0BAC48E74BF7D891F4D6B8CB6F
+ 1B784D250003E0CC7FFFB5802D3E8B631B1ED9CBE6694F9D89F62D70E0A84610
+ 321C8BF0041BD0517975D0B6BCF2C3803CB01C14E30EBDE847EF5B52C845525B
+ E8028E75EC170FB8FF7B4324E098A8F02D42147AB7DE634FA8ED6BBF8CF18A51
+ 08370AB8F05129AB568BF2E0066F5DC2F1AED8349099591197F89907B0918A07
+ F3F0D8DF78E2C5C801316C40CFAEB581C9259179CD6F5B13D5D242E7FDF0E1FC
+ 093DE7EE8FBFD37F2EF4F9C1BFFEF4277AFCF15FF4F7373DE9F7477F8F824010
+ 820B1450316AF505C4C059B2D769B947760F188118446A21F01BAA5643C3973A
+ C5271C1C0552B1E681B2763377B7700BC77719217D28487D2FB51C4E44711F50
+ 78D88778CAC65323805D65B3196F54048DE067CA132FE6777E10502D2EF1124E
+ 90070D602F8C7668FD177FC35574E9E484A1B784F6E75B52383F566005E2D202
+ 5DC01BFAC44F5947FF0CC6F002E2437B0E4550BB37500C456429D4506BB8229B
+ F1227F906AC0C157172870B2E22458967CC8E71AB4B67C24683B84000169164C
+ D1B715D2570914575983178386B771B1E731233701C4940113F05A3F28681621
+ 845A10260CE00425C007EC975B41A774F9378AFE778AF9878AAA588AACB88AAE
+ 988AF4770756D0200F02111DF00579C00499A22912A4060C002A28940018248C
+ D2408CC2388CC8588CC9788CCAD88CCCF88CC6188DCB688C05E0022410020DE0
+ 7677886AEED58DEDD55EB2227775378E3CE4877837342C38017E274786187806
+ 1078354002304571F4488F2FC88804C04671F6212D92833B886D76748998887E
+ E9F712D8D18925A0FF067CD0109FF08A5338853E3785A8F890B0E87F12597317
+ 097F19599118599160651404F0190E708B39A6297E310CD3351835681910D892
+ 12387638608D321087A6741AA6318775D85755E6322EA4873E496B88756B6446
+ 88D3276887580392156C2F05838C185AC90047393015E3478902B97999288430
+ C1009DE88979B05638D2091CF98A6219966439966659963F37387391055DD005
+ F9E43858C78B11A4922C500434005ED25842D4B88C1E949721B497CEE8971E64
+ 042CD0194C824A36691A154587538651567643AD018292F96A1D7558BE625FE8
+ 184CBEB6792888662D588FA0598F4C997D620064FE683D6D967255394E043984
+ 59C90051500279C0FF07BFD19068799616C9911B7996BB799B1C298B0F13315B
+ 00065FA00BFC140CC3F06E4E700C9A74862EF99C2F1942E415024850934EF209
+ 8B999317A85105B7873E191A3E74990A178883B81C85D83E29086C02A694A379
+ 6C9030066F1495D6235BB36589AB095505F99A4EE0046AD0955460930F7003EF
+ 27A0048A7302EA72075AA0048AA00A5AA02ED70406AAA00C3AA10DBAA0114AA1
+ 0CDAA0196AA115DA0702EA3004F8070FB0045F9012EC967514F06EC7E0020215
+ 98D3F8A22E1AA3D008A3332AA3D389043469434AC4098AF957DFD8767688873A
+ 220FE4587796E965B69699CBB19977B48E4E8A1CA119A589D89EF93800E42395
+ 6EA69AF7890957E9FF9A075902B2F906B5090AEF07A1F467A6B8E99B69BAA618
+ 7AA1AA68A65F358BA877015870127189317E91056FD05684E102D0F9A7D14950
+ 84F922E6A53A3B0A1630C48D197887A8717CDF49587D289E433294E65994B675
+ 88EAA9949A7A8F9855A5563A0075404C04A0A55B9A1F9AA89FFCD9950D00A015
+ DAAAAEFAAAB01AABB23AABB44AABC8553D1CF0075DA06E1792759E520C215083
+ 9D768C334AACCA48ACC68AACCABAACC898ACD2C8AC0930A8329005C5A744D779
+ 0EA0A0A8DA794A2E33A49439991F386B23881B4AAA1C4CCA619D6906521A9AC0
+ C42701394C4D85045B8A9E5DBA89AF09A679C0100E41A66D4A7F097A7309FAAF
+ 656AA1A918B03700FFA106CBA0087BB01C7A8A02BBA100EBA601AB9678C096A5
+ A131AC270C5FF00559006F998403801AB2813AA8784001B3E209878A9D3EBAAD
+ 1805581C85448FEA4AAB243B3F344BE4B966E749AA1D76889A5A342C689F7D46
+ 9FA36A9FF38A9F5EAA95FBD99F0C210AB52AAB1EDAA04FDBB4AD1AB5512BB550
+ 6BB57D3038159B0E7881295E5821D4E575016504D05AB6667BB6689BB6C74898
+ 240023D75A4E3D0AA43FBA7673780E436A0F456AA4CB57AE1C71AE9AE7A406A0
+ 021317A50336595AD1543E58B4F28236AD69AF5F5A021EC0105E61B5945BB996
+ 7BB9B33A6304480E1D708077BA6340A09CCC49B632EA97A68BACA54BA3A7EB8C
+ 0500512490056987FFADFBB1A3D9BAB28BDAAD3DE99DBACB2A2445A9CA719E97
+ D89935A0946B169095603D7FA2B88B6B114178B408A906911B8A9E80B90A5AB5
+ 04EAA11A50BD3710B5D97BB50DDABD3700BEE08BB9E2EBAA4F1B0115F0534220
+ 2C6180B15F2B0C8FB3A220ABB6F45BBFF64BAC46E0BA386AADB3CBBF37A9ADC3
+ C76A90291AE01A82061C3340C9B7EA68A902E96BEE487D51144CB5D56789ABBC
+ 5AC11316D112F9891D9E08BD5FD0240D49BDAF6ABD054AC2226CB9086BC2AF1A
+ 01E6766E7EB00456F7B56BA5A235900CD12AB2CF49BA2DE97B6827BB9FC7A38C
+ A99D2D631A79B8BB462C3A1770B39695B396C03E3A8B1F9D599E124CB4BD5409
+ 4FBC9A8390C19A68FF90482B9B1E4001D2DB09E13BC6D95BC6647CC6669CC6E1
+ DB076ADCC66BECC670FCC6683CC7715CC76C2CC7753CC683130292B285B9B08B
+ 2A81927980043150036077BF889CC865EB7B3200A07B94B237D932DA38B755A6
+ 51DE9AB7E3A81A0AECB7E6C78ED1F78E8067003175C5163C0059AC094AA0C11B
+ FCBCD13BB9732CA0E50BCBDBFBCA744CCB6A2CCBB26CC6B28CBD045ABEBC8CCB
+ 639CCB63CCCBBA1CCC73CCCB144B015B984FBB08496BE5010CB0022F50977AD9
+ AC356AB62EEAAC894CB634C0024EF6072C47BB3C1AC98B5A4342BA0E5916B3AD
+ E3BB1C01BCF32A7136F082C55BCA7774CA10A0CAABCC0060AA9060CCB465AC01
+ 791CD0771CD0E10BFFD0B54CD06D3CD007BDD01AA0D0696CD06ADC049A6BB158
+ B0A796160CBDB869C3AAC81CADC8DDDC19DDA647D959CE432C8EDF7AD2E1FA0D
+ 9BCCC08AAB04F9988F6B46CA459B1FAD29841BBC9F09C90714F0959CA0014D80
+ D00CCDD03F1DD4693CD4706CD4748CD46DACD4449DD4121D9C5AF8070AC87A57
+ C02979016F7509B27D79C3C248B6D2E8D55CADBA629DBACE485E784005219DB2
+ 403CD239B993E70C9EEAFC3AEC5C8945E9C44D7CD756FC54D706D3964509764D
+ CF03C0BC3F60D336EDB85A199BB3B9D3FECCC600DDD80DFDCF900DD0033DD010
+ CDD88EFDD86F7CD998DDD899BDD9951DD99EADD9974DD997DDD9967DDA0D8D06
+ 002D8BE616210DF0FF064CF0B957B0B16FE0B13900D61D9DDBF5EB02E3B1AA3F
+ 2CCEB50B43722BB78CEAAD788BC93CE2524BCAD27FBB155A8161B3F001310DD8
+ 50857EAA8CCF86DDC15EE915A16DD96FCCC6935DC6E1FDDD8D0DDEE27DDE050D
+ D9784CDAE6BDDEE7EDDD8FDDDEF1BDD9E6FDD9F20DD14D506E74D1065DD085C7
+ 7931F1FBB1BA3DE06AEBBAB99AD6A140BB3DBAADAAE610B4F2B247AC6573EDCE
+ 8A7B6DF26C59C64BDDCC4B07844DD886ADCFB2499BFBEA09A25DE2E56DE228EE
+ D8969DE22C3EDA27DEE22DBEE2A22DE39ADD0411704F6090060EB0045777A71A
+ CB752B7A97043EE4D09ABF2350813F9CE087AA986C0D703B89BBB151C0209899
+ C971663540CFD0CDFFD7534CDD5C6A111CDEE1856DAF5B19A6FFC9DDE98DDA92
+ 7DE2E6BDE6F38DE66DFEE26FCEE6721EE76F9EE6765EE78F7DE7A85DDF6FDE04
+ 4DA05C1CB00549B0E36FD017FC24498E33182BC0022EA022678BDB6B1BE9CA0A
+ E9936EB6607DE92E0087490E3F0B4ED273D809331BD7ECA0C44419027C425B78
+ 4DC581E6D7C726DD184EB4164CD32A00E61ECEC59E18A60C190A1AA0DA000D02
+ 8DEDEBC0FEEBC2DEEBC3AE01BE0ED0BC6EEC8D9DECC7AEECC48EECC5DEECD21E
+ EDD4FEECCEBEEBC5CEECD92EECBC6E054E46056D99103976A29BC2075B670C06
+ 406D097004C7C8EE65EBEED00AEFC40AEFF2DEEE6A7B046C2B034B30E29B7EAD
+ 9F20C9C3ED76A873FF235776C9C8FD0E265889F718DD32CD6159EEEA5B4ECF34
+ CDE1D72D84D89D9549AB0662EAC8D63EED1D5FEDD7EEF1210FF2225FF2247FF2
+ 1F9FF223AFF237306327433A0798B1C88904CBC9E8447EF3CAEA02479E058E8C
+ E04BBED641DC9870472CA24E0E73BDF0AD3EB45B6AE110FFB312CFBC0040EB1D
+ FEE1601AB9AB2A0ACA1EEC5A9FF55CBFF55EDFF560FFF5621FF6643FF6665FF6
+ 687FF620D0F215DB05E9D000258A1227CAB11E80EE2E1079388FF34690E9D3EA
+ F39F07C00C0EE5297DC0EE40E59215DD2F3D0B13D0F070F3F0D35DCA8CAB0951
+ 2FF51E0E05EAB795FDA9D85E01027D00EC7DA0DA9CEFF9A26FEC9D4FFAA31FFA
+ A69FFAA8BFFA595FFFFAABEFFAAE8FEDAF7FFA9FAFFAB04FFBB8AFECA0CFF5A0
+ 5FFA1AA0B974A10F7E808BC7992113E40431800CEACEAC972EE9614DE9CFEFFC
+ CC2FFDD1AABF22DAEFFDABE0B6DBD670F732DDB96581680616A71C9CFAD2F988
+ EA0E7FD77BDDF4CAC1F88116F9106006943FF50689D30AC9EF240E026800ECFB
+ 0F081A206820822085878984828B898C888D8D89938E83948F869088878F9399
+ 87919A999D96A4928AA81A1A77563C78606D5D0D5F571E79B61EB91E57596F25
+ 0C032F45464709C5C7C6C9C8CBCACDCCCFCED1D045233A59580FD8DAD9DCDBDE
+ DDDC0FE2DD58581DE77E617E1DE9EBEDEC7EEBE7D8E2650E0E6DF8F7FBFCFDFD
+ 100021A81830C146FFC183060D7E20B0B021810903224A9C48B1E20A860C2768
+ DC386145C58F2043AA0808010002250852A25499F2644B2D5AA03060E0C4499E
+ 0EE0B42112C473A74F417D2A0115FAB368504E4447F96CD413694FA6457B362D
+ EA34AAD547372AE8902104CC960E146ADDD2958B02852F324290A8E1C24882B7
+ 70E3BE2D26B7AEDDBB74EFEA856B2487981042FEE41CFCAD30E16CE6CEB15BEC
+ 8EB1633FE51ED8D397AF32E5CB96DBFC20297005C7CF1AEB10C038FA03C49021
+ 2F32340DDA06EAD72047065CD9B2B6EDDA30A1C8B489D330A5DFC0830B1F4EBC
+ B8F1E3C8931FD7D04407060E2D6451E0C387ACAE2BD4D5C82031A22DB4BCDFA5
+ C10D3F77BC796809FF8CB020C1D5B0FBC3DBC68D2BD72131BAC78CE3C5AB2FCE
+ C1E4CCFBE4738F80FA38A0051D9CA9E099411A317890430EB906DB441735B491
+ 831E4D38A1019B0564C66D20DA969B4C0CA8F11E16961012948AA81C729425BF
+ 11024A8A89BCB8228C34BE38E38B32D2D8238F3506E9A2253A06C9E26F361A09
+ C28D3736718773D0A5D1861F5F78A0062EBABCA12510DB89C1820B72B9559798
+ E9D945E6997CA5F9169A6BAA59660E238490057C74BE279F37F6E1D7D89EF360
+ 51C67F6D0028E8654A40D0A1A10038089A46A461F481841F65388047AA65C491
+ 69906A88DAA13FD016E2A7BAC964229D209850EAA9A6A68AEAA98798DA6A22AE
+ AE1AABAAB4CACAAAFFADAFD63A2BACB6EA7AABAFBB02DBEBAA6E3067450A7808
+ 7141191D5499C7B3BA00C107106F58A9D697058817DEB6DA764B9E0B715210D9
+ 89751E268E3679BEA3AE3AECB0BB0E3693F923EFBC66700681010B22A42F840C
+ D521296A156694D046FF6A5A118701FDC0D2C22E31BCD28825908B62A9329A50
+ 311AA9563CC9C5AD724CC9AC1A77FC9BC5AFB60863AC93A0CCABC81467CC32C9
+ 1497DC72CC34EF0A82153AE0C141170E74719675B95C71C5176F2011420C23B0
+ 304C794C27D33478E63D1DB5D354435D9E7A62E0D1C0B8E54A1C8E7C88D1A718
+ 9F64EF47CF9F0362A636800070F683018A2EEAA8A399465A5A1D0D6A84A9C120
+ 210C101D9F06FE12FF4CA3926B42AA87CB9A38B08BA3DAB8B08747BEF8E3C346
+ AE38E2985F5EEAE4BA72BE39E6927FAEF9E168DCD1C4736DA4510615573C3B56
+ D07C546B34034993C9EDEDDEE63E0D0B62202198D7C0D7694E6264EBD9677F01
+ 269FF6F2FA7CD1366706907050DE097DC0AFF505538851DE1B7D903DDF069004
+ B8E082130EBCC519A73F33FAEB63DCBEFAECC7EFBEFCF0CF6F7FFDF8BFAF3FFD
+ FB63EC7FFEF43341043EB033FFF8212C40BB8E07D252031618215BC610D31124
+ 383566CC8582177C9A0437A84123C44908C10B2138EE8418C5186F4FFBE14FBC
+ 06C5427C38CF500953C2A2F2E690D230A460941A0D431465BDBA81EF50E3235F
+ E0B450B87249CE04FF5338A21297C8C4264A2E894E84A213232745264AF18A4B
+ ACE2149FB8C52E9AA00911D0C10784E0806551C075409B16107E513BDDB91177
+ 704C860B488084AED9D13060238709D7E50E77A530327FFA4F81E6D58F122088
+ 243F18C0C0165910EBCDCD7A16D9DEF4F4F63D0D852F202669982669C3C996AC
+ 246277B49C283917BA5166CE942DC318E7FE273A54BAD273AF3C252C6729CB23
+ B61296F36B427392E5801E600181B7789D07F840B41284A0814B8B4679E2B8CC
+ 6E49AD9947A0869CF823C26A12867827748C62B091B616B2B004CF0B081D0842
+ BD7D3DF28612518DF5BA37811EF24D22970448268518B83788D08B48C4E716B5
+ 18457CF2339FFA0CFF6813FF69452A9A00056E68420A42C0813F6CE19762C152
+ 2EBEF00520A8E198C220C61B371AC7EF804B4E5CB366F04828B6FB14CF1DFA51
+ 61BC0649A096264F0B8702880A6AC0C881B5F37AA7198024D9E9BD770E4036F2
+ A4A7E0EC79C76C0854A0FF24E85197CAD4A6EAB30F2FC01974B6D080E9243068
+ 670C81184690CC093E43A3DF012B589521D66D8DB518EA2141438B2AD2AF9D2B
+ 6CD83C293CE41119C900CA9B9839100C658A80493AC8068E5C880E1F02D8D2B4
+ F3B07578D43BE35912A1D6D39A078D2C0A242BD9294CF6B294C5AC660F6A5914
+ 5CD6B2990DED662FEB59D19A76B4A74D2D6A57AB5AD14E610A68D0805485B005
+ 07746006AD93681EFF88F90563D680ABE339C231846B0CE20A77B8C82D6E728F
+ ABDCE632F7B9C43542D6FED0D6EAE624AEEECA6E1FE5511FB40D9290F24280BD
+ 1454D3E905F69C9F314D4F0D0654087C68939E8CAFC310A005A256F3709BC52F
+ 6593C85AFDF2B7B598F56F64FF8B59028756BF018E2C82153CE0D0FE57BF1066
+ F064239CDF039B40B639E3406DC940816AA5B11779D80E5729788CB346B0A3DA
+ 32F157590052EB5A338FF489EB09F5F3AE7A0812AF9931434CEF95AF9A3AD286
+ 0D51EF4DDDA9A9F6BED7B1B7D10264D8CA0DC99656B34F8E32693DFB592A1F54
+ CA95B5B2662DCBE5295F79CA9DA53296572B66274F59CC613EAD67413BDA27BB
+ 76B26888400A3E80FF872E3C940A55C2453079CB25EE0C63B9C60D34A0077DDC
+ 413B57D02EA8819C98EC62B0E1C9A4D96C8C6224C30F9732CFA5F5829E0DCACB
+ A0F32E84A7D82B32498E8C64DC2C59A455E66CAAB7BC6A36B339CB997575AB67
+ ADEA5AA380CD4F7E35AD6FED655EDB5AD6BFDE35B07D7DEBD259E13944581615
+ F8104CB250A75ADB61CB7854AC626954DBAC5F2D02EF90508E46B7F54EE98AB4
+ 63FCB4B6725BC63F6F08A7876CEAD7C492C63489B55E627D181B9278AAD42951
+ B275C32CE67E5399DFFE0EF89A030E70811BFCE0084773C217CEF082335CCC1B
+ 40C3B1EB7C8136CC0208BADD8596D4B0963F2BB7D01F2FB4C8053DF2911F1AD0
+ D26C406F18CDF2F8FF38BADB7BD46EBBEA73B6CB80775E7F7A8007D46D2803E8
+ 8B9113709490ADB7DED7C474259D9CEF7CA1B0B5966703CAFDFE729A1F9ED931
+ 5B3DEA0897BA96C76CE687F7FAE05D3FF3C39B80333C542100178028B4AE43CC
+ 0532A081605286714F2C77E496F5C48226C6DCBDBAF7B4FACEDB4E7F2BBAEA03
+ 694973131F814A3C8E6D9EF36C18D26D8AFCB9793F8037A2535EB146B737BE6D
+ 0305A76FC3EBA00FBDE8474FFAD29B5ECC68D8E516D290062C2C1B5AAFD3521E
+ 9000851A18A02D212779C9410E5D91E71EB92307970CAE0178EB82BBA48BA139
+ A5CB7881345CA0E2E766A9F2F491F36D38E19009F379790FAB5EA213A0921239
+ FAE66BD3796FF3DAFFDF6176F8D4738DF52E7779E00A57FFBFB77E7E5ECB3AFD
+ C4863FD607EE7E30CF1FD7FD867FE8377F9E955039D302AC27074B501DC2F46C
+ 5FE00424C01D4A0356C275776155625F95817B17411E4447BFE3792008632564
+ 1FE5600F81F27CAC077D81626E6AE31F652078D9C0003BA620DCA33788E57D98
+ 07129C327EE407829FB70128008440E85942D86F453884548684441884067784
+ 4C88844E18854CB8844EE86F55988453988554888510F78459288545B8845D28
+ 85CD21032D70010BE00054502DC2940B7CC00021000524600606A077BB778778
+ 98877A68042EF01720E48380E81E89416ECF5788CDF77C2B7873F2527D83A157
+ 24311093046A8E44FF6F03C05810205FF0A5742EE10481980D57288646A8855C
+ E8854A188AA56885A4E88563288AABB88AA7388AA81886A1B885AF088AB46880
+ 3200066980767ED03A6DE80135E1040C400203E04075A787C8988C25A76D1E58
+ 7C80485291514669B000AC97822AB878E7D678EEA105E3253D4387833B041288
+ C4832D11059D880DA90886E9B88EEAD88EECF88EEE188FF0388FF2588FECF845
+ 0B2504BBE8000DC086D6118CC2488C13A88C045990C7F551C4778E21381FE180
+ 0FD5788885B88296267D69C388EF916924812F3668798EF43DE2438E29C189CE
+ 880557A88EB48885B25892AA988AA0088528F9852FA992EED89231F9849DE592
+ 347992ED38050A85FF01CA920655D02CB5401600F90B6BD11D142872766887CA
+ B594C7E59415F8942567047EF78123D98994868287E87CD7C88200E28230E81E
+ 85023D21008E8255378C354FE347440A890D1BF09670199772399770C9067479
+ 977849977639977BB9017D79977F59977939986FD9978629987CA9978A999885
+ 2997096505807106BCF805CCA60B340190C35803C260909C898C4650047F415D
+ 6D899594D606CDC7958698888AD80F1659273B672F6630641132118C15444997
+ 89F0C507A3F90070198473E99B42F896C0F98471498F79498FC42997C3D99B47
+ 289CCD199CD0498ACE998ED3A99CCFB99CCE599DC0C90663706C1CD0065CD006
+ 1C5699C008904E50FF024E704C23D699ECB97BD24401A3E98C59B99510A9785E
+ C9782F5854AF894866E06990C2582A00925AA09B57290E8479A0089AA00ABAA0
+ 0CDAA00EFAA0BDD99D3AC00167C0050BF000146025794013970990EA5904ED19
+ A252B91E7F779580570F0E9982A8097D14D9A2F9D09AC07305D807103F50030E
+ 91216909920840A00A792ED009A1404A97D8699DC7C99C0C0A9C415A9C423A98
+ 484A975320A11AC60566940BE6198C2570A57E96949D6987BBC7A5C1F71759F0
+ 075D60A2CF680F5AE97C5C699FD8780FDAC8644EC07380331AAEC158A4B67950
+ F0053D0A3672690170C9A76FE9A71BC0A782DAA7709903854AA87F8AA881AAA8
+ 7769A87309A8807AFF9790AAA8914AA98AEAA88B9AA86F89A97139A99A9AA97B
+ 6AA96C507608A83A1DC6A1C298AA25A01D2500054829A2215A047D1802A249A6
+ C6579AA76988884820ABB90F30CA564E602F74100336D05EF3749BC8EA495AD0
+ 00BB391F49FAACD01AADD23AAD4E2A55A5FA005490AAE679A56A5002225604BF
+ 07ABCAE8022C460521159F2C379F685A9F89779FD9989FD6E588E2346A02CAAC
+ F2391F89B1A883BAAFFA4A9793CAAF00DBAF01CBAF893AB0A0FAAF072BB00A5B
+ B00A6BB00EDBB010FBB0FC3A05C7922C5CC0050E50025180AA97D9AD6AD0AD5A
+ F0AAE2DA997364AEE87AAB26F8902B2A91D337912FFA82DEC68DF6E25E20C974
+ CD5A0EF14005C059FFA995FAA8A1EAB383DAA9102BB40C2BB43CEBAFA11AB046
+ BBB096AAB44D4BA8040BB549BB013C6905C9920469C007DDBAADABAA0679A01D
+ 6BE102205A685E3A7265CB9E9F2906590006B61A82664A9F69DAAE6B0A969DA8
+ 633104920C40A6E7620E7E400514F00253D0B016C0A786CAAF85BB01872BB111
+ 2BB883ABB88EBBB88A9BB8900BB9833BB9913B066240405BF0065A8B9EDACAAD
+ 5E1B62AE2AB6236B901E2403F0D9B6DF86ABD6989ABCDAAB603992997664C9AA
+ 894A90B779BAB77ED0007EFB0562D00441F8B8C26BB9C43BBCC64BBC0C7BBCCA
+ BBB81B40763A03041DB6B53501BA1F6B254E507BA45BBA04192759B072AACB64
+ EA4A9F5D39B76DFAFFBDE65B2EBADBB77E4B015AD504812BA895DBB8811ABFF1
+ ABAFF50BBF007BBF114BBFF98BBFF3DBBFFF1BC0F23BC0FA3BC08CBBBFFE4BC0
+ 8DBBC0FC2BB0F78BB91810024090055FF0B556BAAA5D9B07DE1AB663ABBD7A28
+ AB7E78BE2284A2A9A3A2AEEBA22D1BBB27BBC2235C42BC7B1667A1064EB00256
+ 30065360C000BCAF05DCC0C2CBC3072CB13C1CC4C65BC03F2CC402BCC3044B76
+ 3A10021E4051D64BBD5EAB0648D0AD5020062EE0C11F7C0408C9C2E9FAB6EB1A
+ B72CBB78742BC25C8C47F89AB36691C614705124600580CBC0701CC7723CC771
+ 9C03747CC7784CC7769CC70CBCC773ECC77CACC781BCC080CCA763F0024B8C04
+ 5940011685C11E9B7FC154CC551D8CC5779868DC56C64545C2B9AAABAA09BB2A
+ 4CC6A0EC5658B0BB54B0BE5F00C36B9C16DC3106717CC4096CC40AFCBF0BECCA
+ B37CC7B28CC3B70CC7B4ACC0B52CC478BCCBFC5BCBF68BBF83CB93897CCA9CFB
+ B58EFCB1571262617BB6947C5CD42003983CC25E2CBE6AEAAE6C0AAFD5DCCDF4
+ 50427DABC6691C08003B}
+ 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/Cliente/uAcercaDe.pas b/Cliente/uAcercaDe.pas
new file mode 100644
index 0000000..720ee32
--- /dev/null
+++ b/Cliente/uAcercaDe.pas
@@ -0,0 +1,60 @@
+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;
+begin
+ memModulos.Lines.Clear;
+
+ with TJclFileVersionInfo.Create(Application.ExeName) do
+ begin
+ memModulos.Lines.Add(ProductName + ' - Versión ' + ProductVersion);
+ memModulos.Lines.Add(CompanyName);
+ memModulos.Lines.Add('');
+ memModulos.Lines.Add('Se autoriza el uso de este programa a:');
+ memModulos.Lines.Add('');
+ 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/Cliente/uMenuUtils.pas b/Cliente/uMenuUtils.pas
new file mode 100644
index 0000000..942c08f
--- /dev/null
+++ b/Cliente/uMenuUtils.pas
@@ -0,0 +1,179 @@
+unit uMenuUtils;
+
+interface
+
+uses
+ Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus;
+
+
+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);
+
+
+implementation
+
+uses
+ Controls, ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils,
+ ExtCtrls;
+
+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(Application) do
+ begin
+ Parent := APanePage;
+ Caption := 'Accesos directos';
+ ParentStyleManager := True;
+ Align := alTop;
+ end;
+
+ APanel := TScrollBox.Create(Application);
+ with APanel do
+ begin
+ BevelEdges := [];
+ BorderStyle := bsNone;
+ Parent := APanePage;
+ ParentColor := True;
+ ParentFont := True;
+ Align := alClient;
+ end;
+
+ for ItemIndex := 0 to (AMenuItem.Count - 1) do
+ begin
+ if AMenuItem[ItemIndex].Caption <> '-' then
+ with TJvNavPanelButton.Create(Application) do
+ begin
+ Parent := APanel;
+ Align := alTop;
+ Tag := AMenuItem[ItemIndex].Tag;
+ Caption := AMenuItem[ItemIndex].Caption;
+ Action := AMenuItem[ItemIndex].Action;
+ Images := AImageList;
+ ImageIndex := AMenuItem[ItemIndex].ImageIndex;
+ Height := 32;
+ StyleManager := AStyleManager;
+ Invalidate;
+ end;
+ end;
+end;
+
+end.
+
diff --git a/Cliente/uPantallaPrincipal.ddp b/Cliente/uPantallaPrincipal.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Cliente/uPantallaPrincipal.ddp differ
diff --git a/Cliente/uPantallaPrincipal.dfm b/Cliente/uPantallaPrincipal.dfm
new file mode 100644
index 0000000..aed8d03
--- /dev/null
+++ b/Cliente/uPantallaPrincipal.dfm
@@ -0,0 +1,394 @@
+object fPantallaPrincipal: TfPantallaPrincipal
+ Left = 355
+ Top = 173
+ Width = 577
+ Height = 366
+ Caption = 'Pantalla principal'
+ 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
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object pnlContenido: TTBXAlignmentPanel
+ Left = 0
+ Top = 0
+ Width = 569
+ Height = 293
+ ParentColor = True
+ Align = alClient
+ Margins.Left = 5
+ Margins.Top = 5
+ Margins.Right = 5
+ Margins.Bottom = 5
+ TabOrder = 0
+ object JvSyncSplitter1: TJvSyncSplitter
+ Left = 210
+ Top = 5
+ Width = 5
+ Height = 283
+ ResizeStyle = rsPattern
+ end
+ object JvNavigationPane: TJvNavigationPane
+ Left = 5
+ Top = 5
+ Width = 205
+ Height = 283
+ 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
+ end
+ object pnlBorde: TTBXAlignmentPanel
+ Left = 215
+ Top = 5
+ Width = 349
+ Height = 283
+ Align = alClient
+ Color = clActiveCaption
+ Margins.Left = 1
+ Margins.Top = 1
+ TabOrder = 1
+ object pnlMain: TTBXAlignmentPanel
+ Left = 1
+ Top = 1
+ Width = 348
+ Height = 282
+ Align = alClient
+ Color = clWindow
+ TabOrder = 0
+ object JvGradient1: TJvGradient
+ Left = 0
+ Top = 0
+ Width = 348
+ Height = 282
+ Style = grVertical
+ StartColor = clGradientInactiveCaption
+ EndColor = clInactiveCaption
+ end
+ end
+ end
+ end
+ object StatusBar: TStatusBar
+ Left = 0
+ Top = 293
+ Width = 569
+ 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'
+ OnExecute = actAdministracionExecute
+ end
+ object actCambiarPass: TAction
+ Category = 'Archivo'
+ Caption = 'Cambiar mi contrase'#241'a'
+ OnExecute = actCambiarPassExecute
+ end
+ object actConexion: TAction
+ Category = 'Archivo'
+ Caption = 'Configurar conexi'#243'n'
+ 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 HostMenu: TMainMenu
+ Images = ModulesSmallImageList
+ Left = 243
+ Top = 76
+ object Archivo1: TMenuItem
+ Tag = -9000
+ Caption = 'Archivo'
+ object Cambiarmicontrasea1: TMenuItem
+ Tag = 1
+ Action = actCambiarPass
+ end
+ object N2: TMenuItem
+ Tag = 2
+ Caption = '-'
+ end
+ object Configurarconexin1: TMenuItem
+ Tag = 3
+ Action = actConexion
+ end
+ object Paneldeadministracin1: TMenuItem
+ Tag = 4
+ Action = actAdministracion
+ end
+ object N1: TMenuItem
+ Tag = 5
+ Caption = '-'
+ end
+ object Salir1: TMenuItem
+ Tag = 6
+ Action = actSalir
+ end
+ end
+ object Ayuda1: TMenuItem
+ Tag = 9001
+ Caption = 'Ayuda'
+ object Acercade1: TMenuItem
+ Action = actAcerca
+ end
+ end
+ end
+ object HostManager: THostManager
+ MainMenu = HostMenu
+ 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
+end
diff --git a/Cliente/uPantallaPrincipal.pas b/Cliente/uPantallaPrincipal.pas
new file mode 100644
index 0000000..629c819
--- /dev/null
+++ b/Cliente/uPantallaPrincipal.pas
@@ -0,0 +1,516 @@
+
+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;
+
+type
+ TfPantallaPrincipal = class(TForm, IHostForm)
+ GeneralActionList: TActionList;
+ ModulesSmallImageList: TPngImageList;
+ XPManifest1: TXPManifest;
+ actSalir: TAction;
+ ModulesActionList: TActionList;
+ ModulesLargeImageList: TPngImageList;
+ HostMenu: TMainMenu;
+ Archivo1: TMenuItem;
+ Ayuda1: TMenuItem;
+ pnlContenido: TTBXAlignmentPanel;
+ JvNavigationPane: TJvNavigationPane;
+ pnlBorde: TTBXAlignmentPanel;
+ pnlMain: TTBXAlignmentPanel;
+ JvSyncSplitter1: TJvSyncSplitter;
+ StatusBar: TStatusBar;
+ HostManager: THostManager;
+ Salir1: TMenuItem;
+ actLogin: TAction;
+ StyleManagerButtons: TJvNavPaneStyleManager;
+ JvFormStorage: TJvFormStorage;
+ JvAppRegistryStorage: TJvAppRegistryStorage;
+ actAdministracion: TAction;
+ ApplicationEvents: TApplicationEvents;
+ actCambiarPass: TAction;
+ Cambiarmicontrasea1: TMenuItem;
+ Paneldeadministracin1: TMenuItem;
+ N1: TMenuItem;
+ actConexion: TAction;
+ Configurarconexin1: TMenuItem;
+ N2: TMenuItem;
+ actAcerca: TAction;
+ Acercade1: TMenuItem;
+ JvGradient1: TJvGradient;
+ 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 actAdministracionExecute(Sender: TObject);
+ procedure Button1Click(Sender: TObject);
+ procedure FormShow(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 + '''...';
+ SplashScreen.Update;
+ Application.ProcessMessages;
+
+ 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;
+ 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;
+ 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;
+begin
+ SortMenuByTag(Menu);
+
+ for i := 0 to Menu.Items.Count - 1 do
+ begin
+ AMenuItem := Menu.Items[i];
+ if not EsUnModulo(AMenuItem) then
+ Continue;
+
+ APageIndex := FindNavPanePage(AMenuItem.Caption);
+ if APageIndex < 0 then
+ begin
+ APageIndex := CreatePageNavPane(JvNavigationPane, AMenuItem.Caption, NIL,
+ AMenuItem.ImageIndex);
+ JvNavigationPane.NavPages[APageIndex].Tag := AMenuItem.Tag;
+ end;
+
+ //Establezco la primera acción por defecto
+ if not Assigned(FStartDefaultAction) then
+ FStartDefaultAction := AMenuItem[0].Action;
+
+ PopulateNavPagePane(JvNavigationPane.NavPages[APageIndex], AMenuItem,
+ ModulesSmallImageList, 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);
+var
+ ACursor : TCursor;
+begin
+ HostManager.UnloadModules;
+
+ if dmUsuarios.Login then
+ begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ SplashScreen.Update;
+ Application.ProcessMessages;
+ try
+ HostManager.LoadModule('Calendarios.bpl');
+ HostManager.LoadModule('Contactos.bpl');
+ HostManager.LoadModule('Almacenes.bpl');
+ HostManager.LoadModule('Cuentas.bpl');
+ HostManager.LoadModule('Presupuestos.bpl');
+ HostManager.LoadModule('Montajes_Impl.bpl');
+ HostManager.LoadModule('PedidosProveedor.bpl');
+ HostManager.LoadModule('Articulos.bpl');
+ HostManager.LoadModule('AlbaranesCliente.bpl');
+ HostManager.LoadModule('FacturasCliente.bpl');
+ HostManager.LoadModule('FacturasProveedor.bpl');
+ HostManager.LoadModule('Asientos.bpl');
+ HostManager.LoadModule('Pagos.bpl');
+
+ InitializeUI;
+ Application.ProcessMessages;
+ Visible := True;
+ AplicarPerfil;
+ finally
+ SplashScreen.Update;
+ SplashScreen.Hide;
+ SplashScreen.Free;
+ Screen.Cursor := ACursor;
+ 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);
+ JvNavigationPane.ActivePageIndex := APageIndex;
+ end;
+end;
+
+procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor);
+begin
+ //
+end;
+
+procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor);
+var
+ ACursor : TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ 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;
+ Align := alNone;
+ Application.ProcessMessages;
+ FContenido.Show;
+ Application.ProcessMessages;
+ Align := alClient;
+ Application.ProcessMessages;
+ FContenido.SetFocus;
+ end;
+ finally
+ Application.ProcessMessages;
+ LockWindowUpdate(0);
+ Screen.Cursor := ACursor;
+ 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.actAdministracionExecute(Sender: TObject);
+begin
+ //
+end;
+
+procedure TfPantallaPrincipal.Button1Click(Sender: TObject);
+var
+ i : integer;
+ AModule : TModuleInfo;
+ AVista : IViewInicio;
+{ 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.FormShow(Sender: TObject);
+begin
+ if Assigned(FStartDefaultAction) then
+ FStartDefaultAction.Execute;
+end;
+
+end.
diff --git a/Cliente/uSplash.ddp b/Cliente/uSplash.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Cliente/uSplash.ddp differ
diff --git a/Cliente/uSplash.dfm b/Cliente/uSplash.dfm
new file mode 100644
index 0000000..ee18be4
--- /dev/null
+++ b/Cliente/uSplash.dfm
@@ -0,0 +1,1067 @@
+object SplashScreen: TSplashScreen
+ Left = 131
+ Top = 318
+ 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
+ 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 = {
+ 0B544A76474946496D6167651A7F0000474946383961C201FA00E60000625E5C
+ FFFFFFE66738AB8259F6D2A8B72624886A4DC538298F8F8FAC2724000000FBFB
+ FBB2B2B2E4E4E4F2F2F2EDEDED30302FEC733CF48544D5AC83DFDFDFF07B40CD
+ 432CF7F7F7F9A8A6FCEDC2DD5933D1482EF6D7CEE9E9E9D5D4D4EABB95DA5532
+ D1B1ACFA9630C4746ECD9992C7C6C6D75130FBCC30D44D2FF39367594E44BD96
+ 6FC0574EFBE8DFB04D41CC665AFDF3E6B0AC8FD7C5C1D8D8E6BA3532B08981CE
+ A87DE15F35BF2E26C2433AE59D90FDD75DF8A57DFDF5F1D26F2F423D37D9D5D4
+ FA812EF1E1DDEAEAF9FEF8F5AD3A35AB302CA22824DACFCCFEFBFA878686E3E4
+ E9CECEDEDD6142BDBCBCA48C33A6A6A6BBBCC8F6792FD2513AE1E1E1F5F6F1E3
+ 7D62D6D6D8EBEBEBE0D8D7999999F6F0EFFDFDFDF1EDEAFCAA4CDADBDBEDE9E4
+ E7E8E9CE827DD45A44EAEBECEFEFEF767473FBF1F0D85538F9F9F9CCCCCCEBED
+ EDC94E40F5F5F5DA4E2FD9D9D9FAFAEFEFEFF5F3F5F3ECECE9444343CACA9DE1
+ 7630E96D3AF4C2BAD1D1D1DD8542D3AF34D7D7D7D75E32E7E7E7EAE6E62C0000
+ 0000C201FA000007FF801282838485868788898A831F04305C01919293949596
+ 9798999A9B9C9D9E9FA0A1A2A3935C0B17650F580F0E176990A4B1B2B3B4B5A4
+ 12221229B8BABCB982BBB9C1BDC283C3C7BEBCBBC0CABA3C041949B6D3D4D5D6
+ D7D8A50B6D657EDE58656D170B0B01B0D9E8B3905CECEDEEEFECE6E9968BF5F6
+ F7885E3C1C30F3FEFF00038AE292A6CD033F541A34E800AE559A05E7044AAC64
+ EAD4853618336A14E70AA2C45ECC42821CB98CA4B193224BAA342682079E7E13
+ 63CA9C69CD94C10614285049E86795B85734279A2AE820D5AAA3AA92B26AE531
+ 20BEA75017A5F89021A8D5AB5837D9C4D2E00B05AF5EA9F42CE31062BCACD6C8
+ 5D4CD5C18FC2B770FF15FAE9F020DCB888E906FDE26568AF5F7C7B09FD3534B5
+ 05DAC38883DA7C8033A7E39D0D7AB26A930668E25A04DB3850E576A7CECF5474
+ EEE4B9CA01E572FEA2AA5E3D68DFD9CBB063635BEC272758C7A2E74EBEF05A36
+ A805698AB66D101AB771E33C3B901D979AB5737C29F611C1EBBBBAF550B44343
+ 56E85967642C584CDFA57EBD54E63258DC1E7FFCF93864C9E27A5B4B54E1797D
+ 45F725E43FE4120691F20006A8096D3925D74107C43D469A5D4D091889291738
+ 804518097E65A168A365681B6E3BF5C4143ACF85584F0A53F1439E8328566753
+ 37A1454616375C35A6A0870E3C84A24D0E20581C870945E68D379171B7236E0B
+ 7D888D6AFB2D92A4FF214B12F64C34294609E0296574305A789545889E5B0986
+ F5DD8B0FC917DB8A086E285A6407829714780702495C715E5150641B62D622E2
+ 9D8AF040D57F52F6291B3B11EAD800166D40A4168C9D15D7E35CCB59A6628458
+ 20C8259A0FD4E5C0A59A657A69A5E001A9E8770E9D388B7EA4D6676AA9A89EAA
+ 2AA982ACDAEA20ABC6CAEA333DF8692B6C5CA0820564E1C5C3CE2945455AE163
+ 0BB172973CA25A056C5165344B9678955506DCB4695CA459B39CC9459769D226
+ 1BCBABE0B22A6E7EE41E522E93B0A61B6E0A041876EBBB59019A23710B158A6C
+ 00C05DB4D9703B26B75C470D8252861208D0A1C0C108230C01024A3831CA50D5
+ 46FC103966C1F30EFF5197A692CA4F2528A1040409274C87C7B2A46AB2AC289F
+ AC72CAAA16C627BC30D34490846F2A07D43AED54A6992A0A291859A56455EBAD
+ 251F876CF4D14A6CA2C5D14C376D3400B96A8629656928E1F4D100382CCAB9E3
+ AADB75B85C87ED759253393274CC685FC34E705CF154A3AFF7021AE103FC12EB
+ CDB374B6B30903205FED3403992CEDF7E0099B911946AE70E144DF84270C4019
+ A1AC2C39CB9357DEF2332D4893F6E600CDBC6B42E135B80EB2C01195ADA29085
+ 01CE4FDE02D0B8D3495F22F8EB7E435DED4F0B584D7BC81040FE891E964B003C
+ E5C4077FAA045E50552BE7FF98B1BBD197C9ABA31F65004572DCC81214A184EA
+ CDA81CB7273E60F0FFF34723203BF94E1B6ED12BB3A3AF0004A05420FFFCFACD
+ 6FFFFDF2D76F6AFEF4F7CFFFFFFB0BA0FE04E192CC31CF1FAE739F02709506F4
+ 2CA40CE370C2C19236BA0ACAE3503C7B9363BE139E1A996512E35360C2D46089
+ F689F06000C05765B8F085134EF013C58BA1F166589F12F5E06C079485F31418
+ BD5C6D86156978430215603EEC5970285A12D68EE43216713445772E3C18FC2A
+ 61C213AA2F4C211421041EE009FC79F18B600CA318C7581FCCD52987B61822FA
+ 70B53D57EC10611434A2114FC18D8374E92B1D5A1D44A010C59069818A7D4421
+ BE20D2C23EC68E13FE0BA0FDF4B7C8440ED08B8F046024EFA32703A2111B6F5C
+ 6362D6E68A2A2A20FF76479423272F252C0D7AC70FADE002E30249074006D270
+ A6E002145D38454492F196B8CCE5FDF450A2E95CF21A6A241FAE8033CB84C531
+ 94C8AC484152E18D9DC4A9010F4803020219320A50C2930A4C613BB2E8422EDA
+ 528C8C14A31EC4E9C571DE323AEDD2DC2FA9914961C20622C54458119129CA0B
+ 9A2E46DE81E02A9D0600C005C009ED6CDA2123814DF7C11212FB341A04B45099
+ 1204F4685ADB842E23A04BF951147F17AD680A30C08116E0709D9E08E6F3C624
+ 4BA61D931C70A367052D122CB78487018383000929A186C10D940B0545D81740
+ F12B762434645FD0D9052E5002BFFDF19B154DAA52F1278102BE0CA4B478E8C1
+ 8E9A2276C4F3850FFF32947CE8F9207340486369906AC220B0534BD4946966F0
+ 98372591D38359931338FB55007EAA307210C58D47FB81C7943053895234A37F
+ AD0060E717D8C21256B088B5E86115AB58C31A969204581E5469215284515514
+ 6A508254D37AD94D5040B30ABD1E264A8A3449C4551E14B9D72532330EBA26EC
+ 8FA3A3C40E47C6D74CE0D46F651D90572BE2D3ABD1E10D11EBC81961B8D4E21A
+ 5717ED9A6C2DC4DA594F40C1B5466B6E25D4C04D93AE5512D5759A166E5BBEAE
+ 42A2B20A704245B0E037081064851FA508779DF6D64EF4B41CD05598C7A4558E
+ F45A02B18EC5AF7EF31BD8C6EEF7BFFC05B0609B5A15E5CE02BC0A90EE2610DC
+ B45662E2AA4E8B68FF24B2DBB4ED62F39891002FE020C1C7AB292138A1B26F29
+ DABA3BF1F256AC4D4BAB882BC158010FD6BFFD5DAC8B671CE00A3C8308EA34B0
+ 28981B0A14C3EE120C6E9A8429CCB43F5EF81D01006F44219CB012B4013C10FC
+ 2076D6EB4287518C0B1D7EDEC2AE1BBFBF4620C0FCFD328DC70CE6FFDA50C7A4
+ 40B082312141F4B557124CC62D765F67619312841C19665A447DAC8006BAB40D
+ 24365A6E1710E8D789775AE510211DFAFA89323B9ACC907E7405D0E95134EF18
+ 7DB59CB04169EA3E070780C84733B2494BE711254BC2C710682071FC708169D2
+ EEADEC2874E30E3D2D2EC054846608C59777CDEB5EFB5AB062F6B5B0833DEC5F
+ EF1AD85EFE6B5339FFF0544B7722C8579B04051498E9B92A506BA08E6E002E6C
+ 91BB6878CE4EA3C302BA512F59EB5412840EE4A1A305CF1392B5D1918EF7A3E7
+ 0D605A391B147C6E5AA6990C80BE16B4BD6D36295BE99AC24FD379DB762E487C
+ 4CADE9706F836E58B880B9DDFA202A9F70DDECE642BECB9BDB4D10BBD8200FB9
+ C8471E722BE0A1D2F77EB6FB2601DE5C5382E106679A3F25F1809F6ED1B4101E
+ 2841055E2DA6C03CDBAD5C668D26AE80DC5A5C841877C55DB2DC694F241BD950
+ 3FB6D43F1E75AA4FFDE957AFBAB2F77186947762E347AB7600A0C0300424D077
+ 93803055E9AAF348E8AEEC3AB72AD38AE85584978F93AF8079907F608EDBA5FB
+ D5A625FAD5C49BA5FF8B0C354C7126DC9A2941F2C63BFEF1C59EB474BCBEE095
+ 83E2B3158EC4B499F6664FC8BDB46B7BC885BD8AD26FE739DABF8208D18D2EF8
+ 0843C8F019019812B2ED34B15F02F2B8CF3DC9059B8297505E136057A827B450
+ 34ED4622E0BC7B18698D064AA18DFE5E4A6E079FB9383AA2530067AD17B2F6C4
+ C17DC44DCC141E8BEFD1188D895DDF210276D875FACFCFEBF5A3BFD7EC87FFFB
+ E39F7E5F9FDFFDF8973FAFADF00166AF78B2D0E6349AE03107677746E3693CB5
+ 7C21134714337AB1157DED763533050BAB670AE640623BA552D99325C17578E3
+ 60281453190800768B2709BA778228286C12A003EDF27F50C563A1F059E2176A
+ 3B77342E37651036FF4FF1804D0860414A362DB7F663D5B73B41152624767DB1
+ 040F5A655712134B4B5811E48011ADE00A8987559A1001E7978558B8855AD885
+ 5CF8855E18866038866258865F161D1C7043BF67096A160A55687C0618320587
+ 83025741A34731A767340C700A0B405E573345B145095C70357C102185426259
+ 503A0FB188D4122D43E50A69F0057BE531DC04000B2021614017855254573387
+ 99F0655E088A64687E5F288A62688A5B888A66A88A5B38691FD002CDB6860100
+ 839E407B4AA005D87454D8748382A80911C87CDE1587C6942F364261B4368846
+ 158C9570356F6010D583818A182DD2185CD532540B807C4CD3014F2617D5C305
+ 2AD0899C308A66D8FF8577308EE2788EE6E88536860767E082BFD4869EC06F03
+ 958B91C07463650981888F0A684CBB75814C033586071174E530D23738B0865A
+ 9270564DC3070ED01312875B50885220483121480E85043B6CC32810916DBC88
+ 09E9888E20F99122398ABD248B93408B9C206495A07691A09046C36591E08769
+ E53112F67946633E49288C080335A7F0101769345AC30EF6A892955006D0C690
+ 07D26A1069314CF95E830305B7731A24D67696508E5679955899955AB9955CD9
+ 95598985E508965C6905BDD775269987DAD6092EE93896405754255014917338
+ 5787EE50505FE00E62B561F1D0380040554A10800AC090730168D45474E43083
+ 74A005AEC0000108FF059CE0955B69075629995949997760999139999A099995
+ 19011B058BEE984328A909D8A4022B99790D377E9CC634137874076338FD3894
+ 0AA306ECC060E2855AAE569807F30639D2010F494D59600AC1F73A305995E528
+ 005E899CC8C999CCC999CB7907CF7995D1790715A003AF28596B088F9C505037
+ A805D0055BAE094770A66F7A139E0A707D92F8005CB096CF6362F2F000BA8930
+ 82A98DD9E7345F00119CC84A9DC09962D99CFEF99F90690556D01F67399A8173
+ 42DB552D0B3083DAD59310818DACC9057EE83E4E808790509F7EC307DDE09BB9
+ D9476F001C5C407B25B69FCA79073E009D5859A2275AA2C8B9A228CAA22F1AA3
+ 2EAAA2310AA3365AFFA37760051C956394A79D9BC09ECF8300970841B2D938A9
+ C62C94F193DAA74A0AB487DD020922AA657EC018BE89A14C1354AE00A10A8480
+ 9A9095D3799CC96995370AA3D289A2607AA6669AA6656A9564D982B268A099C0
+ A0EFF3531F562510349C09C3074F3617849206E2075B6FA8005255A1D6721735
+ 474D007011DF9006567A34595010E380A7FAD6715D3AA6386AA9987AA99A9AA9
+ 997A072BC801ED989DA8D909457A3414905D6690068C814A6910A521E30417C0
+ 187954357EA304908005E2D74A7AC605D7621A10B1795104058172378C5A9841
+ A51969D001723A7808A909CFF9AC9B9AA6D08AA6D05AA2D42AA6D86AAD388AA6
+ 9EC903964479709AFF095528535CD0A10A131CBA4119C3E904C1A123A1413D7E
+ 105FB906095A3A56EAA967C07129E20111E2734200C06A12C2100F40278D6A34
+ C0551435F206CB2A73DD8652A2029D0210B13E10B1264AB1112BB1173BB1CA69
+ B1177BB110DBA21CBBB11D2BB202A0B11F5BB221FBB1D0D97BD899723EDA0971
+ 4607EAC9056FA067CC822969E004220A001DD0737483103AA18DF9F98F5DC537
+ FFB89747C300E73554DC7717E64A3B74500273B30A93C13EC66A100C01417E00
+ 984743077CD04040132A98C0A2294BB622BBA9656BB135DAB16B6BA36A7BA3FC
+ F7AD67290B0393450BB3537404894A272DFA921138CB07E1C77C1FD66DA68320
+ 0A31B055134C1040FF9371537C13449B28853D15F72B0A271E36D9386620B506
+ 01654CB18385C99BC3D113E2E0045C7B307420AC7B4A1A037B2C9510B223FBBA
+ B01BBBAE0BBB27EBB1B27BBBB51BB19E79723C3AB7B4B00EC01229748137A621
+ 8587172CA5E128A6052C2F6216CB941E0752171E485F152965D9A31617415F39
+ 59414321854EC40E92E8B8BCE331521B1C07C128A7818F82188D7B0B89D3388D
+ 7BFA193F532369000504C834B4E50ADCD03DB9D110007316676BBB691BC003AC
+ B2024CB2076CC005ECB19ECA2E72EBBBB2D0BD5B422FBAF122A651BCD6423772
+ 512395B00DD08BB8E8B63D461129ABD02CCCE22C97321EF76257D652BC18A1BD
+ 71A54CD578780EABFFBE2B921E7231B001635A0889445278C2CE421642ACAF6C
+ 312CDEA1891FE8844E483117A1C143722692C12DF51500B70BBB4D50C5589CC5
+ 5ABCC54D60053A00AA101CC143B119FC9B472FE2BD2E4CC6383128BC4109B14A
+ 2F1DF036E64047178C1E860B1709B120B85331CAA42F433C85DACBC7731C95FB
+ 8A17EBC03609D22165801AEAA5847E4C37771C1792DC1D71724A0DC111333CC3
+ 52A3C1326221B7C113CB811A5B3CCAA45CCAA6FC99B118C6EEB50DDCA02305F2
+ 1D4BB1112EBC3308B11384821717C0157212C7E3A0339B61C14571BE466CC967
+ 1C2638031C689C2998FC7D2BA533DE9752EDB0BFFDC2AAA3953D3EBC19E98110
+ A6B41E3CC2449C8BFF2917AC2944AC0AD92C24EB31BF4071B137A0CE02B0CEEB
+ 1CB1EFDCCEEC0CCFF21CCFF6CCCE137BCFEE8CCFF24CCFF4BCCFFB4CCF77F099
+ AA8C1DCBD416DD2116C3ABAF0CCDD018C14C384105B7ECC60F0019CA91110EF4
+ 0D76714F3DE3C939A110591B62A4573A3F8C377BFC0E209871FDB83637B12162
+ 0141DE72CCF99231AAD0165CA221DA311A6F311774511728FCD3260CD4D892CD
+ A1711BCFC4CBE560CAB21BCF1DCBD4B07BCFA5ECD4B17B073A80073DD0BB058D
+ 8FC062471B042AADF0C30D3D35DCF326133D09B9BCC653DA2CE9F12940C4C2C2
+ D119EEF13360F20AEE80BD0D8D38902891BE020FD7FB709D2C163AAC37ABB581
+ 2DFC436DE21693C2FF44DE90263EDDD043FCD8083BCBD782C39DEC18536A2FF5
+ 9CD900ADD99CBDD99E9DD97DD0D99C1DDA9F5DDAA02D0015C051A19AD599F0BC
+ 1592100BCD1152F3D30ECD4CDA51D69210AB3A3D17DCE1C909D1D676752D3F5B
+ 2171921C96225C381395608DD7E865CD7B9DDC2D7D2183E241829C5AC95DD86A
+ 0D1EC23B173C4DC2541BC4E01DDE288C298FA82FD80CD7B7014DF612D0A2BDD9
+ FEDCCFED9DD9FF0CDFEE1DDFECFDD902409678C06CAC8D090F07D779042D5992
+ 31269C31E0CC3D574227949006BB222779FCC4AF8C2520C8B42D35CC72B2101D
+ 943832ED880F3D352BA4554826D39BF1D7D37D78CC5CCDA167DE045E1795D2E2
+ 1AE3D3418DB0421CFFE37FCCDC4AD7C255322C808DD9A6DDE3ED7D03EE0CE4ED
+ 2CE4004DE4F56CE49E4DE448AED942DEC5558D72FD6D5A057110C501D20C32E1
+ 7504E3350ED13A81DBEC9023EC51203CD1195F003A1E74412C65C7C46D210B22
+ C50EDB0EC82C35189CD720EE0E5E35E58DF14CE1B1CCC6DCACBDE8C3E26CE090
+ 3DE8272CE3913D35263E8DFA22AB60F1DBEB6DDF90EEE3921EE9948EDF9FBADA
+ 518E2F0601B47232A553A8D73DA7317F7CE06BBD13035B0AA8501BC601D2ACE0
+ 40117EE6A917956C01D74482262F92C45980013A2004444047C9CC117ACDC715
+ 11DDAF5EDE265EC36DE0049A0500508005A6B5B4D602D6613DEDD41ECEB1F788
+ 8ABEE89CAE13979DFFD4401EE4DF1EEEE22EEE430EEEE37EEEE87EEEE55EEEE9
+ DEEE40FE025E0CC6999E2B07B141D443DD13B90DC1ACE587BE25B7ADE010322F
+ B7D1E9D2DB730D5EE625BE8421F8C8B42EDDC5120EAFE0042CD0041F7043F952
+ D229FC811479319BCE1ED3DDB44D8BDC25000000A00200600679F0072590070E
+ 10EBD528EDD51EF388C311E59DC9144EC654D0E8EA5D0E459EE4E0BEEE3F7F03
+ 4DF0EDEC4EEE3E1FEE40CFE4EA4EF49BDD048581D5104C105552E5178D67EF35
+ D3A21EE3445CEA125D2343251C8DD1230C91C2F5C5366CED41497831220CC9FC
+ CBED7B6E6B286002567DE716E1BD74AED7A9D7CA88FD16E131BD4C6B8D5CD000
+ 4A60004A10020C10FF026AC00066300040F0EC1073E37F1FF28F08F2D3FBBE8B
+ 1831DDB729DB0ED8CCE1EE9EFFF9A01FFAA2DFEE2FF0F4AC6D0A34F3D1171D26
+ 0A8FCC3FC4EFCF122C3DF3D2151EF60FFF1374AD3DE851D42F5D281FC4BD4C98
+ 2530F2260F44BF32E00226100237F4DCE7F57D751EEBDB43D3BA41DD32DC1101
+ 9007245F029100071DF097FDA65E294D9188B6C4ECA6F0E50FE7173FDB54AEF3
+ E1C0F340AFE442BFF4403EF4F05FF4E3FEFEE96EFFE6CEF4F70F083782023702
+ 7729783D5C018C8D8E8F909192939495969798975C6D0F0D54140D1D0E6D690B
+ 5C0BA8A8A70B69170E65580F0F65B4650EB7AF587E549F7E1DBA9F1414540D7E
+ 58A3A55CCAA6CC69FF0E580DC2C565A45C5B2D5B175D426749015C497F421C42
+ 2D441765BE586D5B60E324161B78175C69DB1C781C1C678B6D5D2DFC025C6B91
+ 6415AB3614D494B8320796037A581222A1B0255599062154007022A4CC852C03
+ 00986120A4439A301D9571F1D3A04D80050E1A60B910008B90120C182001A3F2
+ 4287966DDE5068636A53423542885E68738B163061C3FC3CB8B020C08D3E82AE
+ 66DDAA212B56415F6F74E5AA5550D7B35BBD661D5B562BDAB46EDBA20D8B5543
+ 93173A38F4C8C4B7AFDFBF802F39DB15F5015166A9121F7420AB712D5A4DA17D
+ E2D5C0D39761C53AD83AFCEDDB2A65ADCA740816EA6100286248C8A83126C599
+ 001756BB60D37A5EFF1AA6DA640C78C1BB8885103D16FCA9C1C285050B2FC4B4
+ E092A586151D491690C0BBC5A0032766546864E08A5416040000A83003A58C32
+ 064AC48F0700C5497AF1060C20A0029E4199000D949829B18981991A145C0045
+ 78DA01800005A67CA184124E302052092F95014576E13951C66DAFD0F2C02E97
+ 7D418C61558105D788249668E28964A1A86289117CC0011181C528E38C343292
+ 4627D26071612A06A9824A68B0C852C62CB61409CB2E930D230C15BED8724129
+ CC9C62D02A4B6D48DA03697051036D2CE4604113599CC60672237439860E8751
+ 50837153BC30660E785484040B6E5821C60839B021C61969D490039873BA31C1
+ 32A638A8C2826698FFF1E4022550A85F7808146A8678E101A005769402608012
+ 73287128050138119E165C94E1A9167F7430A9125AE8A7C2005804A0C6A4145A
+ BAD2A400D4909E0A2400E14C864F2D29155156D515175A73891597B1C622ABAC
+ B35D35AB2CB3D33E5B6DB4D662EB6C1F0258F1811035862BEEB88F28D34644BC
+ F8410D628AA59206860F60110B918F31064D34147418D53154152565BB3FB2F2
+ 8C1F5075D006174A5890030B62842046173218801C122D84C082052C70700A09
+ 5E8AC1011250F816423642848044165B34300272430480C4CA620C70C0C3CB94
+ 8A804679F85142090EDCE8A9194E44A3051D1BA581C51B5068C700105279E029
+ 000C64D1401A499BFF91C7025A88A74403658807C5026538A10615B624ADC217
+ 5CE441E04839A5011E0031EC72B3A50BB4518B951D12B36E007D34116D136669
+ C5ACDF8257DB37B4D66245ADE2842B5EB85D8163BBB8E1C7021E410A2F92ABF9
+ E681D5E300C11418F310C03CFEE84ABC42D26BCB2B1D20099534A2F4AB12BBEE
+ B2623B533F49E3C0027E5A40B310499050C414217406850507E0C1C51F74B221
+ 042A4E208FC116ADBC9B06120C5CCC82108B38D125C6CA1B24A078314CBD541A
+ 258CAA121FD9D5E08032256804844A6D68315E1E9D79105E0917E00A800C0D10
+ 8F1A1641403E406100F24B1B85F8730179656700256800D23462864D008B30C2
+ 02915534D007C49DFFA583620121B234F0C11286D0841C3C0B094FB8420F9EF0
+ 85C8EA600B618895E770837338CC61256E83232651832A3D6AD7BB9812AF790D
+ A95EF1F284302E839907ECEE3342B45D29A6E88A7450E10B0D78C002CC700079
+ 1030004A38001B3850152EC8A0080720411A64609C3DA12204681C992B644002
+ 33B0E08E46D89E32B6508303CCEC0FDFB0DD02DE800003D061241E4983FD54C0
+ 809EBCA703E7D18E1A8A8285A7C9A02706B0140554A0854921A00487A44200D2
+ E0815689443D7C485B7894F0BE6FBC413B4A789B7634B2802A0E8943F9FA10B1
+ 5CC8CB6CF9B297BC14E12F8589C26122AB094D48C107CCA1C3663AB31EA28906
+ 158EF12ED229E636FF439297638894A1D6F1E275D3A08A67A23845EBBDEB02A7
+ F3C434FB64842670C0335A3AC01834B688881D4007B129C20680A38C101C8006
+ 1F7888F7BA388210F4D179A668430870708011706F15505A807F3402052C250D
+ 6A52EA93461AA00C27686492A6A8A40A0CC09FA2D88F3C2AC88383CC603F2D74
+ 21006AD308831840B4F9E5213B0C789F29628A0004D02A514AB0A05330581871
+ 925086293C2A0997CA54A53AB5A948452A53A3BA54AA3ED5AA506DEA559B7A83
+ 26E8000FCB71A65839B7898BF4622A11B5262BE0A5CD6D422689F862E2340E46
+ A8C494D39CE644A76888611225D0600C485049006A400338C1C88C68240117E0
+ 788010D0840B4E30FF42636F34023186A01550C0011BB2F02E24B8E09F39800E
+ 68DC454A04108D0154D3CED794612A8D6021922A504396B8205200F0E7140130
+ 547628F086EC98810E390DC0CD54E084AA785405A9541B7B76F7AE2F6807010D
+ C8D02B7667370DE1D2435CDBE52FB7BB54EE7AD783C42466B6C20BAD1996D72E
+ 56E0011E6030D6F68EAB6ED0888A47AE694DB6B63575AF7880375F275F62D955
+ 8A787D92805B3130995CA0064678011EE0490223E4400CCA18EC0170A0BC33CE
+ 8C08D6101E0D30C01C0334947A5918010D9C7701215476043528C20BDE998A0B
+ 78A004EF72C0CD06E0002AAC92AEE9E3245D3D0A80492A030B35D08E1358CB05
+ 2A4C6AA47E58C0AEFF5400A107FCEC3E7E80424D619A9DF2D472010D30C07806
+ 680A3EA8010875BB60300AB34BAD6A1504664E339AD34CC235B3190D4B85339B
+ 35E06635CF59AB4D88000632E7DE3ECB0826A3E18566A03445415ED3BEA8738C
+ 867E120C26FA9028842A7480058CCE4A33451726318311D81058CFCC09070F0E
+ C1088A8083EDB9CCC30FAEC108468D0335368005A026C10894308204E480B329
+ 3E0007B2E0021C8CE00C824C9A12A030A0433D44CAE38142D688960555D0940E
+ B2458503CCC6D21A20E0424AA0C3781EC00564AB409417F0141D3AD9533AD021
+ 0F5C5083786A7021743AC07E87D40214C0A304D456F79657CC6516CBCC66A9B6
+ F9CE000FB8C09F0AFF70AC32B509DEE2B39F17DE179810A634590A58A18568B7
+ 22C6625E421AD27E5FF7E8324234C0D5ABB4C897E2805FB46104090E9F4AA280
+ 721C14C108BEC64341B6A0851C140007051003030C80031D0C210DC233821168
+ 400206148106BBE6F90B9E44D8E4598F0B0ED2B6B6CDE001AA34A0D8DA396423
+ 53C16390B2C2C800D0F6A1B86D362838200025D0B212EE8376F1685B0B397602
+ 955500852EDC86146058F62CC70DE3A61C69CC4C9A4A559A8A6637175E037086
+ F3E1154F783A3BFEDF875F3CE2279F78CA3795F168AE7CE41BBFF9C8237CCF30
+ 62B8E82F0136827DA8671297E2A189A8CD8B671C168C5EA2B0D615E9B59E33E4
+ 236FC3524EA79910FF904007CF93D2229020EB55EB0009F0FC0309EE64853885
+ 400723E30218963F02E0B7E0F754203EF45B9185DF3BF64969F003035AC5AA3C
+ 2C8528D7D1020258C53F5650E50BC46E40C0D2366FF6670969506836171EC000
+ 28C8761161A37E5A40056D307E6F405BC4A6066DC0140F910601B820081035A3
+ 9021F89637D955152020439AD7417D90798E77789087781D48677D907832E481
+ 2838796EA6799477822388822F18673128791E8806DDB24CDE307A3A28090E28
+ 4DC31271AA9756EEC27AAD976843A25F44357BC41269D6436922A77B50884E9C
+ 80059AB180BA374511F64575257CF0343B2A4140B3B35655320B56380ABA077E
+ ADE00AF2B22EFE02FF1A69283BA85069C9F0853CD2235EF8459050338BB13ABA
+ E723A770777E172C4585812050887456888898888A98888758788BD8888B1889
+ 88088993288996688897A88874D60462E02239B883A06823174166B523698636
+ 44F6E27A18270B54A844F9A284458118E7347252B87B56B81447E20761D00164
+ B8286D288B86463A42F823E7C414B0E707BEC08BD4B0804ED13A2C213AE02786
+ 6978864DB87BD1584E689886E6244859D808A0717E7E570BB7B080E04881D695
+ 6FD8A5419558881D8889EE9881EBE888F0F88EED288F8D788F88588FF5C888F1
+ D888F5E88FF1588F08F72D8B108AA0E8809F100AD40084A61851535471F2A28A
+ A9B32149D85F1E27FF8B6F688BB66885CC281ACF680C3F545F00D390DB2884C5
+ C8182C110A4EB480B7000CBC707AD5737B23877B338986037693319918DDF80D
+ 04365DB8E0934CC18013385D43057852214E2060028AA89499D89491C8944E99
+ 8850A99454199549699553D907CD471006B98337120DA5711841A87AC44884A8
+ E37AACC868FA62917A683A96B6911CC99219320B45840C71584D519297F5E087
+ 519497A46537BFF043D57369F8123A89647B00E69025B98DC4387188B956AAF0
+ 4571E80AB75069B8B07B97E96E148837FAB63726800688089A49299A50A988A4
+ 9988A7199A85F899AB299AA6A99A57B99AA8299BB00902A95988AE799BB68988
+ 5680082DD0953AD8FF837CB59010359601437216779689468515D971E3F471B5
+ 088571C9916678017E400641B9006B4005CC657B19958635730104B80CBEB800
+ 724001E6B10A6D2007A4707E651006900613D1953B4CD2334BF1230FF1190E48
+ 06C9609E5F200789E100FCB99717100716C42397A10A72F000612007DF784EF2
+ B906D6488EA4D00661D000945994501178C4D204B25995207A95213AA2225AA2
+ 247AA2269AA228BAA22A9AA220C089605590C0E9675F090AA220960D798A8826
+ 918D8184DF944190F62FEE02977139810C480A6AC0001E503D0D8013251006A8
+ 100679207FA6400179A0066A400F01D0012510055A1400543036CA100625E004
+ 5140065581054E0AFFA527C10041A30C1DC00025B0066645010653066A806E5C
+ 10A70CE0076B50A572FA3E5C100651E0044E30A05810050C90070E5A645AB004
+ 6EBA06A07129CB50066E1A06637A0568BA00841A0561D00A0B70054E4001D5D4
+ 204C804DE768811AA4071E2AA2684095AFDAA22C0AA2B1FA99B0BAA2B55AABAE
+ 3AA2B9CAABBE5AA21AF01CFB20A333DA5E08490C3AB228396A8AB8989CAAF818
+ B05719407A91422A85455A8641D9800CF04915DA7FFD1705CAE0010CC06590D5
+ 7F5020A95C100507D2A86AA00503945B50A0A84E703014E0534A7005EF7205AC
+ B204CAF005080005F01968334105C4D6AF89E204509AAEC30669E3D7AE25E0A0
+ F53A6C64A00CB3E2FF1F5BA30C14C02A82AA485A405779100568D30651E0AEFD
+ B20050A004E0CA0A08702961A6A119244EB2D604AF6A02349B94347BB3389BB3
+ 3A8BB3364B95350BA23B9BB32A1AB4445BB4466B02C19A177B51ACEE55A36149
+ 6863A998662991AB830B70450CEA12A47AE97EE098ADD93A8EA4E000FD47054B
+ 71292A0505CA7005E39A0A38A16CE6711AA4D2194C000510D26D50D0006E7A76
+ 14507F57C00A6F506F90540F6FA005E627B06D70758DC4055730215A80AE2550
+ 6F74D57F65A00551601E14D02A0F5B0F79C02AC34601A7E01E0890B201A0055B
+ 17AAA30A13C44605ABB006989B0A61A07E757337D7A537C412021360051130B3
+ A379ABAFDAABBBFBFFBBB6BABBBD7BABBB4BB3BD3ABCC03BBCBE6BABC81BBCCE
+ ABABCCAB94686005182004A1C7B462259C0A490A513B96C8199146C8871CA971
+ 1DC08BA3F32F423A44D73A94B8A07BE2C7005F701B6A0B05F0AB0C54E0A63B42
+ 01E31705B3A5B64C80A65CF0050C7005E1AAA85180205CB0040DA204018210ED
+ D101A820078B7B057B45050643A843B6005F5002C4F6A7E91605AABB5339C100
+ 080CA93931B1A14AB78ACAAFE51AAF5C3764A590101C95067B1B0558C00A8B1B
+ AF3D9306F70B0518E2B283E832CF27064D80B35370B3474CB3496C022880C446
+ BBC44DACC43BBBC44B1CB4516C0250ECC4347BC554ACC539BBC46340BD42A0A5
+ D8DB4C4E5B85509BFFA365998AE1FB93454A817D08453EE27E72F993760CB624
+ C72F593825DA485A91694D61F8C7E8A02357584B95060B4AA42EFD5268B5D798
+ 7FAC9353428791599C6E398DE844C7BED80AE4888AB28B8E3EA4A540800421E0
+ 307740675B6CB4577CB4557CB36E70B3A91CB43DEBCA3BFBCAA72CC5B5CCC4B3
+ 6CBC2FA04C5C59C63A849036BA90DDCBAC10D9569061A4B77886D6D89FE88B18
+ EEE6B5776CC7E9500C8631876168AD1C599EA51884781966AD23131EA1992ED9
+ 443B1C724D4893E80472798557B7B7CE79558E46DABE2C09CD44F9771B6A0CA4
+ 10006FC0074820030E630520E006ADDCC4048DCB597CCA059DD0B8ACD047DCC4
+ 078DC55EACD052ACFFD014BDD0169DC505FD99ADF12DD7EBCB9BD383F2857AC3
+ 0C6066C94DED5B9DD4D8CE7CD9CC8018CD4D618EF4798160B80CD328949B9C98
+ 20178DA783245CF31084297BA1730CCA3CD41A19854E488B22979172B8D4D368
+ 8E465224F50CD54FCD991EC2A169C0075FF00640E0CF2B90BB6850D1130DD108
+ 6DD115EDD0106DD6192DD6674DD64E5CD66B5DD10D7DD137EB5531EAD19C03D2
+ 568D98CBAAC9F69271779CCDD4188DECD2CCF500CF2E3D5D499490A290068C10
+ C862787E56584DECECCEEE87920969182C195F1B2A130FF18445AD91481DDAA2
+ 5D93E508AD4479DA525DCF82380C1CEA017CA0D56FE0CF448C06538002B67DDB
+ B75DDBB6ADDBB8DDFFDBBEEDDBBCCDDBB81DDCBF3DDCC59DDBC7BDDBBFCDDB26
+ 801778D00D76AD39A547CE693CCC3F7C44E258B5F24C8E824D3A3D4272B890DA
+ 4F8DC89371948B503A733C44D688D3EF6C3DB5F40CEA94453E5D72719523A3F0
+ 965198DFA3BDDFFBDDD4D0FADF000EE054FD8A4C82051E70E058FD05B26D0563
+ C0C4CAEDDB0E4ED0B61DE1CC7DDB11BED0B87DE116BEE10F2EE11E9EE1093DE1
+ 1CEEE11A8E062FB067D511DDE3321809C92FB627D9514B724FED93E388CCCB0C
+ 2553A297EAFBD23C8EDA1B224D9C1D515F18863209E3935D92E974565688C81C
+ C7D9B9F7D946CDDF52BED4A55D2FE28DDAAA5D91C272E057E0016FB0CF25E07B
+ 5680066E90DC668EFF026C70E66ABEE6C59DE66CBEE663F0022190082A2E2E80
+ F692C92A69461E84E04D8134BEDD29EDDD7EC9D7E20D198F112C8F86975E088C
+ 7B7DE4A5A086A627DF24973BAF18D4F71D9D503EE59A7E93326EE586FEE933DE
+ C9FAB296075EEA6FF0055FA00674C4E0650EDC232EDCC8FDE61D5EDBB51DE167
+ 0EEB6B4EDCC51DC62EA208754E23F0E509C5303A77B5E77A6ED86E6C86149ACE
+ 38AE18CD5C4B0C78E5D9FDE350312C819E56429A7AC58E577108DF4ACE8C9ABD
+ 244EEED9FA1DE59BDEDFD61A8E868EE5D26ECFFC05151E9007F17EE01D82044E
+ 40020CBE011B8002FB6EDBFBFEEFB70DF0FDCEEFBF2DF0BD6DF0087FF0046FF0
+ FEBEF001EFF0093FFFF00DBF01711E02C3FAEB32B2099DD00B8739D9D69DEE2E
+ 1D9446DDCDCE5E3AD71DE0879E3B97B16F5D7B863A494EDCCC98AE10D386818B
+ 942E57428DDF997EEE53EEDF28FFF3D03AE0A37EE0F25EEA1E70055FE00132A0
+ 035630056E20F110FFF0C91DF10F0FF0B8CDF00A6FF5510FF554AFF50D8F02BC
+ AE17C48AF17DC105176025A0B0908E3ED2B338CF279DCDDD5DF2E8DB93521DE0
+ D42E0C8ADCE795B928D94E5F7A3E71E810688F868BE18E19FC42EE3BCFF3A35D
+ D3EA2EEDEC2E66EF0E15499F07451FEFAF6DA5ABFE024FFFF45BDFF908AFEFFC
+ 0EFA022FFA5B4FFAFF2EFAA87FFA9FAFFAA1CFFAA3BF019C087A641F18330F96
+ FC22D9ECDCBD12C7FFF85E7B8B71DF2ED56A374E7D37B5D08AF9E6070D58C7D9
+ DCEC2319F3AA800E84519F5048DF402D3A445DEED6A8F8A28D7BC6E8E9A10EEA
+ 9B795D4BB2440D90F4468FE0599D07FE9C022F40DB9EBFF053D0F5F1FFFE083F
+ FF1B60FF5B8FFFF5DFF5F40F0828284D561F1C3D5C018A8B8C8D8E8F90919293
+ 94915C690E580D1454580E171769A2A3A40B69A6A8A7AAA669A0A06DB0B16D17
+ 6DA20BB7B8B9B75C0BBC696D0E65C2C3C20F65C60F0F1D7E5414147E65B6A2AF
+ C00E9FA7BAB8ABAAD2BC170F7ECE541D65AF659ACEE20D9EAEAFB4EFB3B3EDF3
+ F4F5F6A1AED5C465C1FDFCFFFEFC9D63968E139566141E50F902C4431E871E3C
+ F07943514D08122FFF9A4C41B1A1239B8E1B3E821C49D26349922243824C79B2
+ A5CA922C57BA9C39460C063C3D2AE9DCC9B367A505DFC25181768D15A951A992
+ 6E63858F962C50B6B2E9E2650AD8B064C8921D7B80A5438385141A94E392886C
+ 2BABD6B0F5CAB674D5AD0B653685EDE0205E19AFCEBE385B57371FBCBFF2EE09
+ 1EDC8A56B07D8813230607562F95065F29B429138E0FC4881EAEF06168518718
+ 1F1C51820CED92F4CCD3A853AB563DA6909024897CCA9E4DFBD1250704FD786A
+ 63F428D2B6A872716B272FAAD4A9550F233BB6156B5782CFA2C50E60F617AC50
+ BB8E034F43F69BDC06E4CCE14DF7981D71C0EF06ABB757D8F0E1610101CA1788
+ 05FA5EDD1D3A04C0FF54F932C42B6F008144082188F1C246AB25E892050A36E8
+ E048638C80010767D466E1853D91D506160691534B6FBE6DA7542AA3B8D28A71
+ C7AD65CA05D614C31C56CE79D5805E0D38C0DD7464DDE2162F54B135622F707D
+ 47D72CC18CA7D733BBF9150F7AEB350955535611F3DE94F055590C337A7D511E
+ 3F0E50C72233963D8499666F7880840C055A81C6141B98F6A0836ECE14E79B34
+ 15C2011118E6A96724693CB0C9630FD818A26F238AB84D2929E6429561CDC1C8
+ 1557CF2104CD05BD94451D5998E6C8A3764A75E7E75E7439A58C5CEA98A7247A
+ 8139A95E61B0B428E57CB0D2671F92B32CA0082F0E7440051F793C2466667C00
+ 01049A628C30069BFF1B30A86CB2CC2ECB6047CE829443B320456B2DB5D14E7B
+ EDB6D8763B2DB41D4538219E7B96BB671A7189132A88841AFA23896E254A9528
+ 56399A0C168FE61759580FF0662B8ED45D8A4B8F522D05E4A7737DC22238721D
+ C957604B469C9EAA4DB2FA9E6218EFC3589680DAB8404E8A0085C5AEBC6216D1
+ 665F7C71260956348142B4232D3BD3B3CCC65CF38227D13C73B725E95C6D4963
+ BC6008B9E6165DDB02B91E345439A10C1A62A1501B9C6876405985EFBD8FE28B
+ 457DD0AD536BA50167AAE95A040B179C3708F365587DFB72A2F6791253AC6A7B
+ FABC1ADFDDFF0C849033BA7DB2400B442FD04607147C51B2C9115194870C24E8
+ 318605DB428EADE4FF902B4B79B3975BCE6DE5C9663EB9E69F770BFAB353BC80
+ C16BD3196D6EEA95701154336FB3EB74D4504F5DF02FC1640DE9D65BEBFB9D79
+ 51917569A664ABE8E3C06D28B49727D68CDAF65049BA2371AA720B76E22B17E7
+ AD3D95C2BCB771E1E55D43000C492C22B8575FF887D91B5F64B1720A2F24EB46
+ E4A3636EADE7F487BEB9E8FCEF6F414D7810421A54A73AD64DE23678014F196A
+ C10DA795C25DC0B19D8A5A110CADED8E775BF343D776F3941B896D6C9B9297E0
+ D0013D7E380F324A838CA9A4F797EA552C1FAEAA12DEF0A6B782F48D373CF840
+ 06C817B22095C95726A3C81B9030A0158CA1739AAB9C129788C42572EE894E54
+ 6213A328C5282271FF8A94732216FF27A1431890801642C54E7891BCAF40CF6F
+ 0E7C1A046B37357A39006B18C4E032BE42A340D5CD6FC313DBC02488B4917142
+ 37C9F04A3394F698F0410C552E7C21A332C6C8AB60097C6A4B430A7298013070
+ 873AE85A82E17E859989E8A5882F38E215A138BA2CD6AF94A81CA529F5673FFD
+ AD92731B00E021C088A1EE4CA62FD83920D20877100F35308DBFA15D042548C1
+ 73C4B1035DE9CA1C25D52F6AF445781F04A1F114A5A3C1C10E3F82244F2155B8
+ 40B8B53091848161F666182B61B0CD86BB59800444C0031E10A005B1B90465BE
+ D02BC449643340B008098C45C57EFAB38AFF0CA840FDB9452A22B126A7830D2D
+ 2D8409AEE5C71894FF3AE0E0D41128603A50986C4C142D2E984C6422538307D1
+ 8B1F3CA6235B582A9A9B0AE1713231C86530A3318513C7633C348FB881D37A50
+ 1AA795B6B7538635434B9194400A24E0051E70A005705804171C1086F4D93322
+ 00E2431688A591825A919403CDAA56B1BA5525025008205BA84F1048AA3F8E45
+ 124B25DC7D1678228B3E10A3C3D40E8B8CD9BB8E2A1332E9E8401B5277D2B045
+ B378659B9735C302D28218D66D1DB0A33CA677D3703A2586DD2B270D9F43AA1B
+ 2E400412C86C0ABC30B4B22C200E61A000AFEAC9493EF06140696283050EB0DA
+ CAB11672AFB5400E2A375BD8BAF6B6B6CD6D6B751BDBDEE276B7B2FDAD6F797B
+ DB58DAE44E62E509FF1973D5B0980EC58EA7688429DEB80987ED461A6E95065C
+ 9362BB8529D3A3F909AF1F22A3A50E5C00127D45E91EA74295A4B9EDA732551A
+ 79C0638CBA2CA9B14EB25823F7EB5348B2230DEB14AA505340000EC00064AE23
+ 83682302C4CC00284032609C158ED8D50A5BF8C215AE8921C29ADC49088E6187
+ 55876ECA61AB5B4D46577BFB633365E7D6ED4A8D2D73056F78673C5E8474A20D
+ 96085B1E8997D2E24D575721868C06C7BBAF9962811FD7C1AF22DDB30F724E76
+ 3C7C63873A334B65A17E20801552C405C8D08C1FDA937D4394F081663BDCE012
+ 97CCAD65AD9A83CB5A34A31972B5056E9BE59C6636D7D9B66F6E6D9EDB1CB410
+ CCB2C396E0421961FF9AA5983AC60F0FA014DAC26168F08DA31CBFCCAE8BDF65
+ 36607065C6F9F1C332B2B997443322BD3A566F8F73D48ABBC0D76188BE57A444
+ 8C682E5D877A4A36514E9BBC53EE69EF7B403D7228048CD9A18A60921F684158
+ E1A2AB303DD503610E01FC1E87E128C6B9D9027D76856BCB06A109F08B1D2623
+ 65521C62F2F4CD1AF5E1B6B72B9ADD764D3A5EC259188D37ADE9C29A7580B7D2
+ 71BC4FFA571E11EF178C21CF5C906C8D0AD638859A0E947D637D0F56D54D86E5
+ 8C6CBFF39D0E05D6A2CA1097400E390006720125B40D69304428B2328C4C61CD
+ 20AF73C8472EF29293FCE4264F39CA57BEDA298CC0CF1C06B489FD849042DBBC
+ D18F810C0A1B5DE8FF12CEA2DC4739F7BBDCF81C768761C835768C274A3CEF80
+ 35BD2C7FDD05A94F4CAA83348028F3685E18766E90301C79E004AF476120BB5F
+ C4E4EE9187B62395310B71767E80004280436CD240861995C99EA66508129CE0
+ 71E2FA9DCE7F2FF39C052FDCDBBA19F0881F6EE97440A1F2C99C8C34EFB6E427
+ 7FD8C7689A1F4D03BA76D7F8E2AA0D84DD2ED5205ECD1AD1A7DBC6AFEA5D5191
+ F675F5AD617E3814880234D866E3A124D6D5B056B2C1C94E4E85E72DDC05294F
+ A0221EF1491698870158C03C0F87993C0048EF1719010B6CCBF2EAABFCFAD6CF
+ 3EF6EB3CAD17E8000F5B707C725D778E7DDDFC483C4FFFF9E56B75296B3EE89C
+ E72E2B2AC86EA413FFF9A7E0F9443C43DD087AA79E16C75063A0C2257DD11E17
+ E00466A0056F200CCB701022E67AB81476D7B348B5568191750C9A005396874C
+ 02A65954365499555405D6038EA77C7EC0109C743213212C6832026CB066D4B7
+ 7D21475C2C1783DA378332785B07506DDF7706E2B75026E88092F71894D76D39
+ D73688F673EFF756F157521BC535F6277A42D800FDD20B4AC57F9F867A1F5435
+ 5CD136F97748B2D0064E00013F00005A90076F744E7B7175E400764DD2067C00
+ 0566308773C8007ED00E74C37B920510CDA386F3355E7E407CC4970229F07680
+ 13324C350325F32B62720559305521104AC9027239307295B85A977800997800
+ 96A86699988969F6FF896AC68998E889A6B85AA4A889A7A88AA8688A1BE07D78
+ D0023FA83AA65006A1A57E6EA31B5D617EB8D8739AC669541006DDB4849B3769
+ 3AA26E80687FCF238C97046A96627AFE07146F1406A77675FC300DCE140B4E40
+ 0710D08D00A004255043CE7575F5E586F75006500000DCD88DDD480766500278
+ 883D65A7185C218085E636572788835888B148346DA060A3C54957E001595026
+ C4620553908337A8900CB990D5C783E0876D7B0217B3725888665FC1305E4528
+ 0E23D68583D409DDC46216257425050CCF118502B83CBCC17FA0068D7E856F28
+ E66D98072561D8065140070010034FF003104007E00862F3B50E02976406E80A
+ 6F60063C89936600FF00EA98945AF073F87070BED77BBB5856DAA442FA28886E
+ 9701B21832654001FE515A13B132D2B7019C388A68D98A95988A6779966B9996
+ 6E7996AD38977259979CF8966FD9967479976D19979C089187488BE9828BFC12
+ 51DDC15C79818BE1D322E84023BA9679EF4792D2588FC93864CF335217B07FCE
+ C892A8C78540566854A830F050936D50024C09031950074AA0023D69064E307A
+ 9C1016E0716448660F7E0000DD98800CB09B50A00566C09A3F8000D7208FD973
+ 813C750E9C7673B2995859A98F1327405EB910C686387CC009C342021EE7900D
+ B99DDAE990B1F47D5D59342CA2564698844CE7256FB44C95D77AD6100BE0305F
+ 49B284247909C818FF85B0B934BCB1999BE908B7606950E636A6429AB290074C
+ B94330000375B00274F003EEF89A3A37486C882FED992A1D809B74A0051E9032
+ BC52024EC000BE498608F0242CA25354C969EB091EE400711540652B9A592D5A
+ 65C6179848B3090399829D742617F1022FD8973C6A973DFAA33CDA8A403AA444
+ 5AA441DA966CA00332D00299692EC0777E7C03697C459FE046103DE775046815
+ 8FE436C6A084C4184C22D29F778192A3A7741EC399FAD97F82A33735171647F6
+ 6A4E21A06A00002A900176BA4319C00708009C00C000E0516490814C48561C5A
+ D08D0AA88B60A2061DAA0516EA01FA358F189892F7B886C8940CCD9995C66760
+ B7920684B349F5D4FF4952652621A003C642666C09976976AA7B89AA23A7AA3E
+ BAAAB05A979B4872DE8701E1B927E26658D0D08CF2B6A9C9934D333594F63519
+ E8306E82F2A54C3874BF7A75A2777FE44117BC9AA6FA2938B9F25206B1254A22
+ A0B040A0005007A869A7078AA031809B10600650101629667B837A015FC08D4A
+ F00558500B96768279D0A108809B4A100DA0A08753694E296958560748DD73A9
+ 985A88E3432E17B0061DF00557F0A9A0FA06A715021360206669A4167BB1189B
+ B11A6B016C6005212004E7B527507A6824D67F8E700956916989D59E758191C5
+ 6A5DC389AC605A2870010E96694689F9688689A69CA954620A659637628B15A7
+ DAFA05BFF905779AFFB4DFCAA8DE08051EA081AD27700C00012AE0044B971CBA
+ E20125C00072C8A07C409C89C13DBB48687FE87A5C42B0CD69B02D000365F18F
+ 14502696613257700529E30168B202233089AEBAB770998AA9DAB7801BAB7C2B
+ 72836B971D7B3A6720913E31799362853D2B30C9D10FFD060CB190096DE3A6D7
+ 5022323B74BF3010A2C775EA22A5D28A850183B5552794DD1331DA1A0B7EB094
+ DE9AB4778A9AA839AEDC68866A107C6C980C48690679E0071F823BC5C6A15080
+ 007440074E3076242A1FC6A491956779F8720C7501602B3ABD1240BDD4EBA2D5
+ 9BBD2BEA7614722BA055380C26B72B88A36230061A7BBEE89BBE199B031DCB78
+ 598621505A98A3CBFF3ADEF058D5D0B299C06859927FF8808D5F1A35B85395A0
+ 1BBA3B3BBFA146A5945156EBB04003170FAB1B0B546006745007765A07311003
+ B09BB4316006ED88002510536ED354F89A0762E10AD4450179B0B5C38B9B5020
+ 8F8D742FD934A9CE1B285C720AD81B712F9AC32C5A659C95013E980817100733
+ 726CF7A4324E60202C50B1EABBC44CBCC439E0B1DD8B2121F65C2BE9927DF569
+ DAF058ED298EE2F05F9ADBBFC43822B0A00C356695E1130A078C293C7B2BF439
+ 10A7FBA62CF4C0B2D000AEFBAD767AC1141CBB785A074849B5E0A84D1EB0A008
+ 900709D1B2A69605F5EA04BD09003FA005C84B6BCA8181BE1364023B70366CBD
+ DA9BC9988CC94465FF08609508333A03BDA27112C1827C2706D3D7C4AABCCA18
+ DBBE14A2B83A717E5E73493CEB8CF7661DF8FBB2CB13B3FD0B99F2B90A00E853
+ 6DCAA51E034D2855CB285B7E7BC34D11E8C0720C0B743CC1195C07169CC77A9C
+ 9A4A90944AC000E29007ACA9044EC0076211800D5026C2BBC210A0052EBC535B
+ 812F99F652F7287CA92B0D3A7CC3D96BCFF51C82EE64606D7B820CF62B032911
+ 6F6B11E5BBA3AC7CD008AD97AEFCBEB411640B2475D054CBBD5A1DEE60B929C6
+ 175F7C3DFF3B1C234A7B7FE821560875D154CB9E09A8B79764A3F9CCB0D0BA2A
+ F0BAD40CAE151C03792CBB788A04ABD99A4E205AB8E99A6AF00657F7531EA006
+ 2AAC05C4FB030CF0FFC8AFD2CEBC9369664C5F936B1C9A1CD59B2CD5D50B6CB1
+ F82F6DD0540E918279B01954F006FA642C9C88030740D6643DD6659DD666ADD6
+ 67B9D667CDD66F1DD76D3DD768BDD6685DD770CDD6786DD72F40024705CB9320
+ CBFFB50B12AD9FF342419A708F91D4148CDD562DB614FB7A76A7DB861FA28523
+ 7DC5D4E17978E1180AB44060A8D2B110CDD65C075AF0D2775ACDD61CBB7540BC
+ B9C90008A0002A00054ED0D314E1102530D4BE59BC5F4B811A73411F05CFCE55
+ C90C940B537DBD545DDC84F87607D61DFE7C6C01DD10C4320695F8D66D29D777
+ DD97D4BDCAD9CDA3D69DD6DCDDA34FECBE801D0941E6213F2775858DA6543119
+ B382D1D3A0D160ACFF794C31A28C2917677C0A2875D92C39999CD67A33990FA0
+ DD0692010B11AC02189CB4167CE0A77DC14A8BA71970AF64C88EDBEC0425A006
+ 161E051DEAA15AA004F8DA1464A7D4C8D43B32127C238664D8A01615B0C9297E
+ DC2CBEA285680859B6006B4005FF6CA36F9005765B203A9A036E9DD73DFEE36C
+ 4D033E3EE4405EE4447EE4424ED6429E03DEC7015B401BB2DC86B8143C06EC8C
+ 984073FB1B2AF0BDE59AE74C928B98515AC0F92D36FB6D92C0FD5CD650530FFC
+ 057238E000E09AB040BC329DC11980C7B06BE77A4C00ACCD8E748000B2ED0480
+ AEC8BD49D41C5CAE58402FB7E422AA16E290D280603153F3AC16D850DC2D5EE9
+ 12A7433E481D6D00FF069E8A386412206A20618F53DDE7BBDDDE7D0042CE89A9
+ 9ED0AA4ED7409A034DA00348004FB251DEB89764E85DE57E551508C3099E90D1
+ BDECD86EE5E50468D17FA47F639EDF07CC22C0C791D193D2A4890525C0E13DF9
+ 06B0C08D3EE904AB79E0041003488BE0738EE07A1C03EBD8934FC09A7D0E05BB
+ C9B5838E0048C99365E8A78B04237194356A68795D3ADCD950BD2B9EE2D3DBEF
+ 00FFEF02CFEFFFAE0799CAB6FBC16577074462122C614602A85CB1463EF1474E
+ F1165FF1180FE407F00262800743308B9510E5C53EB9D851296AEC7FC70C751B
+ E2808BDD1E2E6F22C044EC52026E91F168CD98EC63FE16969BB33794ADA4F900
+ 4E809B0C5ABC5F70FFED2AB08E0BAAE0099EDAA9C9E0D34CAE7E4C00A9D98E66
+ E0E75A40D4EE4EAE3FC093DE88007C70155A83418E82055B6775B75714C741E9
+ 6A5FE92B6A05C98D5C0100175F1DBE63724F61360118B1013D9EE418BFD7A88E
+ E479CDF768CDF76BCDF7849FF17FCFE41DDF028B7B580AC4B22C0B0B549EC663
+ 1E3648032976148F5BEECBBEE1E5BCD72291777536B26338BFEB016C1FECF9D9
+ 35E9005120F4E66A9A749005B0F0E679908EEDF804A38DDA49EB01329DDA7580
+ ED5E0F0777BA025CCF9474A88EDDA80276E00306C0F53DA9046A700E1CF528C8
+ C035CCAA5828A20B01EFEFDCDFFD044FF0DD1FFE2B6E8855C00549305199C1F0
+ 502511388A113B7AFFF1F08FF8F13FFF184F035F05F29220F293BBFFB2000869
+ 0B5C5C01858488898A890B0B178F176D9090691795979699699B9C9C6D6D650E
+ 0F65A3A365A70EA9587E5414541D65698BB38B865C0B69A01D7E14145FAE1D0F
+ 0E928F929FC79F0E516610744A4E0CD166745F9F74667E69D1003F103F003175
+ 19E331E51904E31975E6E3752A100017B730E31F7AEF10F9FA10472E41412282
+ D87181AF991935581E245CF8A094C25D7E3A6029236953A38B18175490B0B123
+ C78F1E43821C29D2638A0F1F849C09106041075F7CF27898E9E14A4D3E319184
+ 2031E2458E0338800A0D4A74A8D1A2488F2A0D4A63A9D3A4509F1A3DF0620406
+ 2149586ADDCA3540FFAFAFBD1AC04AD56698D9B264DB6CBA45AB2D2243706F6D
+ D2441793DD4E73CB92C292B0A129B2A258B9F2E34096DB59B62A3928E3A7C157
+ 2A6285118B840C190525747E9861E0044A342700E8BCF904000083694A2894C0
+ DC0D000274EDC2894B473BC33B0019E020A2B7C38B0F032A54FC08EEC34EC07F
+ FF4EEC79223C1F02857EFD9EDA2B7122C50B19B337AAC0BDBBF7EFE0C38BF72E
+ 41C2490E2DB2A629B3E48B0799F0697A78E37EA798172E80E2D84F743F0DFEFA
+ E1F0DF7E011608A080FD11F55F800326682081074228A18300D290C30B5715D2
+ D586BF74E88B58A1A422E288227EF2884587D87218215A1D820B2E954C722225
+ 27E25549590DF1D5FFD774213AB04A2B54F8110B2183ACE86225A434D6CB2F54
+ 84211924C654D6461EDC00E004057920A085675084568D0374D0E14D664A8411
+ 06135A0090CF0F4AC490CE3AB2D5E60E042AECB10301BA7101070C3BF0208204
+ 76048ADC3F52FC23820827246A80737D45C7A3427C9D529120DA35724B781C71
+ 9769479A76B7E9A79876C7C3070408D1C3200EF811937CF2BDD18B0725384182
+ 186C18285554B8DEAA6BAEBCDE6A81551C64B52157607D05226065257BD6596A
+ 0962A49183E042A35D757512C9623936440A2A663D205890853DAB482E6560D1
+ 8063BD4016CC3091B42B651B0DA840070241FA9187165B7A165A167E20D01A03
+ 5F7053661843CCB0FF8C983F1810CE38049433DB383B88A942A227EC90010C88
+ 407C82085E1C2AC21E1C234A71A27A38A76D293C92A2502893BEA81D5BE3C52C
+ F3CC155891020F7870704612EB5181930740B0CA6A1E32CCCA460EFC2D886083
+ 4C27EDF48406FED7B47F4F2348B5D254676DF5D6521375E155C20ECB92871D1E
+ 0BD8D9668D6822A56C89DBD65C9CD4556D5EA240BAE374227A0BA49086157958
+ 23E49A4B8587413E590C65529AF10302E7FA61AF96F9AAA9C4BF11A9CA8D164B
+ 643EC412512020263C4FD4814E1DA4ABA3CE3B759EE045A277E6C9056F23C74E
+ 71403E74F3DCB6294F678A249562C496467AC81C3C77C37F573CCD9ADE4C0007
+ 30A8F780CFF1B18AFFD31748147D1F1B07EEAA7DAF5029BDFDF738FC8A87101A
+ 8A5D6C58632DABACB2C8AECDF6216E2312ED8B73CD486DDC7AE97832B7382A19
+ 6419F230922170010AC1152B22EC3ADCBBDAF0063A00800FE76A801FD48000C8
+ 75291F008002053AB00BC794204C6A58021534370334A9C91B4F70136D085007
+ 89C9AE6217DB4D0676B083179E003976704EEE74A72D7659A477BFD34804BA33
+ 44EE14B102474C2211C3630724C6CC3C1FC0430B88D0120734E00D79C8A2D070
+ F20620A861272FD84083F843C6329AF18C684CA31AD7C84636B2E10521E0802C
+ C446B60FA58F4478CC23591E61A9F8CD225A989891202DA198BAE9CF14DC0ACC
+ DE00182DF9FDD111FFBA68C0E07C81BE50B86B8165D10204A00019C834400D4A
+ A820BE4E680688B4E20B6FF08026CD308325F46206B05C02134EF339703C2C06
+ 12DB83EA36363B1AC2A0487CAA21C54026856206C107F9D0C20E55360A1F02AE
+ 52B7B8C8059047CD6A22D13CA3CAC019B840843684810257E0C34C6442139C50
+ 200BD5E3C9180214210A41AD9D0F4A1019D9D9CE79D6139EF8DC0F1B80B5CD61
+ 9D8F02665B9FFA060A981AF5D18F8A005CDCEE47B7BDECE82F66618C63FE270F
+ BFF98D11B9F05107A8D08A7449100BA98012E2A48485D0E481A392FCA4124239
+ CA7C286117BD788338F35002663020731C9DC1176009CBCE7D4E054A20C00E5A
+ 48271B52CC6230B0FF05EC0E55A84209C4398B41C52950C6AEDE5DE477B968C3
+ 1287C8552776F5AB4E34E256C34A56B062536749E0C205BEF91E72B2EA0DA9AC
+ 5E08C4C08236DAF5AE78CD2B5EF789812CA4615875FC82D9D24658B414B644C3
+ 20C641111A44854E8B90D772E8DD1693B70E4812A00FC04EDBDAA6A20594E547
+ 94FC02642692C04B2E900A0E74154AA900CA95569094309D891AD450821230E0
+ 1B8275E5126079059E96304DF9A0433950A7CBD519D59744CA400A8250CCA61E
+ B31BCA8CEA547BC83B4A4113907AB1A676AB79330E302F0D4948D517C4F91EA1
+ 010D9D4EB8CF4FCA38C633C6736A5B43637BD5085F32C277BE38D8671CA9D895
+ 7F0674A0020D30B3FF4ED448C612299A70D3444321B5BF10E9C5B2287D401B0E
+ 7AD1689605C26091A0306A14A328BD8B0210484DBA204341D70237C41CF48307
+ 665B5B2738611A08F0004E774B01583281A74CB82002883A31A3C60EA95CE081
+ 319DFB54082080B2D36D261FAD7AD54DE8E5015E8D3258A7ECC426527988562E
+ 6B942B908293E06167017000196670852CBA95264048B30CE64A57A49DB100FC
+ 81B35ED128E734D679CE7626E31B758004FE6E25B083D5A3A0054D0C41BCEF6F
+ 8B8DA642EB07D9271F9247222A03861B20E1465AF416919034BA9814910D1B3A
+ 460A1CE927BE00013350325DAD5DA912601B912FC42A56D0D02438C2E18A1A93
+ B9844CB8F10CA000FF8172480C51AB33AE8F692802E73A17991050260F9BC93B
+ 262B3AA37B018F12A52DB32356B388E521550B321187067C217AAD92693A57F0
+ 02ECE1F9DCE84EF77E2EC4E77E6AC5BFE913B0BC019C581311B22D96FE9DBE2D
+ 0D23BAA085C18874F062200C994A5F9A109B48C52E3AAA2E0957847EA07697A8
+ 41AC845F3C6635AEF50C669410915DA8210A2E8E4697E8A08637ACA30E6FA082
+ 6F739D6BCF85C3853EB6E1A008F58F1C1A39AA7E092976ACFB32EC622B21520E
+ FA95854EF4A19B75541C00832CE0E59EF2BE953E40D0094F58805F755BFDEA66
+ 3C000BAC2083956805D07734ACD8118BB6B1ABAD59962AF0BED7AE76C72E5847
+ B8A3EC3034DD0A4AFF4F78B38350CC032CBBA4D10290E73062B4C491416A337C
+ C143AA716D34A250828F3B8E83148886C8A1A0382DCCE1254E880103F2C05B5C
+ 33410910D8430C88BBCB9853CC0BCC4DFDB16D97644B02BEE75C70F2CF15A244
+ 2A8BF5F6451F2B58716FED1460003DB1B72238CD4B932B443D042118C118D68B
+ F5E63B9F4039E0730FDE7DBEFFCEFBFACB6A9F412B9CEFEE3BF2996FBF1BFF06
+ 2EC9824FD8A2D20ACC655DD100905A427E104FB0488F815A33F0E1F05FA160BE
+ 38D3F82F38AE7251C0255000059E63060DD101614005255007BB856333A0382F
+ 575431274C15932833977A4566647CD0103AC76496066D7603655C1501243882
+ 2468072578652488FF442588822988652D287429E87BA5727E65400536016E33
+ 71055DA41331701F4001674680037076676F1667449884FB51674C8884459884
+ 4DB88450E8844A58854628856CA00321E07560D72383F6855F982C0F877EF353
+ 868A76861871233FC717DA8237A9407798A5597EA3778241495430119A7560E0
+ 17373212251D605287970587E76A50902F2E56027CD0188E13066A508885A805
+ 9EF3030C500773E0380D40633656428AB30EBF767AA6A71CAA178AC8165C5060
+ 49D8E16C1701820C810546977BADF88AB9C76538C33C49B000EC814AAC621357
+ C083E1B466E47600F4F47CC2786E16C2753D4004F02670D8B78C04955896E03B
+ DE178DFB262D7AC1FF4C9016510B677E14462E7CF7187E506971A168F4D36F11
+ 670C0E300D51F00682483679000D0CC078572041FFD70003882FF81226A41303
+ 2540016180532AB7533300002A50077B00739F383217E85436B70F005002AF97
+ 1D08762DD9C2102B58822C688217999116B99115D9912F78912FF8825044002D
+ 7006555006644005A9E474AD7278BE380248F38452389353D8844F2893359993
+ 3749853B49933B89934C588CE30304A165473D6276875576649794CE8876DCC7
+ 7650E9584FB632A1E060E57259EDA7167D44407B774AE8E30001640B65388EF2
+ A740BCA6057C005783687114C0076AE0042590078D238F0C802F1584006AA206
+ 5D00069947018DB1FF5B2A074B743090A34727C57590A0686CA9573BF0B00FF0
+ A0065615916F081D8DC28AAE7899B098995B064552B4059E150714407CBB0857
+ 5EB46662E066C3989AE7A6753A800148C09695842CF4C68CB4A95897268DB899
+ 7E2AE38568015AED571816950B7A632CDF0896D198119F267892D0000EE40169
+ 491FB0F915CE1941FFE704908800A1C40D25000755500573D00508E88FAD3498
+ 04699088794333A7902E4500A0E70D18D400B0A7182AB38AD01192F6799FF899
+ 9FFAB99F56807460A016C2D7564303347C804E3C91036EF6933AB9A00ADAA00C
+ FAA00E1AA14448032C2006242003AE52367704861CDAA1224209D09876226A86
+ 57053817F0869116FF69C3F90AC0592490349CBF702C4E39A2E2989C837401A1
+ C1005C441FEB08161C855211540215B45266A026E1D0055DE09D73602697D84A
+ 0D349066803A22537A31877A8A5928C836000440001FC00CFBA004192199F309
+ 1D13B99FFA0992661A92689A9F56804DA5D203DC840558A245D273055F000432
+ C00053E7930B2A8540C99348E8A75618A865D49383CAA7FC9103FB4402AF692C
+ F1369B904A9BEA730C04867751C976FD461928BA18A07587C0293FE452870035
+ 16F6B616DD978A30E29099F0084E1062CE9996EB887F8FE1498D53624A600698
+ 215C7560795BE09D7BD78F99C304A596AB02799E14939035B79EE8C04206D00D
+ 6B02050755481349FF99F599A6D67AADD8BA82E6913367400417F03C027A66A3
+ 797C2130002C1084109AAE12BAAEEADAAE3769212370A144295861B7944879AF
+ F69AAFC8F28C6977A9B9D908D7A2A2FED3015AE9A2C2B951BE305A10352998FA
+ 4C9A1462ABFA06DEC000F3311FD0897F16F7A39E9407446A06D30001600007DC
+ 79924ADA41615002DFE0AC74B202C61A108AF90F3EF00E5ABAA5343B0105E10D
+ 90197B273AA6F4B910F8B9A61FC99141EB91409BAD50C4015D200F6DE0073968
+ 5E57D00B59F0456230024723A87CFAA7826AA85178A85C6B935D3B854B08AF24
+ 800744697D917AB6929A162DC336B8E9AF37920CE5C20BC05018CE2217A0A024
+ 83010B6EF87051B9FF0093A30F740005DAE0AC00F0AACF89B13E4AAB1CEBB11E
+ FB0D22FBB823DB0592C64151A00F23E0B1A063AC178843DDA004E7C001CB7A0E
+ 2BE0ACDDA09BD3DAB30F100177A0BAAC1B92ABFBBA2FB8BA2408BBB3DBBAB65B
+ BBB04BBBB69BBBACDB9F52841D373853C417342B5634547B000590BC44A8BC0D
+ CABC50C8BCD01BA1CECBAEC95B84D3BBBC0A4A032F20AF81E6A1DEEBBDA5CA73
+ 6848A3258A9C37729509DB01C669B0172069A7D470295355E53B3F5EEA982A4B
+ 275A30133BFA053D0A9B1C555345FAB14AC09D905B05493A07959807CCA00223
+ 800778800123405CBA647A7B108A4E250276D00D063001344BB3E74000270401
+ F279BAD4EAB3B16BFF9FABEB82FA29BBF6A9C2B5FBC227ECBA1180821280121C
+ B0053CF33C5844A7F28113E8643D2C9003D4EBAE443CC4463C8517220632B041
+ CA88B64E9CB6CCF243FDDAB6C719095D395A74EBA28EE000DD0850DF18707B64
+ 116CCB05DCA00F21ACB20610263A1A4E870B9D894B052F0600459A196A500504
+ 0CB93050057EC000B7F1C01880010E1C028A9330131C739B1B108B321C1BBCA5
+ E790011C300E2BA00F3B4BC2A83BC3AC0BBB28C8BB98CCBA997CC996CCBB9DAC
+ C99FECC99D1CCA35D35D2D9051EDD1B4B908577245023E91B5D85B93D75BBD0C
+ 5ACBCFFB93B8ACCB124AA14A9C055DA0AF4C89AF4A59CC847576DBD7B0E2188D
+ E7BB0AC1D06C4482FF24082B5AAF301128E36093718A5CF039DE200344E004DC
+ 0C0106600303000F4EA0BFCF79B1A7D60B6952A4EFA00473D09D772CB255D000
+ 0C202674F0C7FAACCF78F0B72AF004856C43C536737650102A30B38C8C0E1C30
+ 018B920FD852C2106DC230CCC2148DC22558D1136DA6BACBC22948D1BEE75D60
+ 40110FD0007C60135B449A5237027555C42C7DC42EFDA0BE8C0759C0324F5CD3
+ 92BA3E943AC663E98169B8B32CB31644B2C55DAC6188045169C14799B1264040
+ 0470C0D40CA02666300152FD0E0781135C747F75E40B1E5B1AF0C0077260C776
+ 0CB973E03999B1CF660DC8355003B9E4633387C1EFF0033F500403B002A19B0E
+ 133000E5DC0D3C1BFFD1D4EAC977F0D77E0DD8A29CBB822DD87EADBA86FDBA89
+ 1DD8841D013713454AC7050F004EC41B3D7C0004970D046094A0D5DBD99EFDD9
+ A01DDAA23DDAA45DDAA18D032C60150DF0BDACDDDAC84C4821CAD3D09855B629
+ 3F278A055E1924D6C143F1CB2EFAF0031E708C3DB0273D00037520D553DD0C25
+ 504E6979B883480194172674A206A9D09DF26CC71E8000DE5003AD79D618D09A
+ 3AF0C024D00D09F30402ED544120002EB026074DD7092DBA78DDD01080BAF44D
+ 7BBBEBC9198DBB87BDD1F87DDFFACDBBFFADBA34EC65DB76B75F506648706633
+ 91A12510033D91033460CB2F2DE1BB8CBD15CECBEA1ABD056004153A3E376DD3
+ 208ED38536C5CB1CFF998004A28E940BE6429C6D8873DBB2B0FA1002C33DE37B
+ B2273080041F60B3F0B0DCCEF9AA32A596BF004A496D6A8071DD555053745203
+ 7EECDD671D0265FCCF2F34280270032ED00D076D03A1FBC81CB002788DD7FAC0
+ D7F56D07AF2BE688ADC9644ED88A9DE602AEE67770E66EAEC9827DE6852DBB1B
+ 312A4290CA174006EEA1060A1E4EE385044E30573069E1A65DE8867EE888EED9
+ 34300662E0E1C24CCCC3FCE8927ED4A728DB4CC60914B600A2E0189C661DD2C5
+ 4CD2B118FA30002951DCA60E03A80E032D4000EF400771D9C3CDAD968DA8053F
+ 400751B0047110072362DDA701012E30B64CBECFDDFDC73AA00327F4CF013DD0
+ 37D007549E0FE3BCFF3CA14B005CDEE5F25DDFF43DD8FB9DEDD8BEEDDADEED83
+ DDA6D9D4023DE00073400158C49235114EF4E101C6EB02421CBDB34CE1D6EBD9
+ F10EEFF25EEFF38EEFF8DED9D84B03DADBE87FB0054E2C9B1FFEE1942EC6961E
+ A6CF54BEB78D2E83911052F5E28E320AFAB00252FD011753DCA99EEA1CF00D3C
+ AEBF3EBE620CE0880E84EBBA5E2272F000A0010F21B0E4C1EEDD7850ECDC40C8
+ B323050270F352D0ACCFDEC80C33EDD4FEE5D60ED17F3DF4445FF4465FE6469F
+ F44ABFF44CDFF4442F8BE37306ED4BD27C0E6E79A05AE94402419CE85CDFF55E
+ FFD9319D051EDAC4AECDDA62B87D09DF3B79E1BE76E807BBCDDBD2E117A38EDC
+ 1380F1A97E312D40FF0F30900566066E7CC000A1840003282F4B3004B91E0721
+ 420550F00E06D0F24C3EEC90AFCFDD8D07A141272AE003017103382F05BFC1C1
+ EF2DED5DFEF3F910F43D3BF4655EE6623EE7A83FF4A99FE66F6EF4AD8FF4AC3F
+ FB73DEFAB11F0112C003357892A1497CF29107800ECB3129DAFA2EEFFC7EEFC8
+ 6FEFCA3FEFC70FEFDA3BB67FC08C7257F0213EA92D93F6DA513F9C5A870ABB4C
+ BAA332154FF7525D0779AFEAE69FF72DD00296ED9C50C0525A70CF003003871F
+ 075B009A98516A8EFFF2FABFCF2100082C3F103F3E025252411512031304198F
+ 19902B0395960306109A0F589C9E9DA09F9E77A4A5A6A7A8A9AAABACADAEA612
+ 291F045D170B650DFF5779BB791EBE79577C7C6F482124232C3405CBCCCDCECF
+ D00509D1D4D5D6D7CC342F62485D6D0EE0DFE10EE2650F0F6565E3DFE2E4E0EE
+ E3F1F0F3EDEDEFE46D171769690BFEFF00030AF4C74F1FB8077E2850F8D2A0C3
+ 3907E9224A34674E1384463626649CC051460B1819607CCCD0A224855D1E7A79
+ 80A2048116285000D09931E4C190380F3C28A1030100093C18820A1D1A548750
+ A3458F0AC5536350A14441820C98C5E1D1A30F942E59CAA4299457515E4F4528
+ 359654D9556755A57DC56A6DAB085624F0C0D3629F033F6F52FAF275C583B037
+ 403CC8303682068E02879F25460C6D71B3C59099455E36993165C998ABE1D046
+ 0289902DEED8E1FBFF56068BE987A3DB885E1DBA35EBD7AE53E7E337B0B6C07E
+ B8D3E87BD04021950E58D2419C28119DC5151B392A9F30ABA4C8E71F5B64E8D5
+ 8BA54B280C00006032E4E603260006D5900194A8F9F3E883720891A99088208C
+ EA58959401ABD64B5C2180DDFFB5958053FFB1A54A80000A68CA7F0422586005
+ 3C7CC081105D3880C50C7CFCB2974A6F0026830C35BC908332CC4C538D88CE90
+ 88CD89282E43A289056823860C54DC730F699CF8110670E8A823E38E3CF6E8E3
+ 8FAAD1869B6D44FEC3C5026D744005157E74922371C4598491465426E70807D2
+ 6549124904A4C4404B2F6547077743CC905D4F4E70C0011EE50D8514066FC6A9
+ D45278A450C40F85FF443515017C4252DF7D5AE5F7D5A06019C8168103A682A8
+ 808BA255410A3AE02104175C944141857AEDC5C7156F0823D8316CE490E2A8A4
+ 966ACD66DB2001C66BAA99D341077EBC7ADA0310AD131B6CB8DE4A0F3EFA0859
+ 64915C5C20E143E9A0F32494651CC75172562A4740495A6AC90103085C979D0A
+ 6446C1930A329CD1829A6C62D0667AE48A8B81151F1EF1830152C9E7A7241F00
+ 1AA845FCD5DB49290AE67B87BE09E2EBAF82A4E81BF0BE040F6C70C104039C30
+ C2F94690021E1C9C014E427D51B79707C150F0A9182CB0E198A920877C220E2C
+ 8821693DF070F26AACAFE228DCAEF2A01CF33B32EFCACE6C450E39A440FAE443
+ A3B1C8A623659544FF2FBBDC23DF66C9017D75586BC60F512C3104143C0D80C7
+ 10420801EEB849750DE79C41E1A1C31846D050840A10F830009F55F96983BCF3
+ 76652F7FFD1E2C30C3FEDA9D37DE07F25DA0C2752F7C470AB23CABCF1A4B58B8
+ 575FC3BC91C760C7B080C3C78A6566D9E5D754168DE69657866A6743ACA69A03
+ 0FAC0CAB1FA837199C8EB9B6AEABEBE1E4B3CFCE01E9BC80ED0B1C79641AA4BD
+ 532C94C731AB5CB3CAD581E5965A6650157666D01145770CD0A1C2083A7C9081
+ 102D68CD66B8E59A87070156B051360D39A8A0C2DAF349624356705792DFDC84
+ EE2B00BF043731FFC2F3D38FE0FDFA27CC3FFFF80BE0FEF8F53F04C1E5037800
+ 03391E4085BC58ECFF626FF802108A11B92224661A180C913436A8A20DAE4883
+ 190C21073D48C20F76B083193CE10639E399191D040B1D0843AC6CC4321CE5C8
+ 563FCAA10E65A41AD5F4AA1F00B19D10FD71A4DBF1AE87103987122532B48C38
+ 91684F5C4E08D4A4BC2A2E4D4D75300304A23684E8FD60042310C3141F94B570
+ 95C728724A0A523E200651D1E08D343000FADAF688B7B50F3F1621941E3901B8
+ 7F09106FFDBB5BFF0616C8BD05727E0EC3800CB0D4065C38F06229E1C3172890
+ 05C184400C23C801E544C6C94E2E838542B859234B07AB52CEB094C0595DEC5C
+ C7CAD7DD4A76B421C8ED6639C45AEAA691143956B234B102A3F9924ACB09E62C
+ AC484C0EC4A00471FF1882B6BE280631E88004E2CA9AD6D60414AE1125526C7A
+ 011CE1C802F4BD2B03ECBBA3FBE8B54742019080F94BE71FF375CE75B67380F2
+ D3DF39DF994EB81885917FA040A72009492038EE922F2802084B48D00F8AD084
+ 051D21420DAA501276B00823E8CCAA520643539A1275B03A8D3A5847B38ECEEC
+ A3309BC73D7EE82B59D6929601B940398693A32642F1A5C4630E151FB1349A72
+ 406A6A000004C2884930EA608A43F81635DDA4146CEA409BE3334C37FB445370
+ 8A336E102827DDD6E9BF42A293AAF0646756055840770AC00A8FC20096B6D086
+ 2D34800FBCE0E71B16A20619800A449E54615C47788D04908F7A1C180DE94C77
+ CABEB62C952FEBE1FFE85A49D857FA7076B543E94909A21B958E6E89C11B1E47
+ 9023D9605A9600572C660690909D1F984107CD6C661875A0A6AC51937B6E6293
+ 0E3EB44D1A0C60056D5B9A245610CEA7BE4FAA5F49A7000CA1DBDEE68FB7BE0D
+ AE70874BDCE21AF70E119040A438D0852D38F2811004021F9020831888C10520
+ 3A6842B5CBDDED7AB7BBE09586117240BD2CFCE11D2A9321ACD44BC3F59ED249
+ 3B8CAF7C77349B93DA57B1B71396398CA389293DD100728429308559153AD291
+ 0010285968C3C8D3E56ECD5C5F438A9D9401C702B060056CB30A019E0A2841C1
+ 0F2CF98BA73A434CE2AE9678802336716FE3C9E2138BF8C4294690156421A932
+ 6C414979519C2F84FF41C962708C0D3430423416AAC167107944283AB2347040
+ 5E1D202174AEB2A85F67983A967522B08375656159094B7EDC77884154E97094
+ 35E0B701D800BD2CB3658FD6D4F93C4206A18D3318A9B7DC69A2964D5668ED1B
+ 7DB0023F4562C31CBECF6D3F1C0AE31ABAB83738B4A2839BE84557E0517421C2
+ 05CA4005E82E4E92405003615820E4F07AFABBA0FEB4A7C71B51E692AEA25396
+ B24553890E1C86B466B0F6A8CD7AB80FFC7E99965EFEC6035CFADF33CBB1974F
+ 8CE9721C649502F389007860302617DC4C36D9797B18E0410E8A90546D60783E
+ 55097487F348E84F2CFADBE00EB7B8757B87B908010CCE4D08A654B2B84E0161
+ 3035C8245C1BAA42FF25DBBBC8F4CEB7BD994C3D214439D5003F1DCB5063AB2D
+ 6B59CB5DB6B5C271C73B0744D69798F0B51C6D20EC353BC2CD07AE439C996D32
+ 2C4D53087840979E0740023FC976C3B5D5F6A071EB090124DA7E7D1080FD5EEE
+ 7299D73CD134A779CCE767BF99DFDCE631C739D06DDEE89AFBFCE8461740CC61
+ FE73A4EB5CE6C8859467F6518619E8022517130610F2E08410C41BBBA20EB5D8
+ C34E761C4034044248EF0CD9CBF6B553D9CAAB0BAC48E74BF7D891F4D6B8CB6F
+ 1B784D250003E0CC7FFFB5802D3E8B631B1ED9CBE6694F9D89F62D70E0A84610
+ 321C8BF0041BD0517975D0B6BCF2C3803CB01C14E30EBDE847EF5B52C845525B
+ E8028E75EC170FB8FF7B4324E098A8F02D42147AB7DE634FA8ED6BBF8CF18A51
+ 08370AB8F05129AB568BF2E0066F5DC2F1AED8349099591197F89907B0918A07
+ F3F0D8DF78E2C5C801316C40CFAEB581C9259179CD6F5B13D5D242E7FDF0E1FC
+ 093DE7EE8FBFD37F2EF4F9C1BFFEF4277AFCF15FF4F7373DE9F7477F8F824010
+ 820B1450316AF505C4C059B2D769B947760F188118446A21F01BAA5643C3973A
+ C5271C1C0552B1E681B2763377B7700BC77719217D28487D2FB51C4E44711F50
+ 78D88778CAC65323805D65B3196F54048DE067CA132FE6777E10502D2EF1124E
+ 90070D602F8C7668FD177FC35574E9E484A1B784F6E75B52383F566005E2D202
+ 5DC01BFAC44F5947FF0CC6F002E2437B0E4550BB37500C456429D4506BB8229B
+ F1227F906AC0C157172870B2E22458967CC8E71AB4B67C24683B84000169164C
+ D1B715D2570914575983178386B771B1E731233701C4940113F05A3F28681621
+ 845A10260CE00425C007EC975B41A774F9378AFE778AF9878AAA588AACB88AAE
+ 988AF4770756D0200F02111DF00579C00499A22912A4060C002A28940018248C
+ D2408CC2388CC8588CC9788CCAD88CCCF88CC6188DCB688C05E0022410020DE0
+ 7677886AEED58DEDD55EB2227775378E3CE4877837342C38017E274786187806
+ 1078354002304571F4488F2FC88804C04671F6212D92833B886D76748998887E
+ E9F712D8D18925A0FF067CD0109FF08A5338853E3785A8F890B0E87F12597317
+ 097F19599118599160651404F0190E708B39A6297E310CD3351835681910D892
+ 12387638608D321087A6741AA6318775D85755E6322EA4873E496B88756B6446
+ 88D3276887580392156C2F05838C185AC90047393015E3478902B97999288430
+ C1009DE88979B05638D2091CF98A6219966439966659963F37387391055DD005
+ F9E43858C78B11A4922C500434005ED25842D4B88C1E949721B497CEE8971E64
+ 042CD0194C824A36691A154587538651567643AD018292F96A1D7558BE625FE8
+ 184CBEB6792888662D588FA0598F4C997D620064FE683D6D967255394E043984
+ 59C90051500279C0FF07BFD19068799616C9911B7996BB799B1C298B0F13315B
+ 00065FA00BFC140CC3F06E4E700C9A74862EF99C2F1942E415024850934EF209
+ 8B999317A85105B7873E191A3E74990A178883B81C85D83E29086C02A694A379
+ 6C9030066F1495D6235BB36589AB095505F99A4EE0046AD0955460930F7003EF
+ 27A0048A7302EA72075AA0048AA00A5AA02ED70406AAA00C3AA10DBAA0114AA1
+ 0CDAA0196AA115DA0702EA3004F8070FB0045F9012EC967514F06EC7E0020215
+ 98D3F8A22E1AA3D008A3332AA3D389043469434AC4098AF957DFD8767688873A
+ 220FE4587796E965B69699CBB19977B48E4E8A1CA119A589D89EF93800E42395
+ 6EA69AF7890957E9FF9A075902B2F906B5090AEF07A1F467A6B8E99B69BAA618
+ 7AA1AA68A65F358BA877015870127189317E91056FD05684E102D0F9A7D14950
+ 84F922E6A53A3B0A1630C48D197887A8717CDF49587D289E433294E65994B675
+ 88EAA9949A7A8F9855A5563A0075404C04A0A55B9A1F9AA89FFCD9950D00A015
+ DAAAAEFAAAB01AABB23AABB44AABC8553D1CF0075DA06E1792759E520C215083
+ 9D768C334AACCA48ACC68AACCABAACC898ACD2C8AC0930A8329005C5A744D779
+ 0EA0A0A8DA794A2E33A49439991F386B23881B4AAA1C4CCA619D6906521A9AC0
+ C42701394C4D85045B8A9E5DBA89AF09A679C0100E41A66D4A7F097A7309FAAF
+ 656AA1A918B03700FFA106CBA0087BB01C7A8A02BBA100EBA601AB9678C096A5
+ A131AC270C5FF00559006F998403801AB2813AA8784001B3E209878A9D3EBAAD
+ 1805581C85448FEA4AAB243B3F344BE4B966E749AA1D76889A5A342C689F7D46
+ 9FA36A9FF38A9F5EAA95FBD99F0C210AB52AAB1EDAA04FDBB4AD1AB5512BB550
+ 6BB57D3038159B0E7881295E5821D4E575016504D05AB6667BB6689BB6C74898
+ 240023D75A4E3D0AA43FBA7673780E436A0F456AA4CB57AE1C71AE9AE7A406A0
+ 021317A50336595AD1543E58B4F28236AD69AF5F5A021EC0105E61B5945BB996
+ 7BB9B33A6304480E1D708077BA6340A09CCC49B632EA97A68BACA54BA3A7EB8C
+ 0500512490056987FFADFBB1A3D9BAB28BDAAD3DE99DBACB2A2445A9CA719E97
+ D89935A0946B169095603D7FA2B88B6B114178B408A906911B8A9E80B90A5AB5
+ 04EAA11A50BD3710B5D97BB50DDABD3700BEE08BB9E2EBAA4F1B0115F0534220
+ 2C6180B15F2B0C8FB3A220ABB6F45BBFF64BAC46E0BA386AADB3CBBF37A9ADC3
+ C76A90291AE01A82061C3340C9B7EA68A902E96BEE487D51144CB5D56789ABBC
+ 5AC11316D112F9891D9E08BD5FD0240D49BDAF6ABD054AC2226CB9086BC2AF1A
+ 01E6766E7EB00456F7B56BA5A235900CD12AB2CF49BA2DE97B6827BB9FC7A38C
+ A99D2D631A79B8BB462C3A1770B39695B396C03E3A8B1F9D599E124CB4BD5409
+ 4FBC9A8390C19A68FF90482B9B1E4001D2DB09E13BC6D95BC6647CC6669CC6E1
+ DB076ADCC66BECC670FCC6683CC7715CC76C2CC7753CC683130292B285B9B08B
+ 2A81927980043150036077BF889CC865EB7B3200A07B94B237D932DA38B755A6
+ 51DE9AB7E3A81A0AECB7E6C78ED1F78E8067003175C5163C0059AC094AA0C11B
+ FCBCD13BB9732CA0E50BCBDBFBCA744CCB6A2CCBB26CC6B28CBD045ABEBC8CCB
+ 639CCB63CCCBBA1CCC73CCCB144B015B984FBB08496BE5010CB0022F50977AD9
+ AC356AB62EEAAC894CB634C0024EF6072C47BB3C1AC98B5A4342BA0E5916B3AD
+ E3BB1C01BCF32A7136F082C55BCA7774CA10A0CAABCC0060AA9060CCB465AC01
+ 791CD0771CD0E10BFFD0B54CD06D3CD007BDD01AA0D0696CD06ADC049A6BB158
+ B0A796160CBDB869C3AAC81CADC8DDDC19DDA647D959CE432C8EDF7AD2E1FA0D
+ 9BCCC08AAB04F9988F6B46CA459B1FAD29841BBC9F09C90714F0959CA0014D80
+ D00CCDD03F1DD4693CD4706CD4748CD46DACD4449DD4121D9C5AF8070AC87A57
+ C02979016F7509B27D79C3C248B6D2E8D55CADBA629DBACE485E784005219DB2
+ 403CD239B993E70C9EEAFC3AEC5C8945E9C44D7CD756FC54D706D3964509764D
+ CF03C0BC3F60D336EDB85A199BB3B9D3FECCC600DDD80DFDCF900DD0033DD010
+ CDD88EFDD86F7CD998DDD899BDD9951DD99EADD9974DD997DDD9967DDA0D8D06
+ 002D8BE616210DF0FF064CF0B957B0B16FE0B13900D61D9DDBF5EB02E3B1AA3F
+ 2CCEB50B43722BB78CEAAD788BC93CE2524BCAD27FBB155A8161B3F001310DD8
+ 50857EAA8CCF86DDC15EE915A16DD96FCCC6935DC6E1FDDD8D0DDEE27DDE050D
+ D9784CDAE6BDDEE7EDDD8FDDDEF1BDD9E6FDD9F20DD14D506E74D1065DD085C7
+ 7931F1FBB1BA3DE06AEBBAB99AD6A140BB3DBAADAAE610B4F2B247AC6573EDCE
+ 8A7B6DF26C59C64BDDCC4B07844DD886ADCFB2499BFBEA09A25DE2E56DE228EE
+ D8969DE22C3EDA27DEE22DBEE2A22DE39ADD0411704F6090060EB0045777A71A
+ CB752B7A97043EE4D09ABF2350813F9CE087AA986C0D703B89BBB151C0209899
+ C971663540CFD0CDFFD7534CDD5C6A111CDEE1856DAF5B19A6FFC9DDE98DDA92
+ 7DE2E6BDE6F38DE66DFEE26FCEE6721EE76F9EE6765EE78F7DE7A85DDF6FDE04
+ 4DA05C1CB00549B0E36FD017FC24498E33182BC0022EA022678BDB6B1BE9CA0A
+ E9936EB6607DE92E0087490E3F0B4ED273D809331BD7ECA0C44419027C425B78
+ 4DC581E6D7C726DD184EB4164CD32A00E61ECEC59E18A60C190A1AA0DA000D02
+ 8DEDEBC0FEEBC2DEEBC3AE01BE0ED0BC6EEC8D9DECC7AEECC48EECC5DEECD21E
+ EDD4FEECCEBEEBC5CEECD92EECBC6E054E46056D99103976A29BC2075B670C06
+ 406D097004C7C8EE65EBEED00AEFC40AEFF2DEEE6A7B046C2B034B30E29B7EAD
+ 9F20C9C3ED76A873FF235776C9C8FD0E265889F718DD32CD6159EEEA5B4ECF34
+ CDE1D72D84D89D9549AB0662EAC8D63EED1D5FEDD7EEF1210FF2225FF2247FF2
+ 1F9FF223AFF237306327433A0798B1C88904CBC9E8447EF3CAEA02479E058E8C
+ E04BBED641DC9870472CA24E0E73BDF0AD3EB45B6AE110FFB312CFBC0040EB1D
+ FEE1601AB9AB2A0ACA1EEC5A9FF55CBFF55EDFF560FFF5621FF6643FF6665FF6
+ 687FF620D0F215DB05E9D000258A1227CAB11E80EE2E1079388FF34690E9D3EA
+ F39F07C00C0EE5297DC0EE40E59215DD2F3D0B13D0F070F3F0D35DCA8CAB0951
+ 2FF51E0E05EAB795FDA9D85E01027D00EC7DA0DA9CEFF9A26FEC9D4FFAA31FFA
+ A69FFAA8BFFA595FFFFAABEFFAAE8FEDAF7FFA9FAFFAB04FFBB8AFECA0CFF5A0
+ 5FFA1AA0B974A10F7E808BC7992113E40431800CEACEAC972EE9614DE9CFEFFC
+ CC2FFDD1AABF22DAEFFDABE0B6DBD670F732DDB96581680616A71C9CFAD2F988
+ EA0E7FD77BDDF4CAC1F88116F9106006943FF50689D30AC9EF240E026800ECFB
+ 0F081A206820822085878984828B898C888D8D89938E83948F869088878F9399
+ 87919A999D96A4928AA81A1A77563C78606D5D0D5F571E79B61EB91E57596F25
+ 0C032F45464709C5C7C6C9C8CBCACDCCCFCED1D045233A59580FD8DAD9DCDBDE
+ DDDC0FE2DD58581DE77E617E1DE9EBEDEC7EEBE7D8E2650E0E6DF8F7FBFCFDFD
+ 100021A81830C146FFC183060D7E20B0B021810903224A9C48B1E20A860C2768
+ DC386145C58F2043AA0808010002250852A25499F2644B2D5AA03060E0C4499E
+ 0EE0B42112C473A74F417D2A0115FAB368504E4447F96CD413694FA6457B362D
+ EA34AAD547372AE8902104CC960E146ADDD2958B02852F324290A8E1C24882B7
+ 70E3BE2D26B7AEDDBB74EFEA856B2487981042FEE41CFCAD30E16CE6CEB15BEC
+ 8EB1633FE51ED8D397AF32E5CB96DBFC20297005C7CF1AEB10C038FA03C49021
+ 2F32340DDA06EAD72047065CD9B2B6EDDA30A1C8B489D330A5DFC0830B1F4EBC
+ B8F1E3C8931FD7D04407060E2D6451E0C387ACAE2BD4D5C82031A22DB4BCDFA5
+ C10D3F77BC796809FF8CB020C1D5B0FBC3DBC68D2BD72131BAC78CE3C5AB2FCE
+ C1E4CCFBE4738F80FA38A0051D9CA9E099411A317890430EB906DB441735B491
+ 831E4D38A1019B0564C66D20DA969B4C0CA8F11E16961012948AA81C729425BF
+ 11024A8A89BCB8228C34BE38E38B32D2D8238F3506E9A2253A06C9E26F361A09
+ C28D3736718773D0A5D1861F5F78A0062EBABCA12510DB89C1820B72B9559798
+ E9D945E6997CA5F9169A6BAA59660E238490057C74BE279F37F6E1D7D89EF360
+ 51C67F6D0028E8654A40D0A1A10038089A46A461F481841F65388047AA65C491
+ 69906A88DAA13FD016E2A7BAC964229D209850EAA9A6A68AEAA98798DA6A22AE
+ AE1AABAAB4CACAAAFFADAFD63A2BACB6EA7AABAFBB02DBEBAA6E3067450A7808
+ 7141191D5499C7B3BA00C107106F58A9D697058817DEB6DA764B9E0B715210D9
+ 89751E268E3679BEA3AE3AECB0BB0E3693F923EFBC66700681010B22A42F840C
+ D521296A156694D046FF6A5A118701FDC0D2C22E31BCD28825908B62A9329A50
+ 311AA9563CC9C5AD724CC9AC1A77FC9BC5AFB60863AC93A0CCABC81467CC32C9
+ 1497DC72CC34EF0A82153AE0C141170E74719675B95C71C5176F2011420C23B0
+ 304C794C27D33478E63D1DB5D354435D9E7A62E0D1C0B8E54A1C8E7C88D1A718
+ 9F64EF47CF9F0362A636800070F683018A2EEAA8A399465A5A1D0D6A84A9C120
+ 210C101D9F06FE12FF4CA3926B42AA87CB9A38B08BA3DAB8B08747BEF8E3C346
+ AE38E2985F5EEAE4BA72BE39E6927FAEF9E168DCD1C4736DA4510615573C3B56
+ D07C546B34034993C9EDEDDEE63E0D0B62202198D7C0D7694E6264EBD9677F01
+ 269FF6F2FA7CD1366706907050DE097DC0AFF505538851DE1B7D903DDF069004
+ B8E082130EBCC519A73F33FAEB63DCBEFAECC7EFBEFCF0CF6F7FFDF8BFAF3FFD
+ FB63EC7FFEF43341043EB033FFF8212C40BB8E07D252031618215BC610D31124
+ 383566CC8582177C9A0437A84123C44908C10B2138EE8418C5186F4FFBE14FBC
+ 06C5427C38CF500953C2A2F2E690D230A460941A0D431465BDBA81EF50E3235F
+ E0B450B87249CE04FF5338A21297C8C4264A2E894E84A213232745264AF18A4B
+ ACE2149FB8C52E9AA00911D0C10784E0806551C075409B16107E513BDDB91177
+ 704C860B488084AED9D13060238709D7E50E77A530327FFA4F81E6D58F122088
+ 243F18C0C0165910EBCDCD7A16D9DEF4F4F63D0D852F202669982669C3C996AC
+ 246277B49C283917BA5166CE942DC318E7FE273A54BAD273AF3C252C6729CB23
+ B61296F36B427392E5801E600181B7789D07F840B41284A0814B8B4679E2B8CC
+ 6E49AD9947A0869CF823C26A12867827748C62B091B616B2B004CF0B081D0842
+ BD7D3DF28612518DF5BA37811EF24D22970448268518B83788D08B48C4E716B5
+ 18457CF2339FFA0CFF6813FF69452A9A00056E68420A42C0813F6CE19762C152
+ 2EBEF00520A8E198C220C61B371AC7EF804B4E5CB366F04828B6FB14CF1DFA51
+ 61BC0649A096264F0B8702880A6AC0C881B5F37AA7198024D9E9BD770E4036F2
+ A4A7E0EC79C76C0854A0FF24E85197CAD4A6EAB30F2FC01974B6D080E9243068
+ 670C81184690CC093E43A3DF012B589521D66D8DB518EA2141438B2AD2AF9D2B
+ 6CD83C293CE41119C900CA9B9839100C658A80493AC8068E5C880E1F02D8D2B4
+ F3B07578D43BE35912A1D6D39A078D2C0A242BD9294CF6B294C5AC660F6A5914
+ 5CD6B2990DED662FEB59D19A76B4A74D2D6A57AB5AD14E610A68D0805485B005
+ 07746006AD93681EFF88F90563D680ABE339C231846B0CE20A77B8C82D6E728F
+ ABDCE632F7B9C43542D6FED0D6EAE624AEEECA6E1FE5511FB40D9290F24280BD
+ 1454D3E905F69C9F314D4F0D0654087C68939E8CAFC310A005A256F3709BC52F
+ 6593C85AFDF2B7B598F56F64FF8B59028756BF018E2C82153CE0D0FE57BF1066
+ F064239CDF039B40B639E3406DC940816AA5B11779D80E5729788CB346B0A3DA
+ 32F157590052EB5A338FF489EB09F5F3AE7A0812AF9931434CEF95AF9A3AD286
+ 0D51EF4DDDA9A9F6BED7B1B7D10264D8CA0DC99656B34F8E32693DFB592A1F54
+ CA95B5B2662DCBE5295F79CA9DA53296572B66274F59CC613EAD67413BDA27BB
+ 76B26888400A3E80FF872E3C940A55C2453079CB25EE0C63B9C60D34A0077DDC
+ 413B57D02EA8819C98EC62B0E1C9A4D96C8C6224C30F9732CFA5F5829E0DCACB
+ A0F32E84A7D82B32498E8C64DC2C59A455E66CAAB7BC6A36B339CB997575AB67
+ ADEA5AA380CD4F7E35AD6FED655EDB5AD6BFDE35B07D7DEBD259E13944581615
+ F8104CB250A75ADB61CB7854AC626954DBAC5F2D02EF90508E46B7F54EE98AB4
+ 63FCB4B6725BC63F6F08A7876CEAD7C492C63489B55E627D181B9278AAD42951
+ B275C32CE67E5399DFFE0EF89A030E70811BFCE0084773C217CEF082335CCC1B
+ 40C3B1EB7C8136CC0208BADD8596D4B0963F2BB7D01F2FB4C8053DF2911F1AD0
+ D26C406F18CDF2F8FF38BADB7BD46EBBEA73B6CB80775E7F7A8007D46D2803E8
+ 8B9113709490ADB7DED7C474259D9CEF7CA1B0B5966703CAFDFE729A1F9ED931
+ 5B3DEA0897BA96C76CE687F7FAE05D3FF3C39B80333C542100178028B4AE43CC
+ 0532A081605286714F2C77E496F5C48226C6DCBDBAF7B4FACEDB4E7F2BBAEA03
+ 694973131F814A3C8E6D9EF36C18D26D8AFCB9793F8037A2535EB146B737BE6D
+ 0305A76FC3EBA00FBDE8474FFAD29B5ECC68D8E516D290062C2C1B5AAFD3521E
+ 9000851A18A02D212779C9410E5D91E71EB92307970CAE0178EB82BBA48BA139
+ A5CB7881345CA0E2E766A9F2F491F36D38E19009F379790FAB5EA213A0921239
+ FAE66BD3796FF3DAFFDF6176F8D4738DF52E7779E00A57FFBFB77E7E5ECB3AFD
+ C4863FD607EE7E30CF1FD7FD867FE8377F9E955039D302AC27074B501DC2F46C
+ 5FE00424C01D4A0356C275776155625F95817B17411E4447BFE3792008632564
+ 1FE5600F81F27CAC077D81626E6AE31F652078D9C0003BA620DCA33788E57D98
+ 07129C327EE407829FB70128008440E85942D86F453884548684441884067784
+ 4C88844E18854CB8844EE86F55988453988554888510F78459288545B8845D28
+ 85CD21032D70010BE00054502DC2940B7CC00021000524600606A077BB778778
+ 98877A68042EF01720E48380E81E89416ECF5788CDF77C2B7873F2527D83A157
+ 24311093046A8E44FF6F03C05810205FF0A5742EE10481980D57288646A8855C
+ E8854A188AA56885A4E88563288AABB88AA7388AA81886A1B885AF088AB46880
+ 3200066980767ED03A6DE80135E1040C400203E04075A787C8988C25A76D1E58
+ 7C80485291514669B000AC97822AB878E7D678EEA105E3253D4387833B041288
+ C4832D11059D880DA90886E9B88EEAD88EECF88EEE188FF0388FF2588FECF845
+ 0B2504BBE8000DC086D6118CC2488C13A88C045990C7F551C4778E21381FE180
+ 0FD5788885B88296267D69C388EF916924812F3668798EF43DE2438E29C189CE
+ 880557A88EB48885B25892AA988AA0088528F9852FA992EED89231F9849DE592
+ 347992ED38050A85FF01CA920655D02CB5401600F90B6BD11D142872766887CA
+ B594C7E59415F8942567047EF78123D98994868287E87CD7C88200E28230E81E
+ 85023D21008E8255378C354FE347440A890D1BF09670199772399770C9067479
+ 977849977639977BB9017D79977F59977939986FD9978629987CA9978A999885
+ 2997096505807106BCF805CCA60B340190C35803C260909C898C4650047F415D
+ 6D899594D606CDC7958698888AD80F1659273B672F6630641132118C15444997
+ 89F0C507A3F90070198473E99B42F896C0F98471498F79498FC42997C3D99B47
+ 289CCD199CD0498ACE998ED3A99CCFB99CCE599DC0C90663706C1CD0065CD006
+ 1C5699C008904E50FF024E704C23D699ECB97BD24401A3E98C59B99510A9785E
+ C9782F5854AF894866E06990C2582A00925AA09B57290E8479A0089AA00ABAA0
+ 0CDAA00EFAA0BDD99D3AC00167C0050BF000146025794013970990EA5904ED19
+ A252B91E7F779580570F0E9982A8097D14D9A2F9D09AC07305D807103F50030E
+ 91216909920840A00A792ED009A1404A97D8699DC7C99C0C0A9C415A9C423A98
+ 484A975320A11AC60566940BE6198C2570A57E96949D6987BBC7A5C1F71759F0
+ 075D60A2CF680F5AE97C5C699FD8780FDAC8644EC07380331AAEC158A4B67950
+ F0053D0A3672690170C9A76FE9A71BC0A782DAA7709903854AA87F8AA881AAA8
+ 7769A87309A8807AFF9790AAA8914AA98AEAA88B9AA86F89A97139A99A9AA97B
+ 6AA96C507608A83A1DC6A1C298AA25A01D2500054829A2215A047D1802A249A6
+ C6579AA76988884820ABB90F30CA564E602F74100336D05EF3749BC8EA495AD0
+ 00BB391F49FAACD01AADD23AAD4E2A55A5FA005490AAE679A56A5002225604BF
+ 07ABCAE8022C460521159F2C379F685A9F89779FD9989FD6E588E2346A02CAAC
+ F2391F89B1A883BAAFFA4A9793CAAF00DBAF01CBAF893AB0A0FAAF072BB00A5B
+ B00A6BB00EDBB010FBB0FC3A05C7922C5CC0050E50025180AA97D9AD6AD0AD5A
+ F0AAE2DA997364AEE87AAB26F8902B2A91D337912FFA82DEC68DF6E25E20C974
+ CD5A0EF14005C059FFA995FAA8A1EAB383DAA9102BB40C2BB43CEBAFA11AB046
+ BBB096AAB44D4BA8040BB549BB013C6905C9920469C007DDBAADABAA0679A01D
+ 6BE102205A685E3A7265CB9E9F2906590006B61A82664A9F69DAAE6B0A969DA8
+ 633104920C40A6E7620E7E400514F00253D0B016C0A786CAAF85BB01872BB111
+ 2BB883ABB88EBBB88A9BB8900BB9833BB9913B066240405BF0065A8B9EDACAAD
+ 5E1B62AE2AB6236B901E2403F0D9B6DF86ABD6989ABCDAAB603992997664C9AA
+ 894A90B779BAB77ED0007EFB0562D00441F8B8C26BB9C43BBCC64BBC0C7BBCCA
+ BBB81B40763A03041DB6B53501BA1F6B254E507BA45BBA04192759B072AACB64
+ EA4A9F5D39B76DFAFFBDE65B2EBADBB77E4B015AD504812BA895DBB8811ABFF1
+ ABAFF50BBF007BBF114BBFF98BBFF3DBBFFF1BC0F23BC0FA3BC08CBBBFFE4BC0
+ 8DBBC0FC2BB0F78BB91810024090055FF0B556BAAA5D9B07DE1AB663ABBD7A28
+ AB7E78BE2284A2A9A3A2AEEBA22D1BBB27BBC2235C42BC7B1667A1064EB00256
+ 30065360C000BCAF05DCC0C2CBC3072CB13C1CC4C65BC03F2CC402BCC3044B76
+ 3A10021E4051D64BBD5EAB0648D0AD5020062EE0C11F7C0408C9C2E9FAB6EB1A
+ B72CBB78742BC25C8C47F89AB36691C614705124600580CBC0701CC7723CC771
+ 9C03747CC7784CC7769CC70CBCC773ECC77CACC781BCC080CCA763F0024B8C04
+ 5940011685C11E9B7FC154CC551D8CC5779868DC56C64545C2B9AAABAA09BB2A
+ 4CC6A0EC5658B0BB54B0BE5F00C36B9C16DC3106717CC4096CC40AFCBF0BECCA
+ B37CC7B28CC3B70CC7B4ACC0B52CC478BCCBFC5BCBF68BBF83CB93897CCA9CFB
+ B58EFCB1571262617BB6947C5CD42003983CC25E2CBE6AEAAE6C0AAFD5DCCDF4
+ 50427DABC6691C08003B}
+ end
+ end
+end
diff --git a/Cliente/uSplash.pas b/Cliente/uSplash.pas
new file mode 100644
index 0000000..7f951a8
--- /dev/null
+++ b/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/Cliente/vcl.drc b/Cliente/vcl.drc
new file mode 100644
index 0000000..a81d7c4
--- /dev/null
+++ b/Cliente/vcl.drc
@@ -0,0 +1,10 @@
+/* VER150
+ 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.
+*/
+
diff --git a/Configuracion/Configuracion.bdsproj b/Configuracion/Configuracion.bdsproj
new file mode 100644
index 0000000..5eba305
--- /dev/null
+++ b/Configuracion/Configuracion.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ 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\Cliente
+ .\
+ ..\Base;..\Usuarios
+ 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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxPSCoreD7;PluginSDK_D7R
+
+
+ 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/Configuracion/Configuracion.cfg b/Configuracion/Configuracion.cfg
new file mode 100644
index 0000000..da30fe0
--- /dev/null
+++ b/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".\"
+-U"..\Base;..\Usuarios"
+-O"..\Base;..\Usuarios"
+-I"..\Base;..\Usuarios"
+-R"..\Base;..\Usuarios"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Configuracion/Configuracion.dcp b/Configuracion/Configuracion.dcp
new file mode 100644
index 0000000..3a3dbda
Binary files /dev/null and b/Configuracion/Configuracion.dcp differ
diff --git a/Configuracion/Configuracion.dof b/Configuracion/Configuracion.dof
new file mode 100644
index 0000000..ac16595
--- /dev/null
+++ b/Configuracion/Configuracion.dof
@@ -0,0 +1,185 @@
+[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=.\
+SearchPath=..\Base;..\Usuarios
+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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxPSCoreD7;PluginSDK_D7R
+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\Projects\Bpl\DJclVcl70.bpl=JEDI Code Library VCL package for Delphi 7
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\DJcl70.bpl=JEDI Code Library RTL package for Delphi 7
+C:\WINDOWS\system32\fqb70.bpl=FastQueryBuilder 1.01
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System (core 3.1) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_Core_D7.bpl=RemObjects Hydra - Core Library
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_IDE_D7.bpl=RemObjects Hydra - IDE Integration
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_RO_D7.bpl=RemObjects Hydra - RemObjects SDK Integration Library
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Configuracion/Configuracion.dpk b/Configuracion/Configuracion.dpk
new file mode 100644
index 0000000..43bab45
--- /dev/null
+++ b/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 OFF}
+
+requires
+ JvGlobusD7R,
+ BaseD7,
+ Usuarios;
+
+contains
+ uPanelControl in 'uPanelControl.pas' {fPanelControl};
+
+end.
diff --git a/Configuracion/Configuracion.drc b/Configuracion/Configuracion.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Configuracion/Configuracion.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Configuracion/Configuracion.res b/Configuracion/Configuracion.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Configuracion/Configuracion.res differ
diff --git a/Configuracion/uPanelControl.ddp b/Configuracion/uPanelControl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Configuracion/uPanelControl.ddp differ
diff --git a/Configuracion/uPanelControl.dfm b/Configuracion/uPanelControl.dfm
new file mode 100644
index 0000000..f04e221
--- /dev/null
+++ b/Configuracion/uPanelControl.dfm
@@ -0,0 +1,262 @@
+object fPanelControl: TfPanelControl
+ Left = 509
+ Top = 252
+ BorderStyle = bsDialog
+ Caption = 'Panel de control'
+ ClientHeight = 458
+ ClientWidth = 547
+ 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 TabControl1: TTabControl
+ Left = 8
+ Top = 32
+ Width = 531
+ Height = 383
+ TabOrder = 0
+ object Image1: TImage
+ Left = 112
+ Top = 153
+ Width = 48
+ Height = 48
+ AutoSize = True
+ Center = True
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000003000
+ 00003008060000005702F987000000097048597300004E2000004E2001167D99
+ DE0000000467414D410000AA11B57D14DC000016574944415478DAD55909905D
+ 65993D777DF7EDAFFB75A75F77A73BE94EA7B3922640D8229000E228E2A810C6
+ D21970CA65600A0B95D151B12CA56AC6711D75449D08E2308C25E04204044380
+ B08728210964EB24DDE97D7FFB76F739FF7D0DA53599194B29A7A6BB6EDEED97
+ F7EEFDCEFF9DEF7CE7FBAFE4FB3EFE3FFF489FDA14FB9D376AB68BF37AD3306D
+ 07B62B61AA5246425771622187DEA63464C58722C9A83A1E1C5FC24CB9865F1F
+ A9E2A9FDB7E0D8FEB1D7AFA37B212C5473B0BD3A5625CFC91C9F1A7C8BAAEB57
+ C5A3EA65AEEDA5AAB53A4CCB8669DA56B658DD1B56DCDD0FBD3071FF8E3D5323
+ F305B3A02812BC3F1580D15215E62070C527FA51C95519BC8167A513F8EE9537
+ E264FE245644CFC4B1B1A367AB867E59321EDAEC395E47B55A8B589653AC5B76
+ 315BA81C30646FCFCF9E1E7DF427CF4D552DC76D2C82AAE07FE3C71B06205506
+ 2EFAF000CAB91A42BE8157B483E88926B1A1FDECD4E68E4B3E3C591BB94CD3B4
+ 01DBB1DA3CD743A55A0FEE51B7EA28E7CDB2AABAA75E3E9E7DE2F068FEF9FB9F
+ 18BD37D312C6E86C0DAA2CFFDF00D82B1FC4DA64A2FBFCA5177FE0C215E77DCE
+ 540A90F8BD6C360FDBF650AE55797D0766D524080B2ECF991184C398BCE3C1E1
+ BFBFE7B1530F329C82C62CFCC9005CF1A9F3313D340D9714684AB7616547EB07
+ 3A52ED1FEB6E6B5F57732B107C28166A41B0E53A5F1970DDACA356B3613926DF
+ 77113764BC7434F7E4E3FBE6BEF9CCE1991D85B2F3060248A523B2EA87082042
+ 001601B804902700AF4353313FE1E0AF3FFA3E8C9F1AC3C0597D57F57437DF01
+ D55E02DD46ADC2403C1F96C99576F9370BD87318789D854C1A95AA161CDB84A2
+ C9688E189898ADBEF2AD07063FB5E768F6976F088043B339B53FDDFC564966AC
+ B2DC5D73FC05C7536A53E5F2DEE1627D68B9A1E6C4CAC6DA9BB07ACD2AF4ACCA
+ 7C637947FA665592A051514CD3854F3A9B04E03A0E6A5C798759F408C6B52D14
+ 2B7566C10E6248450D4C2ED471DF93A7BEF8D08BD39F091B0AA43F14C048B1D0
+ A74ADE95692336100F1B67FA9E9B72E0B771F94B16E329D6CCC142DD9A9D2BD4
+ F618927F60494FE6E9359BD6AEE85BDE7A4F6BD238DFB2C5CA2BF03C870990E1
+ 7A366452C9F32CD4EA1646A60AC8E64DD8A4635C9758271E3A5B43BCB78F7DC7
+ F283FFBE6BE486E313E5DDAC05FFF706B0B9AF0525A6B6603ACB9B42C6AD4BA2
+ C6070D55439D1CB53C8F9FB1E1F0DC21254CCF0DA8319DCB63C1749E32DAD23F
+ 5C7FE6EAB665CB5357B7C6639B6C7ECE63B3140D53ACA2CDEF8A33C712C5EB62
+ 78B2845CD541346460494267564C24221E2C167ABEEC54763C3F7DFBCE7D93DF
+ 4F84B513BF17009B12D796D4D19E8CAE5364F5E3ED91F8F5BA2A2BE2E685402D
+ 5C16B0C80E01B0584DDF85D089F97215147064251CECEAE90CAF3DA3A7BDAF2F
+ 13AB911A123F2F945D913DCCCD573093AF622A67419514446321649AA2686D8E
+ 41E7FF576B26F2A532E60A5514CA269E3C30B773E7DEE9DB1211EDB9D302F8FC
+ F989D7FF10AB6B92972D49B56763A6757B2214BB3C1ED29063D7142B5EE2EA79
+ FC8CC884B378D4F879B23B904250B3A7160A404847DB8A0EACDDB0022AA1CB7C
+ BF6E5A906489AF4085D9ADF0356A44B072590A7D1D1134C7341459C83566636A
+ 3E8FD19912696C62F7FE99977FFCC4C86D9DE9C803A70570F5DAD78207564474
+ C09595FE4CF2F31B3AD29F957C0D941CAE2CD5821410D41119A82D066F933A8E
+ 2732E10435E330D06CA50A9732EB8505882E34A56290149DAB5AE7FB0ADA5BE2
+ 48C723E8688D435525240C9DB26C4358079BF40D28C7A2CE174DC40C1F3B9E1F
+ DBF7ED1D83FF38365BFDE96901BC777DA3BE4530195D436732766D6F3AF5839E
+ A6645450822212041B646791CF0E6963997690EE7916624556D884EC802A3258
+ 1FB2CA552497BB9AD0BFBE0F3D7DCB6155AB0C983C6F89A09320BAF8EA4BA291
+ 31D84A0D36AFE7F3FA826AE1900C876AD5DDAAE2C7BB4E1DFADC3D07BE7C7CBC
+ 7CF769016C63060C2173ACFACE78F88CB33AD2B726D4D0DBA2A150DC16011181
+ 085A089CC51B8862F4791BCB114556439677ACB37D3A04A8570AF0F91D4F9131
+ 3D5545BA2B89BE75FDB8E8D2B3900ECB813C96D879832B08BF435D71858CF2BB
+ 41F0C1E105B55225B0F62605F7EF1E7DF52BF71FFEDAD074F587A705F0E9F3D9
+ F6E7EAE436707647F8BA8B97B6FF9BCE1585AF30685E8C00244AA0C6D762B506
+ 93241EA6612BAB3AEAA11096F666B0B42B4D1551B0303987C1A3A3989ACA6276
+ 1A68EF025ABB97E25D576FC1405F1BD46404A5991C41928EAC19DF6737A71279
+ 92CFA6E604007C014005B36B519514FC64F7C8AB5FF9C9D1AF0F4F97EF3A2D80
+ 8F6DD23156B18412627D53EC1BEB3A5A6E96C51F1EB9A3040A19644020344527
+ E5B2CDB25EBD6414D1F6166C5CDB8535DD093485550C8DE771E0E0308E1E1EC1
+ ECE414058105CBE3CD579C83CB2F3A031D4B9A30450082FBE27A815DF61938D3
+ EB13841380F0C0B24085F682A28A1F3D7E6AF7F6474E7C6B62A1FEF3D302B861
+ A32AB747756FA26C36F5B6A4B62F8B46AEB1B8CA362F20B4B3463DCEF1A225DE
+ 446A49C04824B07C450619518C6D0924A32124A21214822B525A84CB1C1B99C3
+ E1C3C338F8EA28B24560CB25FD78E7951760E9D234E666732C5804B4118DCD77
+ 1ACAD6381A148AD24E944C33C8CA8F9E38F9ABEFED18FA66F792F023A705F0B9
+ 0B2354154111E5BC5448FF523C1EBBC4A57590984766122E3BA4472935351D4D
+ 9DAD4834A7B0BEBF0319A6376948C8E5CA34636C4A2C425217AD9938CA549CE1
+ 9129EC78702F0E0FE6D1DF97C6BBB76DC14A02AF174ABC364BDD12E52A6A0AAF
+ 0370BD466F49475552C8C1F18979FCEBC327FFE5E117A7EF4C45B503A705F089
+ F3C3140FCF9754E9E2A8E37D21D596DE12E9CC20DC46E749698C47427496A448
+ 2282543C4C7FEE91024A507CA281598BBDC1E64A4A8C49D51566A1469562137A
+ EA20F6EC1D43737B1CDBDEBD152BFB32906A35961725D3F40231684CB46E2002
+ 1EB32D64794932843233F9CC4B9373DF7C60F02BFB478AF74774E5D4E901B006
+ C44528DD5BADB2755B5B4FFB9B969DBD0E7D1BFB2199353618035182100E5157
+ 7DD1AA51AA54E863D81B44017AE26011DA0D35516859443662E1109E7AE62076
+ EE3E02998D6DDB355BB176553BCD69A3A155095861C684AA79BED7B01B220B94
+ E865CD2152AF86AFDD77E4B96F3F34F419C6F93C8FD3FA6AE9939BB4E0028A2C
+ 5F5E2EDA5FE8EECD5CB8E2CC95D874E13A68BC588C4EB0C27406F219D4363B6B
+ 70EE0537148D47FC78813FF240571D9834CAA4FFF473AFE2C5174F493A33F78E
+ 776CC6DA95EDBC261580D710122D80FB8B3EC9155E4948218B995D0587860BB9
+ AFDE77ECAE3DC7725FE5E5A7F0DFFC481F3F2F2402A1DB51DE51CFD56F5DBABC
+ F5AC15037DD874F199882A2E79AE2257B602EDF6A84C422D84660B09B1C50DDD
+ C6C2088BECF03C440A95A9F56EDDF29F2480DFEC1B97E294CFABDE7E0156F5B7
+ 43764D213954283B90B80600362E5EB0D900BA68E8F6EC99CC6F7FF8C46377ED
+ 9FB99397FE15FE871FE9660220FF92AAA2BCD72FD66F69CE2456C4326D388719
+ 10DDB22915A5A9B2982141560ED992D06A916EC1600FB2F0425EE31032188BE9
+ 28D1AC8D4FCEFB4F3D7B1043C35529950EE3C28B376260D512A4C27EB018B59A
+ 1B6442AC84A06144526916EB810A6D7FF2D4E11D7B27EE9A9DB0BECB0F54CEDD
+ 3180D1EDE3987974016A5C85436D16AD4AC8AF74F3B9BA28C2564996AFA3A1B9
+ 29D5145F2EC51338EB82B558BFAC09AD6D49CCB371C9FC659D70D116012CDA63
+ 910D9108C77302CB918A1BC8E52B183C3EEE3FBE7B3FF21C853576EA33CE5A8D
+ 0BD73763659B4C8228A83B4AD06B6485168275D1A684F0C2C9021E3B99C77D33
+ 73476B2AEE9ED937FFC59537ADA2989858783287F9E70B50630A9CAA4B25E3BD
+ 05808F9CC361C34527DFB851F6BC0F6B7AB8354F59DC74DE1A5CB27935BABADB
+ 3039394F5749CDF61A0D4750C0271029B0150D8B215008695C928E62663E8BDD
+ CF1CF29F7D6602092AF25C4A81D2DD8D8B370CE092250976E13C72C571D24E86
+ 41DF54F375E866180F64E7B0B33087D14E2FDBDDD97CD8CD9A2FDA47723F4BAD
+ 0DBF927DAA503A2D801B364A22884EAEE64DB2247F4095E5D6B9BC8D0D034BBD
+ 0B376F9056ADEAF4F3F33959D39446D105DD536A6462B198858C8A0A7728BB86
+ A1616474162FEC3D82032FE7D1AE01C73A81B9EE0CCEE8BB147F965809C59945
+ AD3444F7E94077A39865CF3D5628E3D78919D4977266EE52912887582F0ACCF1
+ D21E98957B66764EDD9EDF57A5CD901A05FF1A800F0E70F164F47392FB242DED
+ 5FF1552F647DF4AC8860C379FD38F7ECD54143A32342A5CC6F885A20777DAFC1
+ 6551C426BD4D9C0ED20881F42962DFFE51BC74F01466475D6408E0C03260A837
+ 89AE8E4B717DD75558B6A415AD7109B3A52C3ADD4E0C5B59DC39B9033BB45D68
+ ED4CA33915879ED3394B1BF0B2F469057B32FBEBB12FE75F99FB51A4233137BB
+ 6B0E92BE08E0FD0322382C65287F4B79BE810C6912438766C06C6E6EC1E60BD6
+ 6867AC6995C37A0845BA4F5177AF495FA0E10420AA4193FD20432F1F19C7BE97
+ 193C3B74983788578143CB81B14D6D30DB9AF1BEBE77E3EDEBB671EE1EE09C41
+ D3562DE1F19947F1C3D2DD783AF72C5AAC36442B714A1C6BCEE4AC6069BC7618
+ 7EB564D50BD9EF8EDD37F48FE563B5D9A08B7A41270ED428C2C0AE2788EF2C50
+ 15E7788CCFE120E87CDF72D18A966BDED6DBD9BD2405ABC2262576D31C51078D
+ D9C0E0179BB89A39FAA023B345FCE2D963183E99635103AB09B6758614EA050E
+ 5ED489C1BE22DED57D05FEA6E323784BDF25F4F1C033D93DF8EAF12FE325E740
+ E01F43D5088CB201C95620D77958061B5E08AA25CC5EAD36BDFBE84D33CFCEFC
+ 40A3DDB1E639AFAC69E700A10535B83424615BAB226D0B6986AAE412BE548DAA
+ 3DDDE9B60D17463A3BFA5518292137BCA827E4483430618B590B460DC74F5A18
+ 3D0A4C1C65CF504AB0953A6ACD453A5807E3EB62280C6430BC620ABD910CB6BA
+ 17E1EAE6AB504DD6716FF95E3C30F1083BB88A1EA51FAEC902AD68541EDEC754
+ 09A271AE3951363A36D5B9B1A199FDC76ECC3E5BDAE99329D299EB81FDAF2E76
+ 05A6E59248DBD67546C75BDF145B737DD450933473FA7C6A5A72FB7348AEB210
+ 710DA4690D4411AB5490D16C05C3E4F2C42105C64C0BD6E59723D2E2619E36E4
+ C1AE610CB5E7307D2E9059D20CB3C5A569A45DB64288EB34CB2A0717A546A76B
+ B29F4808D5A3816150EAAC3A5B0C052A34BEFAA493664602206EAD58CC0E0EDF
+ 31B37BEAF6FA823924FD03AEE144E6719869C175630FE3DAF4FA5B56EB992D9B
+ 5B97BD3DC499B4306BE3A8348E899527A09E9B439B9C4498B3729ECD4D22C98B
+ 256074BA02ED600BBAEADD38CFEF819A9668C37D3C1A1DC1896409CF5D3A8DCA
+ 3A06D9A120C45937EBCCA1589B0F8A2F66A4D1AA2E41C8A227AB48414F51C4AA
+ 5BD45F062FD7480FD2477322F428945B5AF7D2A9B1C1D1878E7EB2345EDA29FD
+ 9DB61575D2A125A9B7AC6D5A725B3C64DC28EC80D8517369CC12E528AC988591
+ D653A86CA46AA463FC3F0DB39CE2AC580DA102ADC829036D43ED4869519A350D
+ 39AF8288478E965D9865070FAF9EC4D35B6631BABE8E949856C87D25D8849382
+ 1D0DD118396807BC975C29085A7609C0E4DFCC86CC0C28AC05F06F9D6A571C99
+ 9C1C7DF4F0ADE589D2C3D227F4CBD1648713AB3A539FCE34256EA1C46B41C7E5
+ C02D56A8C989C1D16D1C9447609D9BC5DAB5CDC87444303351473D5D8134A643
+ 7A2E85C82B69528729E66FD9B58240B40AFB770D38AA66B1B7770EBBB6CE61FA
+ 7C0B21DE2052538246E8D207A95E30984112AB2EBA33954761B020ADA46A28D0
+ 799115B0A823315AEDF159FBE443073F5B9EC8DE2B7D54DA9A6C8A86FFB2AFBD
+ E9DBE95024E8B42A2FAC706C52789E9205000783330BF03756D0BB2582813747
+ E14E69289A55CC3EE142DE976016C2B09BEAB02531B07BC18697D8B9137B42D1
+ 71095956DC83678CE29177CE022D1484180332F9FF220F0200010BCA08004126
+ 0846B616DF6306542B1C64C0A0D72A8E4DD4871EDDFF85F278E17EE94B2D576D
+ 896AA1F7B6C7231F125A2F7A934E4DA73782CE0CC45583F5E4617AAC8ADA8632
+ 966CF1B1F6EA38A2F3ECA047AA18FD8589F84C023AA5CF0C89FD23DA6A4730A2
+ 319C301788175494250B2FC466F0D8E6492CACA59D5EC17AC8FB4196255A0A39
+ 0041ED27F5244B5087632A3B31C43901A96482E28660D0CCE5C687ACE15F1EF8
+ 7C698C00EEEAF98BDB2952EF4B84D4A422FA33AFA4D1EA857888A665D0E00BB3
+ 214DAA28F69450D85840E77B34F43AAD28EEF231762F8717AA52282EA36ED9B4
+ D8087A80502993202C6621CC206CD94561BC82A7FBE6B1EFB21A462EF3D19A37
+ 0293287622644F7803021020C4EA933E7075D602E943C596B9FA5E9DF49C9EC6
+ FCE0D053732FCFFCB353B6F748DF6FDFF680A22A7F1E0F85A0D3EFC8CC278703
+ 82E0176551CC088E68358C7CBA8CA9F6053FB255C60AAD49F2F7918F8FB32043
+ ECC211A931D3BA7E631F69719B526C998802ADD28687A77CECEDCCE2C90BF278
+ F522135D661CAAC6EFD51BF644628F5104951C35E0BFEC3732203617DC6285A2
+ 50AECF1E187A297B7CEE17D6BC2B76EA26A53B975E3BC8616665949D4DA7AED3
+ 7406BC157B43E2F194D80F12459DF40DCAB28519A5EC5B19CBCBE831D9C88620
+ 4D50AF425C69D50D14C5751AD39590C3C64E1E255DECE4B14ADB66C2D81F9BC7
+ CFFB4FE1F94D0B5E6FB885964571DD2A51BB32FD381ADB126207B3E6982C28D3
+ 2AD4734EC135CDF9F29455B5C72A13D967DC2A7EC3E0831959DADE79CD010EE9
+ 1BA2AAD6285C59094008FB2C1E2B888713E237C434F85C15DBE3D45A774591F8
+ BA21C9BAA14962B4B49CC5D15080107BA63C17BB77E23D31B05BECC81DF5047E
+ E38FBBF729AF1CDADB3CF2627324E5C851B58AB25872DFE2504FD6F99E6BF3DC
+ B46B9EE954AC923BEB5450A6AD1961BC591EF3BF33916D5F7AED3102E88F88C0
+ 45B0E295FF11129B370C5C67E0627B51A1D3930447C5506049AC375F585B49D1
+ 102C9A785E86C5D956A88FBBF8EC403048042FC0ACD232D8571AC10F0A7B7FBA
+ D71EFB3A6BAEC45BCC335DC96068F7C552505C7DDF12ACE12FDB2143A78EF0D7
+ 847B9A91F28EF6F77C87C17EC8D035553C9715749182C15AD4831FECA2C98DC6
+ 106C950B695594C6A34F4F3CA8109213342451FF7E30DB3A6EC36E0B10AEA829
+ 2A4B9DF35F4A8E6057F6E8DC8F17F6FDD310725FD7337A6089F9C140FDB0B871
+ 106CB504F3B6DFB05CC23A9BC1EECB7F05F0BDD66BAED355F5FD71C3D86A681A
+ E3F4026D96C582F21F41A30010CF657117CEAE92DC78DA239EA5FB62D0179C17
+ 92E57A012837D8224160AFC58A44A96E65CB41D1AAE181FCA1E776D506EFCEBB
+ D5EDE21AC65203AE7812F98702D8ACF7C4238AB6A9CF68B9A137943EB3458F2F
+ 0F2BB21696E9C399114314336188F61C6CF44AC1738CE0FA02802DDE137C173B
+ CBBEA83F71EE05F371D9B1827D9E39A75A1BB77233FB2B53270EDB53FF31EF56
+ C53ECFE06B41845AB97096FF870168985009036A666597DEF4A6A416B938AE84
+ 5AE2AAD6A1CB5A28AC849AC92285ED9F9457645F0A4A445CDF110FE4C4481E68
+ BEE85B9EE750715C7661CB716CABE09BB9BA6BD927ABB9E1512F7F74DCCDBFCC
+ AF1EE231FBDB41FCD100229CCF56CA4DAC4D2F32E5577AC390239AA2A6154F0E
+ 93EF49C997382A4BB47892E62F767F31D78B3D66569E13705FF2C416B747DDB7
+ 1DF138C1F72C0229905456DE35397AB8423D664EB7B7F34703B832BC1A05AF2E
+ CDB865FFB8F3BA4AE98B076D603016BF76881FB931D02DD67283C1EE6FBDBE76
+ 988BEF99D2625C6F3480FF047136462EB85916B00000000049454E44AE426082}
+ end
+ object lblUsuarios: TcxLabel
+ Left = 168
+ Top = 152
+ Cursor = crHandPoint
+ Caption = 'Administraci'#243'n de usuarios'
+ ParentFont = False
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clHighlight
+ Style.Font.Height = -13
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = [fsBold]
+ Style.HotTrack = True
+ StyleFocused.BorderStyle = ebsNone
+ StyleFocused.TextStyle = []
+ StyleHot.BorderStyle = ebsNone
+ StyleHot.TextStyle = [fsBold, fsUnderline]
+ Transparent = True
+ OnClick = lblUsuariosClick
+ end
+ end
+ object Button1: TButton
+ Left = 464
+ Top = 424
+ Width = 75
+ Height = 25
+ Caption = '&Cerrar'
+ ModalResult = 1
+ TabOrder = 1
+ end
+ object JvNavPanelHeader1: TJvNavPanelHeader
+ Left = 0
+ Top = 0
+ Width = 547
+ 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
+end
diff --git a/Configuracion/uPanelControl.pas b/Configuracion/uPanelControl.pas
new file mode 100644
index 0000000..c2609b8
--- /dev/null
+++ b/Configuracion/uPanelControl.pas
@@ -0,0 +1,50 @@
+unit uPanelControl;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, ComCtrls, JvExControls, JvComponent, JvgWizardHeader, StdCtrls,
+ ExtCtrls, uDataModuleBase, JvNavigationPane, cxControls, cxContainer,
+ cxEdit, cxLabel, Buttons, PngSpeedButton, pngimage;
+
+type
+ TfPanelControl = class(TForm)
+ TabControl1: TTabControl;
+ Button1: TButton;
+ JvNavPanelHeader1: TJvNavPanelHeader;
+ lblUsuarios: TcxLabel;
+ Image1: TImage;
+ procedure lblUsuariosClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+ procedure VerPanelControl;
+
+implementation
+
+uses uUsuarios;
+
+{$R *.dfm}
+
+
+procedure VerPanelControl;
+begin
+ with TfPanelControl.Create(NIL) do
+ try
+ ShowModal;
+ finally
+ Free;
+ end;
+end;
+
+procedure TfPanelControl.lblUsuariosClick(Sender: TObject);
+begin
+ AdministrarUsuarios;
+end;
+
+end.
diff --git a/DataAbstract_D7/DataAbstract_D7.bdsproj b/DataAbstract_D7/DataAbstract_D7.bdsproj
new file mode 100644
index 0000000..317c10f
--- /dev/null
+++ b/DataAbstract_D7/DataAbstract_D7.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_D7.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
+
+
+
+
+
+
+
+ C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap
+ 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;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxPageControlVCLD7;cxGridVCLD7;cxTreeListVCLD7;cxSchedulerVCLD7;TMSD7;PNGImageD7;mxProtector_d7;CEToolsPkgd7;FR7;FRIBX7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/DataAbstract_D7/DataAbstract_D7.cfg b/DataAbstract_D7/DataAbstract_D7.cfg
new file mode 100644
index 0000000..4da8cac
--- /dev/null
+++ b/DataAbstract_D7/DataAbstract_D7.cfg
@@ -0,0 +1,44 @@
+-$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
+-LE"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-LN"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-U"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
+-O"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
+-I"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
+-R"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/DataAbstract_D7/DataAbstract_D7.dof b/DataAbstract_D7/DataAbstract_D7.dof
new file mode 100644
index 0000000..1cd3c85
--- /dev/null
+++ b/DataAbstract_D7/DataAbstract_D7.dof
@@ -0,0 +1,186 @@
+[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=
+PackageDCPOutputDir=
+SearchPath=C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap
+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;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxPageControlVCLD7;cxGridVCLD7;cxTreeListVCLD7;cxSchedulerVCLD7;TMSD7;PNGImageD7;mxProtector_d7;CEToolsPkgd7;FR7;FRIBX7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[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\Projects\Bpl\DJclVcl70.bpl=JEDI Code Library VCL package for Delphi 7
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\DJcl70.bpl=JEDI Code Library RTL package for Delphi 7
+C:\WINDOWS\system32\fqb70.bpl=FastQueryBuilder 1.01
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System (core 3.1) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_Core_D7.bpl=RemObjects Hydra - Core Library
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_IDE_D7.bpl=RemObjects Hydra - IDE Integration
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_RO_D7.bpl=RemObjects Hydra - RemObjects SDK Integration Library
+c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/DataAbstract_D7/DataAbstract_D7.dpk b/DataAbstract_D7/DataAbstract_D7.dpk
new file mode 100644
index 0000000..82aecbb
--- /dev/null
+++ b/DataAbstract_D7/DataAbstract_D7.dpk
@@ -0,0 +1,57 @@
+package DataAbstract_D7;
+
+{$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}
+{$RUNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ dsnap;
+
+contains
+ uDADataTable,
+ uDABINAdapter,
+ uDAScriptingProvider,
+ uDACDSDataTable,
+ uDARegExpr,
+ uDAInterfaces,
+ uDARes,
+ uDAClasses,
+ uDAEngine,
+ uDAHelpers,
+ uDAInterfacesEx,
+ uDAMacros,
+ uDAUtils,
+ uDADriverManager,
+ uDASupportClasses,
+ uDAXMLUtils,
+ DataAbstract_Intf,
+ uDAClientDataModule,
+ uDABusinessProcessor,
+ uDAOracleInterfaces,
+ uDADesigntimeCall;
+
+end.
diff --git a/DataAbstract_D7/DataAbstract_D7.drc b/DataAbstract_D7/DataAbstract_D7.drc
new file mode 100644
index 0000000..a81d7c4
--- /dev/null
+++ b/DataAbstract_D7/DataAbstract_D7.drc
@@ -0,0 +1,10 @@
+/* VER150
+ 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.
+*/
+
diff --git a/DataAbstract_D7/DataAbstract_D7.res b/DataAbstract_D7/DataAbstract_D7.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/DataAbstract_D7/DataAbstract_D7.res differ
diff --git a/FactuGES_D7.bdsgroup b/FactuGES_D7.bdsgroup
new file mode 100644
index 0000000..6837ea3
--- /dev/null
+++ b/FactuGES_D7.bdsgroup
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_D7\DataAbstract_D7.bdsproj
+ Base\BaseD7.bdsproj
+ Usuarios\Usuarios.bdsproj
+ Configuracion\Configuracion.bdsproj
+ Modulos\Contactos\Cliente\Contactos.bdsproj
+ Modulos\Intervalos\Cliente\Intervalos.bdsproj
+ Modulos\Documentos asociados\DocumentosAsociados.bdsproj
+ Modulos\Cuentas\Cliente\Cuentas.bdsproj
+ Modulos\Almacenes\Cliente\Almacenes.bdsproj
+ Modulos\Asientos\Cliente\Asientos.bdsproj
+ Modulos\Presupuestos\Cliente\Presupuestos_Intf.bdsproj
+ Modulos\Montajes\Cliente\Montajes_Intf.bdsproj
+ Modulos\Pagos\Cliente\Pagos.bdsproj
+ Modulos\Presupuestos\Cliente\Presupuestos.bdsproj
+ Modulos\Albaranes de cliente\Cliente\AlbaranesCliente.bdsproj
+ Modulos\Pedidos a proveedor\Cliente\PedidosProveedor.bdsproj
+ Modulos\Montajes\Cliente\PedidosMontaje.bdsproj
+ Modulos\Articulos\Cliente\Articulos.bdsproj
+ Modulos\Montajes\Cliente\ArticulosMontaje.bdsproj
+ Modulos\Montajes\Cliente\Montajes_Impl.bdsproj
+ Modulos\Facturas de cliente\Cliente\FacturasCliente.bdsproj
+ Modulos\Facturas de proveedor\Cliente\FacturasProveedor.bdsproj
+ Modulos\Calendarios\Cliente\Calendarios.bdsproj
+ Cliente\FactuGES.bdsproj
+ Servidor\FactuGES_Server.bdsproj
+ DataAbstract_D7.bpl BaseD7.bpl Usuarios.bpl Configuracion.bpl Contactos.bpl Intervalos.bpl DocumentosAsociados.bpl Cuentas.bpl Almacenes.bpl Asientos.bpl Presupuestos_Intf.bpl Montajes_Intf.bpl Pagos.bpl Presupuestos.bpl AlbaranesCliente.bpl PedidosProveedor.bpl PedidosMontaje.bpl Articulos.bpl ArticulosMontaje.bpl Montajes_Impl.bpl FacturasCliente.bpl FacturasProveedor.bpl Calendarios.bpl FactuGES.exe FactuGES_Server.exe
+
+
+
+
diff --git a/FactuGES_D7.bpg b/FactuGES_D7.bpg
new file mode 100644
index 0000000..24dfaa4
--- /dev/null
+++ b/FactuGES_D7.bpg
@@ -0,0 +1,97 @@
+#------------------------------------------------------------------------------
+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 Usuarios.bpl Configuracion.bpl \
+ Contactos.bpl Intervalos.bpl DocumentosAsociados.bpl Cuentas.bpl Almacenes.bpl \
+ Presupuestos_Intf.bpl Montajes_Intf.bpl Presupuestos.bpl AlbaranesCliente.bpl \
+ PedidosProveedor.bpl PedidosMontaje.bpl Articulos.bpl ArticulosMontaje.bpl \
+ Montajes_Impl.bpl FacturasCliente.bpl FacturasProveedor.bpl Asientos.bpl \
+ Pagos.bpl Calendarios.bpl FactuGES.exe FactuGES_Server.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+BaseD7.bpl: Base\BaseD7.dpk
+ $(DCC)
+
+FactuGES_Server.exe: Servidor\FactuGES_Server.dpr
+ $(DCC)
+
+DataAbstract_D7.bpl: DataAbstract_D7\DataAbstract_D7.dpk
+ $(DCC)
+
+Contactos.bpl: Modulos\Contactos\Cliente\Contactos.dpk
+ $(DCC)
+
+FactuGES.exe: Cliente\FactuGES.dpr
+ $(DCC)
+
+Presupuestos_Intf.bpl: Modulos\Presupuestos\Cliente\Presupuestos_Intf.dpk
+ $(DCC)
+
+Configuracion.bpl: Configuracion\Configuracion.dpk
+ $(DCC)
+
+Usuarios.bpl: Usuarios\Usuarios.dpk
+ $(DCC)
+
+FacturasProveedor.bpl: Modulos\Facturas de proveedor\Cliente\FacturasProveedor.dpk
+ $(DCC)
+
+AlbaranesCliente.bpl: Modulos\Albaranes de cliente\Cliente\AlbaranesCliente.dpk
+ $(DCC)
+
+Almacenes.bpl: Modulos\Almacenes\Cliente\Almacenes.dpk
+ $(DCC)
+
+Montajes_Intf.bpl: Modulos\Montajes\Cliente\Montajes_Intf.dpk
+ $(DCC)
+
+Articulos.bpl: Modulos\Articulos\Cliente\Articulos.dpk
+ $(DCC)
+
+FacturasCliente.bpl: Modulos\Facturas de cliente\Cliente\FacturasCliente.dpk
+ $(DCC)
+
+PedidosProveedor.bpl: Modulos\Pedidos a proveedor\Cliente\PedidosProveedor.dpk
+ $(DCC)
+
+Montajes_Impl.bpl: Modulos\Montajes\Cliente\Montajes_Impl.dpk
+ $(DCC)
+
+PedidosMontaje.bpl: Modulos\Montajes\Cliente\PedidosMontaje.dpk
+ $(DCC)
+
+ArticulosMontaje.bpl: Modulos\Montajes\Cliente\ArticulosMontaje.dpk
+ $(DCC)
+
+Pagos.bpl: Modulos\Pagos\Cliente\Pagos.dpk
+ $(DCC)
+
+Cuentas.bpl: Modulos\Cuentas\Cliente\Cuentas.dpk
+ $(DCC)
+
+Intervalos.bpl: Modulos\Intervalos\Cliente\Intervalos.dpk
+ $(DCC)
+
+Asientos.bpl: Modulos\Asientos\Cliente\Asientos.dpk
+ $(DCC)
+
+DocumentosAsociados.bpl: Modulos\Documentos asociados\DocumentosAsociados.dpk
+ $(DCC)
+
+Calendarios.bpl: Modulos\Calendarios\Cliente\Calendarios.dpk
+ $(DCC)
+
+Presupuestos.bpl: Modulos\Presupuestos\Cliente\Presupuestos.dpk
+ $(DCC)
+
+
diff --git a/Iconos/Agenda/16x16/Date-Time.png b/Iconos/Agenda/16x16/Date-Time.png
new file mode 100644
index 0000000..fe95a0f
Binary files /dev/null and b/Iconos/Agenda/16x16/Date-Time.png differ
diff --git a/Iconos/Agenda/16x16/Thumbs.db b/Iconos/Agenda/16x16/Thumbs.db
new file mode 100644
index 0000000..40b777b
Binary files /dev/null and b/Iconos/Agenda/16x16/Thumbs.db differ
diff --git a/Iconos/Agenda/24x24/Date-Time.png b/Iconos/Agenda/24x24/Date-Time.png
new file mode 100644
index 0000000..665b7ac
Binary files /dev/null and b/Iconos/Agenda/24x24/Date-Time.png differ
diff --git a/Iconos/Agenda/24x24/Thumbs.db b/Iconos/Agenda/24x24/Thumbs.db
new file mode 100644
index 0000000..90ce7d9
Binary files /dev/null and b/Iconos/Agenda/24x24/Thumbs.db differ
diff --git a/Iconos/Agenda/28x28/Date-Time.png b/Iconos/Agenda/28x28/Date-Time.png
new file mode 100644
index 0000000..90f2320
Binary files /dev/null and b/Iconos/Agenda/28x28/Date-Time.png differ
diff --git a/Iconos/Agenda/28x28/Thumbs.db b/Iconos/Agenda/28x28/Thumbs.db
new file mode 100644
index 0000000..0ff9e53
Binary files /dev/null and b/Iconos/Agenda/28x28/Thumbs.db differ
diff --git a/Iconos/Agenda/Thumbs.db b/Iconos/Agenda/Thumbs.db
new file mode 100644
index 0000000..fdd120a
Binary files /dev/null and b/Iconos/Agenda/Thumbs.db differ
diff --git a/Iconos/Albaranes/16x16/Letters patent.png b/Iconos/Albaranes/16x16/Letters patent.png
new file mode 100644
index 0000000..2a70568
Binary files /dev/null and b/Iconos/Albaranes/16x16/Letters patent.png differ
diff --git a/Iconos/Albaranes/16x16/Thumbs.db b/Iconos/Albaranes/16x16/Thumbs.db
new file mode 100644
index 0000000..b7005e1
Binary files /dev/null and b/Iconos/Albaranes/16x16/Thumbs.db differ
diff --git a/Iconos/Albaranes/16x16/pagado.png b/Iconos/Albaranes/16x16/pagado.png
new file mode 100644
index 0000000..274231a
Binary files /dev/null and b/Iconos/Albaranes/16x16/pagado.png differ
diff --git a/Iconos/Albaranes/24x24/Letters patent.png b/Iconos/Albaranes/24x24/Letters patent.png
new file mode 100644
index 0000000..f82a076
Binary files /dev/null and b/Iconos/Albaranes/24x24/Letters patent.png differ
diff --git a/Iconos/Albaranes/24x24/Thumbs.db b/Iconos/Albaranes/24x24/Thumbs.db
new file mode 100644
index 0000000..31aa274
Binary files /dev/null and b/Iconos/Albaranes/24x24/Thumbs.db differ
diff --git a/Iconos/Albaranes/28x28/Letters patent.png b/Iconos/Albaranes/28x28/Letters patent.png
new file mode 100644
index 0000000..4b30b6f
Binary files /dev/null and b/Iconos/Albaranes/28x28/Letters patent.png differ
diff --git a/Iconos/Albaranes/28x28/Thumbs.db b/Iconos/Albaranes/28x28/Thumbs.db
new file mode 100644
index 0000000..6fb399e
Binary files /dev/null and b/Iconos/Albaranes/28x28/Thumbs.db differ
diff --git a/Iconos/Almacenes/16x16/Box-Closed-2.png b/Iconos/Almacenes/16x16/Box-Closed-2.png
new file mode 100644
index 0000000..35c88b2
Binary files /dev/null and b/Iconos/Almacenes/16x16/Box-Closed-2.png differ
diff --git a/Iconos/Almacenes/16x16/Thumbs.db b/Iconos/Almacenes/16x16/Thumbs.db
new file mode 100644
index 0000000..8fb9b94
Binary files /dev/null and b/Iconos/Almacenes/16x16/Thumbs.db differ
diff --git a/Iconos/Almacenes/16x16/nuevoalmacen.png b/Iconos/Almacenes/16x16/nuevoalmacen.png
new file mode 100644
index 0000000..0d7d5b8
Binary files /dev/null and b/Iconos/Almacenes/16x16/nuevoalmacen.png differ
diff --git a/Iconos/Almacenes/24x24/Box-Closed-2.png b/Iconos/Almacenes/24x24/Box-Closed-2.png
new file mode 100644
index 0000000..7aeec56
Binary files /dev/null and b/Iconos/Almacenes/24x24/Box-Closed-2.png differ
diff --git a/Iconos/Almacenes/24x24/Thumbs.db b/Iconos/Almacenes/24x24/Thumbs.db
new file mode 100644
index 0000000..b52455f
Binary files /dev/null and b/Iconos/Almacenes/24x24/Thumbs.db differ
diff --git a/Iconos/Almacenes/24x24/nuevoalmacen.png b/Iconos/Almacenes/24x24/nuevoalmacen.png
new file mode 100644
index 0000000..1ddabab
Binary files /dev/null and b/Iconos/Almacenes/24x24/nuevoalmacen.png differ
diff --git a/Iconos/Almacenes/28x28/Box-Closed-2.png b/Iconos/Almacenes/28x28/Box-Closed-2.png
new file mode 100644
index 0000000..89db7f4
Binary files /dev/null and b/Iconos/Almacenes/28x28/Box-Closed-2.png differ
diff --git a/Iconos/Almacenes/28x28/Thumbs.db b/Iconos/Almacenes/28x28/Thumbs.db
new file mode 100644
index 0000000..b8e79c6
Binary files /dev/null and b/Iconos/Almacenes/28x28/Thumbs.db differ
diff --git a/Iconos/ArtÃculos/16x16/Insert.png b/Iconos/ArtÃculos/16x16/Insert.png
new file mode 100644
index 0000000..a6dde0f
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/Insert.png differ
diff --git a/Iconos/ArtÃculos/16x16/Remove.png b/Iconos/ArtÃculos/16x16/Remove.png
new file mode 100644
index 0000000..332ae88
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/Remove.png differ
diff --git a/Iconos/ArtÃculos/16x16/Swap.png b/Iconos/ArtÃculos/16x16/Swap.png
new file mode 100644
index 0000000..bf54e00
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/Swap.png differ
diff --git a/Iconos/ArtÃculos/16x16/Thumbs.db b/Iconos/ArtÃculos/16x16/Thumbs.db
new file mode 100644
index 0000000..c9e8bc8
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/Thumbs.db differ
diff --git a/Iconos/ArtÃculos/16x16/articulos.png b/Iconos/ArtÃculos/16x16/articulos.png
new file mode 100644
index 0000000..acbaca9
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/articulos.png differ
diff --git a/Iconos/ArtÃculos/16x16/liberar.png b/Iconos/ArtÃculos/16x16/liberar.png
new file mode 100644
index 0000000..0f05e97
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/liberar.png differ
diff --git a/Iconos/ArtÃculos/16x16/recibirpedido.png b/Iconos/ArtÃculos/16x16/recibirpedido.png
new file mode 100644
index 0000000..8d0db7f
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/recibirpedido.png differ
diff --git a/Iconos/ArtÃculos/16x16/reservar.png b/Iconos/ArtÃculos/16x16/reservar.png
new file mode 100644
index 0000000..475c2f8
Binary files /dev/null and b/Iconos/ArtÃculos/16x16/reservar.png differ
diff --git a/Iconos/ArtÃculos/24x24/Insert.png b/Iconos/ArtÃculos/24x24/Insert.png
new file mode 100644
index 0000000..55fa057
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/Insert.png differ
diff --git a/Iconos/ArtÃculos/24x24/Remove.png b/Iconos/ArtÃculos/24x24/Remove.png
new file mode 100644
index 0000000..96872cd
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/Remove.png differ
diff --git a/Iconos/ArtÃculos/24x24/Swap.png b/Iconos/ArtÃculos/24x24/Swap.png
new file mode 100644
index 0000000..12cece4
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/Swap.png differ
diff --git a/Iconos/ArtÃculos/24x24/Thumbs.db b/Iconos/ArtÃculos/24x24/Thumbs.db
new file mode 100644
index 0000000..497c5c6
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/Thumbs.db differ
diff --git a/Iconos/ArtÃculos/24x24/articulos.png b/Iconos/ArtÃculos/24x24/articulos.png
new file mode 100644
index 0000000..c638dfe
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/articulos.png differ
diff --git a/Iconos/ArtÃculos/24x24/liberar.png b/Iconos/ArtÃculos/24x24/liberar.png
new file mode 100644
index 0000000..40be139
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/liberar.png differ
diff --git a/Iconos/ArtÃculos/24x24/recibirpedido.png b/Iconos/ArtÃculos/24x24/recibirpedido.png
new file mode 100644
index 0000000..87a39a0
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/recibirpedido.png differ
diff --git a/Iconos/ArtÃculos/24x24/reservar.png b/Iconos/ArtÃculos/24x24/reservar.png
new file mode 100644
index 0000000..a380fe5
Binary files /dev/null and b/Iconos/ArtÃculos/24x24/reservar.png differ
diff --git a/Iconos/ArtÃculos/28x28/Insert.png b/Iconos/ArtÃculos/28x28/Insert.png
new file mode 100644
index 0000000..1cf6ee4
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/Insert.png differ
diff --git a/Iconos/ArtÃculos/28x28/Remove.png b/Iconos/ArtÃculos/28x28/Remove.png
new file mode 100644
index 0000000..f4f4bb2
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/Remove.png differ
diff --git a/Iconos/ArtÃculos/28x28/Swap.png b/Iconos/ArtÃculos/28x28/Swap.png
new file mode 100644
index 0000000..2e23a78
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/Swap.png differ
diff --git a/Iconos/ArtÃculos/28x28/Thumbs.db b/Iconos/ArtÃculos/28x28/Thumbs.db
new file mode 100644
index 0000000..93e146b
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/Thumbs.db differ
diff --git a/Iconos/ArtÃculos/28x28/articulos.png b/Iconos/ArtÃculos/28x28/articulos.png
new file mode 100644
index 0000000..95147f2
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/articulos.png differ
diff --git a/Iconos/ArtÃculos/28x28/liberar.png b/Iconos/ArtÃculos/28x28/liberar.png
new file mode 100644
index 0000000..bd5c233
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/liberar.png differ
diff --git a/Iconos/ArtÃculos/28x28/recibirpedido.png b/Iconos/ArtÃculos/28x28/recibirpedido.png
new file mode 100644
index 0000000..15c5985
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/recibirpedido.png differ
diff --git a/Iconos/ArtÃculos/28x28/reservar.png b/Iconos/ArtÃculos/28x28/reservar.png
new file mode 100644
index 0000000..06ba9c5
Binary files /dev/null and b/Iconos/ArtÃculos/28x28/reservar.png differ
diff --git a/Iconos/Asientos/16x16/Cerrar.png b/Iconos/Asientos/16x16/Cerrar.png
new file mode 100644
index 0000000..e0a2644
Binary files /dev/null and b/Iconos/Asientos/16x16/Cerrar.png differ
diff --git a/Iconos/Asientos/16x16/Thumbs.db b/Iconos/Asientos/16x16/Thumbs.db
new file mode 100644
index 0000000..9d3bfe8
Binary files /dev/null and b/Iconos/Asientos/16x16/Thumbs.db differ
diff --git a/Iconos/Asientos/16x16/Tick.png b/Iconos/Asientos/16x16/Tick.png
new file mode 100644
index 0000000..5d813a4
Binary files /dev/null and b/Iconos/Asientos/16x16/Tick.png differ
diff --git a/Iconos/Asientos/24x24/Cerrar.png b/Iconos/Asientos/24x24/Cerrar.png
new file mode 100644
index 0000000..f421f36
Binary files /dev/null and b/Iconos/Asientos/24x24/Cerrar.png differ
diff --git a/Iconos/Asientos/24x24/Thumbs.db b/Iconos/Asientos/24x24/Thumbs.db
new file mode 100644
index 0000000..1a6d60c
Binary files /dev/null and b/Iconos/Asientos/24x24/Thumbs.db differ
diff --git a/Iconos/Asientos/24x24/Tick.png b/Iconos/Asientos/24x24/Tick.png
new file mode 100644
index 0000000..8712680
Binary files /dev/null and b/Iconos/Asientos/24x24/Tick.png differ
diff --git a/Iconos/Asientos/28x28/Cerrar.png b/Iconos/Asientos/28x28/Cerrar.png
new file mode 100644
index 0000000..f690bb7
Binary files /dev/null and b/Iconos/Asientos/28x28/Cerrar.png differ
diff --git a/Iconos/Asientos/28x28/Thumbs.db b/Iconos/Asientos/28x28/Thumbs.db
new file mode 100644
index 0000000..4fc4fac
Binary files /dev/null and b/Iconos/Asientos/28x28/Thumbs.db differ
diff --git a/Iconos/Asientos/28x28/Tick.png b/Iconos/Asientos/28x28/Tick.png
new file mode 100644
index 0000000..293b401
Binary files /dev/null and b/Iconos/Asientos/28x28/Tick.png differ
diff --git a/Iconos/Contactos/16x16/Box-Open-2.png b/Iconos/Contactos/16x16/Box-Open-2.png
new file mode 100644
index 0000000..8e30418
Binary files /dev/null and b/Iconos/Contactos/16x16/Box-Open-2.png differ
diff --git a/Iconos/Contactos/16x16/Comisiones.png b/Iconos/Contactos/16x16/Comisiones.png
new file mode 100644
index 0000000..ce0f628
Binary files /dev/null and b/Iconos/Contactos/16x16/Comisiones.png differ
diff --git a/Iconos/Contactos/16x16/Contact-Add.png b/Iconos/Contactos/16x16/Contact-Add.png
new file mode 100644
index 0000000..28bd71c
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact-Add.png differ
diff --git a/Iconos/Contactos/16x16/Contact-Edit.png b/Iconos/Contactos/16x16/Contact-Edit.png
new file mode 100644
index 0000000..c413b8b
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact-Edit.png differ
diff --git a/Iconos/Contactos/16x16/Contact.png b/Iconos/Contactos/16x16/Contact.png
new file mode 100644
index 0000000..00e503f
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact.png differ
diff --git a/Iconos/Contactos/16x16/Contact2.png b/Iconos/Contactos/16x16/Contact2.png
new file mode 100644
index 0000000..c005eb1
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact2.png differ
diff --git a/Iconos/Contactos/16x16/Contact3.png b/Iconos/Contactos/16x16/Contact3.png
new file mode 100644
index 0000000..38b7fcd
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact3.png differ
diff --git a/Iconos/Contactos/16x16/Contact4.png b/Iconos/Contactos/16x16/Contact4.png
new file mode 100644
index 0000000..0c12c3d
Binary files /dev/null and b/Iconos/Contactos/16x16/Contact4.png differ
diff --git a/Iconos/Contactos/16x16/Currency.png b/Iconos/Contactos/16x16/Currency.png
new file mode 100644
index 0000000..5ecaee8
Binary files /dev/null and b/Iconos/Contactos/16x16/Currency.png differ
diff --git a/Iconos/Contactos/16x16/Thumbs.db b/Iconos/Contactos/16x16/Thumbs.db
new file mode 100644
index 0000000..67a6ab6
Binary files /dev/null and b/Iconos/Contactos/16x16/Thumbs.db differ
diff --git a/Iconos/Contactos/16x16/User.png b/Iconos/Contactos/16x16/User.png
new file mode 100644
index 0000000..ee6f2a7
Binary files /dev/null and b/Iconos/Contactos/16x16/User.png differ
diff --git a/Iconos/Contactos/16x16/User2.png b/Iconos/Contactos/16x16/User2.png
new file mode 100644
index 0000000..247cacf
Binary files /dev/null and b/Iconos/Contactos/16x16/User2.png differ
diff --git a/Iconos/Contactos/16x16/User3.png b/Iconos/Contactos/16x16/User3.png
new file mode 100644
index 0000000..6a5b5ce
Binary files /dev/null and b/Iconos/Contactos/16x16/User3.png differ
diff --git a/Iconos/Contactos/16x16/User4.png b/Iconos/Contactos/16x16/User4.png
new file mode 100644
index 0000000..d501e3a
Binary files /dev/null and b/Iconos/Contactos/16x16/User4.png differ
diff --git a/Iconos/Contactos/24x24/Box-Open-2.png b/Iconos/Contactos/24x24/Box-Open-2.png
new file mode 100644
index 0000000..9959446
Binary files /dev/null and b/Iconos/Contactos/24x24/Box-Open-2.png differ
diff --git a/Iconos/Contactos/24x24/Comisiones.png b/Iconos/Contactos/24x24/Comisiones.png
new file mode 100644
index 0000000..f0be9b4
Binary files /dev/null and b/Iconos/Contactos/24x24/Comisiones.png differ
diff --git a/Iconos/Contactos/24x24/Contact-Add.png b/Iconos/Contactos/24x24/Contact-Add.png
new file mode 100644
index 0000000..5aefd12
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact-Add.png differ
diff --git a/Iconos/Contactos/24x24/Contact-Edit.png b/Iconos/Contactos/24x24/Contact-Edit.png
new file mode 100644
index 0000000..4ab8651
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact-Edit.png differ
diff --git a/Iconos/Contactos/24x24/Contact.png b/Iconos/Contactos/24x24/Contact.png
new file mode 100644
index 0000000..3272bfd
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact.png differ
diff --git a/Iconos/Contactos/24x24/Contact2.png b/Iconos/Contactos/24x24/Contact2.png
new file mode 100644
index 0000000..4a64469
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact2.png differ
diff --git a/Iconos/Contactos/24x24/Contact3.png b/Iconos/Contactos/24x24/Contact3.png
new file mode 100644
index 0000000..8fdf023
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact3.png differ
diff --git a/Iconos/Contactos/24x24/Contact4.png b/Iconos/Contactos/24x24/Contact4.png
new file mode 100644
index 0000000..b9b58b3
Binary files /dev/null and b/Iconos/Contactos/24x24/Contact4.png differ
diff --git a/Iconos/Contactos/24x24/Currency.png b/Iconos/Contactos/24x24/Currency.png
new file mode 100644
index 0000000..af28329
Binary files /dev/null and b/Iconos/Contactos/24x24/Currency.png differ
diff --git a/Iconos/Contactos/24x24/Thumbs.db b/Iconos/Contactos/24x24/Thumbs.db
new file mode 100644
index 0000000..554b783
Binary files /dev/null and b/Iconos/Contactos/24x24/Thumbs.db differ
diff --git a/Iconos/Contactos/28x28/Box-Open-2.png b/Iconos/Contactos/28x28/Box-Open-2.png
new file mode 100644
index 0000000..e88310c
Binary files /dev/null and b/Iconos/Contactos/28x28/Box-Open-2.png differ
diff --git a/Iconos/Contactos/28x28/Currency.png b/Iconos/Contactos/28x28/Currency.png
new file mode 100644
index 0000000..0d7259c
Binary files /dev/null and b/Iconos/Contactos/28x28/Currency.png differ
diff --git a/Iconos/Contactos/28x28/Thumbs.db b/Iconos/Contactos/28x28/Thumbs.db
new file mode 100644
index 0000000..8de7452
Binary files /dev/null and b/Iconos/Contactos/28x28/Thumbs.db differ
diff --git a/Iconos/Cuentas/16x16/Book-Open.png b/Iconos/Cuentas/16x16/Book-Open.png
new file mode 100644
index 0000000..8311378
Binary files /dev/null and b/Iconos/Cuentas/16x16/Book-Open.png differ
diff --git a/Iconos/Cuentas/16x16/Books.png b/Iconos/Cuentas/16x16/Books.png
new file mode 100644
index 0000000..eaf0f6d
Binary files /dev/null and b/Iconos/Cuentas/16x16/Books.png differ
diff --git a/Iconos/Cuentas/16x16/Thumbs.db b/Iconos/Cuentas/16x16/Thumbs.db
new file mode 100644
index 0000000..458db83
Binary files /dev/null and b/Iconos/Cuentas/16x16/Thumbs.db differ
diff --git a/Iconos/Cuentas/24x24/Book-Open.png b/Iconos/Cuentas/24x24/Book-Open.png
new file mode 100644
index 0000000..e6c602e
Binary files /dev/null and b/Iconos/Cuentas/24x24/Book-Open.png differ
diff --git a/Iconos/Cuentas/24x24/Books.png b/Iconos/Cuentas/24x24/Books.png
new file mode 100644
index 0000000..a845dfc
Binary files /dev/null and b/Iconos/Cuentas/24x24/Books.png differ
diff --git a/Iconos/Cuentas/24x24/Thumbs.db b/Iconos/Cuentas/24x24/Thumbs.db
new file mode 100644
index 0000000..2140242
Binary files /dev/null and b/Iconos/Cuentas/24x24/Thumbs.db differ
diff --git a/Iconos/Cuentas/28x28/Book-Open.png b/Iconos/Cuentas/28x28/Book-Open.png
new file mode 100644
index 0000000..d7efe07
Binary files /dev/null and b/Iconos/Cuentas/28x28/Book-Open.png differ
diff --git a/Iconos/Cuentas/28x28/Books.png b/Iconos/Cuentas/28x28/Books.png
new file mode 100644
index 0000000..64136d3
Binary files /dev/null and b/Iconos/Cuentas/28x28/Books.png differ
diff --git a/Iconos/Cuentas/28x28/Thumbs.db b/Iconos/Cuentas/28x28/Thumbs.db
new file mode 100644
index 0000000..d4def72
Binary files /dev/null and b/Iconos/Cuentas/28x28/Thumbs.db differ
diff --git a/Iconos/Factuges.ico b/Iconos/Factuges.ico
new file mode 100644
index 0000000..9e11815
Binary files /dev/null and b/Iconos/Factuges.ico differ
diff --git a/Iconos/Facturas de cliente/16x16/Invoice.png b/Iconos/Facturas de cliente/16x16/Invoice.png
new file mode 100644
index 0000000..1e2e9cc
Binary files /dev/null and b/Iconos/Facturas de cliente/16x16/Invoice.png differ
diff --git a/Iconos/Facturas de cliente/16x16/Thumbs.db b/Iconos/Facturas de cliente/16x16/Thumbs.db
new file mode 100644
index 0000000..39eb340
Binary files /dev/null and b/Iconos/Facturas de cliente/16x16/Thumbs.db differ
diff --git a/Iconos/Facturas de cliente/24x24/Invoice.png b/Iconos/Facturas de cliente/24x24/Invoice.png
new file mode 100644
index 0000000..c24cd70
Binary files /dev/null and b/Iconos/Facturas de cliente/24x24/Invoice.png differ
diff --git a/Iconos/Facturas de cliente/24x24/Thumbs.db b/Iconos/Facturas de cliente/24x24/Thumbs.db
new file mode 100644
index 0000000..a7c2af2
Binary files /dev/null and b/Iconos/Facturas de cliente/24x24/Thumbs.db differ
diff --git a/Iconos/Facturas de cliente/28x28/Invoice.png b/Iconos/Facturas de cliente/28x28/Invoice.png
new file mode 100644
index 0000000..045a1f7
Binary files /dev/null and b/Iconos/Facturas de cliente/28x28/Invoice.png differ
diff --git a/Iconos/Facturas de cliente/28x28/Thumbs.db b/Iconos/Facturas de cliente/28x28/Thumbs.db
new file mode 100644
index 0000000..e4723b6
Binary files /dev/null and b/Iconos/Facturas de cliente/28x28/Thumbs.db differ
diff --git a/Iconos/Generales/16x16/09378.bmp b/Iconos/Generales/16x16/09378.bmp
new file mode 100644
index 0000000..248fc74
Binary files /dev/null and b/Iconos/Generales/16x16/09378.bmp differ
diff --git a/Iconos/Generales/16x16/09378.png b/Iconos/Generales/16x16/09378.png
new file mode 100644
index 0000000..7e79599
Binary files /dev/null and b/Iconos/Generales/16x16/09378.png differ
diff --git a/Iconos/Generales/16x16/About.png b/Iconos/Generales/16x16/About.png
new file mode 100644
index 0000000..32635db
Binary files /dev/null and b/Iconos/Generales/16x16/About.png differ
diff --git a/Iconos/Generales/16x16/Añadir-capÃtulo.png b/Iconos/Generales/16x16/Añadir-capÃtulo.png
new file mode 100644
index 0000000..16e9ab9
Binary files /dev/null and b/Iconos/Generales/16x16/Añadir-capÃtulo.png differ
diff --git a/Iconos/Generales/16x16/Añadir-material.png b/Iconos/Generales/16x16/Añadir-material.png
new file mode 100644
index 0000000..d43ef4a
Binary files /dev/null and b/Iconos/Generales/16x16/Añadir-material.png differ
diff --git a/Iconos/Generales/16x16/Back.png b/Iconos/Generales/16x16/Back.png
new file mode 100644
index 0000000..31194b5
Binary files /dev/null and b/Iconos/Generales/16x16/Back.png differ
diff --git a/Iconos/Generales/16x16/Box-Closed.png b/Iconos/Generales/16x16/Box-Closed.png
new file mode 100644
index 0000000..189b83f
Binary files /dev/null and b/Iconos/Generales/16x16/Box-Closed.png differ
diff --git a/Iconos/Generales/16x16/Box-Open-2.png b/Iconos/Generales/16x16/Box-Open-2.png
new file mode 100644
index 0000000..8e30418
Binary files /dev/null and b/Iconos/Generales/16x16/Box-Open-2.png differ
diff --git a/Iconos/Generales/16x16/Card-Copy.png b/Iconos/Generales/16x16/Card-Copy.png
new file mode 100644
index 0000000..0da221c
Binary files /dev/null and b/Iconos/Generales/16x16/Card-Copy.png differ
diff --git a/Iconos/Generales/16x16/Clear.png b/Iconos/Generales/16x16/Clear.png
new file mode 100644
index 0000000..2062c27
Binary files /dev/null and b/Iconos/Generales/16x16/Clear.png differ
diff --git a/Iconos/Generales/16x16/Copy.png b/Iconos/Generales/16x16/Copy.png
new file mode 100644
index 0000000..7067e8d
Binary files /dev/null and b/Iconos/Generales/16x16/Copy.png differ
diff --git a/Iconos/Generales/16x16/Cut.png b/Iconos/Generales/16x16/Cut.png
new file mode 100644
index 0000000..3bb4451
Binary files /dev/null and b/Iconos/Generales/16x16/Cut.png differ
diff --git a/Iconos/Generales/16x16/Debug-Breakpoint.png b/Iconos/Generales/16x16/Debug-Breakpoint.png
new file mode 100644
index 0000000..464fcd7
Binary files /dev/null and b/Iconos/Generales/16x16/Debug-Breakpoint.png differ
diff --git a/Iconos/Generales/16x16/Debug-Watch-Delete.png b/Iconos/Generales/16x16/Debug-Watch-Delete.png
new file mode 100644
index 0000000..8e2e6a1
Binary files /dev/null and b/Iconos/Generales/16x16/Debug-Watch-Delete.png differ
diff --git a/Iconos/Generales/16x16/Debug-Watch.png b/Iconos/Generales/16x16/Debug-Watch.png
new file mode 100644
index 0000000..5976f75
Binary files /dev/null and b/Iconos/Generales/16x16/Debug-Watch.png differ
diff --git a/Iconos/Generales/16x16/Delete.png b/Iconos/Generales/16x16/Delete.png
new file mode 100644
index 0000000..cb27f30
Binary files /dev/null and b/Iconos/Generales/16x16/Delete.png differ
diff --git a/Iconos/Generales/16x16/Edit.png b/Iconos/Generales/16x16/Edit.png
new file mode 100644
index 0000000..a4431dd
Binary files /dev/null and b/Iconos/Generales/16x16/Edit.png differ
diff --git a/Iconos/Generales/16x16/Exit.png b/Iconos/Generales/16x16/Exit.png
new file mode 100644
index 0000000..21613aa
Binary files /dev/null and b/Iconos/Generales/16x16/Exit.png differ
diff --git a/Iconos/Generales/16x16/Forward.png b/Iconos/Generales/16x16/Forward.png
new file mode 100644
index 0000000..2a17743
Binary files /dev/null and b/Iconos/Generales/16x16/Forward.png differ
diff --git a/Iconos/Generales/16x16/Home.png b/Iconos/Generales/16x16/Home.png
new file mode 100644
index 0000000..199e9cd
Binary files /dev/null and b/Iconos/Generales/16x16/Home.png differ
diff --git a/Iconos/Generales/16x16/Minus.png b/Iconos/Generales/16x16/Minus.png
new file mode 100644
index 0000000..ad8a7d0
Binary files /dev/null and b/Iconos/Generales/16x16/Minus.png differ
diff --git a/Iconos/Generales/16x16/Outline-Collapse.png b/Iconos/Generales/16x16/Outline-Collapse.png
new file mode 100644
index 0000000..95ded08
Binary files /dev/null and b/Iconos/Generales/16x16/Outline-Collapse.png differ
diff --git a/Iconos/Generales/16x16/Outline-Expand.png b/Iconos/Generales/16x16/Outline-Expand.png
new file mode 100644
index 0000000..17cbe65
Binary files /dev/null and b/Iconos/Generales/16x16/Outline-Expand.png differ
diff --git a/Iconos/Generales/16x16/Outline-Move Down.png b/Iconos/Generales/16x16/Outline-Move Down.png
new file mode 100644
index 0000000..09fdc68
Binary files /dev/null and b/Iconos/Generales/16x16/Outline-Move Down.png differ
diff --git a/Iconos/Generales/16x16/Outline-Move Up.png b/Iconos/Generales/16x16/Outline-Move Up.png
new file mode 100644
index 0000000..4678fac
Binary files /dev/null and b/Iconos/Generales/16x16/Outline-Move Up.png differ
diff --git a/Iconos/Generales/16x16/Parcel.png b/Iconos/Generales/16x16/Parcel.png
new file mode 100644
index 0000000..eb0ef92
Binary files /dev/null and b/Iconos/Generales/16x16/Parcel.png differ
diff --git a/Iconos/Generales/16x16/Paste.png b/Iconos/Generales/16x16/Paste.png
new file mode 100644
index 0000000..f1cbee6
Binary files /dev/null and b/Iconos/Generales/16x16/Paste.png differ
diff --git a/Iconos/Generales/16x16/Plus.png b/Iconos/Generales/16x16/Plus.png
new file mode 100644
index 0000000..cab9e8e
Binary files /dev/null and b/Iconos/Generales/16x16/Plus.png differ
diff --git a/Iconos/Generales/16x16/Preview.png b/Iconos/Generales/16x16/Preview.png
new file mode 100644
index 0000000..a1ee549
Binary files /dev/null and b/Iconos/Generales/16x16/Preview.png differ
diff --git a/Iconos/Generales/16x16/Print-Options.png b/Iconos/Generales/16x16/Print-Options.png
new file mode 100644
index 0000000..cd0e509
Binary files /dev/null and b/Iconos/Generales/16x16/Print-Options.png differ
diff --git a/Iconos/Generales/16x16/Print.png b/Iconos/Generales/16x16/Print.png
new file mode 100644
index 0000000..8f029d7
Binary files /dev/null and b/Iconos/Generales/16x16/Print.png differ
diff --git a/Iconos/Generales/16x16/Refresh.png b/Iconos/Generales/16x16/Refresh.png
new file mode 100644
index 0000000..9ed4aac
Binary files /dev/null and b/Iconos/Generales/16x16/Refresh.png differ
diff --git a/Iconos/Generales/16x16/Save.png b/Iconos/Generales/16x16/Save.png
new file mode 100644
index 0000000..51eb9de
Binary files /dev/null and b/Iconos/Generales/16x16/Save.png differ
diff --git a/Iconos/Generales/16x16/Search.png b/Iconos/Generales/16x16/Search.png
new file mode 100644
index 0000000..e7a6758
Binary files /dev/null and b/Iconos/Generales/16x16/Search.png differ
diff --git a/Iconos/Generales/16x16/Select All.png b/Iconos/Generales/16x16/Select All.png
new file mode 100644
index 0000000..b3476eb
Binary files /dev/null and b/Iconos/Generales/16x16/Select All.png differ
diff --git a/Iconos/Generales/16x16/Speaking-Start.png b/Iconos/Generales/16x16/Speaking-Start.png
new file mode 100644
index 0000000..935e566
Binary files /dev/null and b/Iconos/Generales/16x16/Speaking-Start.png differ
diff --git a/Iconos/Generales/16x16/Sum-2.png b/Iconos/Generales/16x16/Sum-2.png
new file mode 100644
index 0000000..6e5d8e9
Binary files /dev/null and b/Iconos/Generales/16x16/Sum-2.png differ
diff --git a/Iconos/Generales/16x16/Table-Search.png b/Iconos/Generales/16x16/Table-Search.png
new file mode 100644
index 0000000..be8bf80
Binary files /dev/null and b/Iconos/Generales/16x16/Table-Search.png differ
diff --git a/Iconos/Generales/16x16/Thumbs.db b/Iconos/Generales/16x16/Thumbs.db
new file mode 100644
index 0000000..34a958c
Binary files /dev/null and b/Iconos/Generales/16x16/Thumbs.db differ
diff --git a/Iconos/Generales/16x16/Total-capÃtulo.png b/Iconos/Generales/16x16/Total-capÃtulo.png
new file mode 100644
index 0000000..4f721ba
Binary files /dev/null and b/Iconos/Generales/16x16/Total-capÃtulo.png differ
diff --git a/Iconos/Generales/16x16/TÃtulo-capÃtulo.png b/Iconos/Generales/16x16/TÃtulo-capÃtulo.png
new file mode 100644
index 0000000..4eb60d9
Binary files /dev/null and b/Iconos/Generales/16x16/TÃtulo-capÃtulo.png differ
diff --git a/Iconos/Generales/16x16/Undo.png b/Iconos/Generales/16x16/Undo.png
new file mode 100644
index 0000000..114cf33
Binary files /dev/null and b/Iconos/Generales/16x16/Undo.png differ
diff --git a/Iconos/Generales/16x16/View-One Page.png b/Iconos/Generales/16x16/View-One Page.png
new file mode 100644
index 0000000..7573d11
Binary files /dev/null and b/Iconos/Generales/16x16/View-One Page.png differ
diff --git a/Iconos/Generales/16x16/View-Page Width.png b/Iconos/Generales/16x16/View-Page Width.png
new file mode 100644
index 0000000..2ad4e8e
Binary files /dev/null and b/Iconos/Generales/16x16/View-Page Width.png differ
diff --git a/Iconos/Generales/16x16/Warning.png b/Iconos/Generales/16x16/Warning.png
new file mode 100644
index 0000000..0fca356
Binary files /dev/null and b/Iconos/Generales/16x16/Warning.png differ
diff --git a/Iconos/Generales/16x16/Zoom-In.png b/Iconos/Generales/16x16/Zoom-In.png
new file mode 100644
index 0000000..812c814
Binary files /dev/null and b/Iconos/Generales/16x16/Zoom-In.png differ
diff --git a/Iconos/Generales/16x16/Zoom-Out.png b/Iconos/Generales/16x16/Zoom-Out.png
new file mode 100644
index 0000000..e6ccf65
Binary files /dev/null and b/Iconos/Generales/16x16/Zoom-Out.png differ
diff --git a/Iconos/Generales/16x16/db-Next-2.png b/Iconos/Generales/16x16/db-Next-2.png
new file mode 100644
index 0000000..759e9ee
Binary files /dev/null and b/Iconos/Generales/16x16/db-Next-2.png differ
diff --git a/Iconos/Generales/16x16/db-Previous-2.png b/Iconos/Generales/16x16/db-Previous-2.png
new file mode 100644
index 0000000..f673f28
Binary files /dev/null and b/Iconos/Generales/16x16/db-Previous-2.png differ
diff --git a/Iconos/Generales/16x16/db-first-2.png b/Iconos/Generales/16x16/db-first-2.png
new file mode 100644
index 0000000..7274025
Binary files /dev/null and b/Iconos/Generales/16x16/db-first-2.png differ
diff --git a/Iconos/Generales/16x16/db-last-2.png b/Iconos/Generales/16x16/db-last-2.png
new file mode 100644
index 0000000..bfb5d67
Binary files /dev/null and b/Iconos/Generales/16x16/db-last-2.png differ
diff --git a/Iconos/Generales/24x24/About.png b/Iconos/Generales/24x24/About.png
new file mode 100644
index 0000000..5d0ba3e
Binary files /dev/null and b/Iconos/Generales/24x24/About.png differ
diff --git a/Iconos/Generales/24x24/Back.png b/Iconos/Generales/24x24/Back.png
new file mode 100644
index 0000000..1cd4d31
Binary files /dev/null and b/Iconos/Generales/24x24/Back.png differ
diff --git a/Iconos/Generales/24x24/Box-Open-2.png b/Iconos/Generales/24x24/Box-Open-2.png
new file mode 100644
index 0000000..9959446
Binary files /dev/null and b/Iconos/Generales/24x24/Box-Open-2.png differ
diff --git a/Iconos/Generales/24x24/Card-Copy.png b/Iconos/Generales/24x24/Card-Copy.png
new file mode 100644
index 0000000..ee4b76f
Binary files /dev/null and b/Iconos/Generales/24x24/Card-Copy.png differ
diff --git a/Iconos/Generales/24x24/Clear.png b/Iconos/Generales/24x24/Clear.png
new file mode 100644
index 0000000..4ce31c8
Binary files /dev/null and b/Iconos/Generales/24x24/Clear.png differ
diff --git a/Iconos/Generales/24x24/Copy.png b/Iconos/Generales/24x24/Copy.png
new file mode 100644
index 0000000..9bf2618
Binary files /dev/null and b/Iconos/Generales/24x24/Copy.png differ
diff --git a/Iconos/Generales/24x24/Cut.png b/Iconos/Generales/24x24/Cut.png
new file mode 100644
index 0000000..b6e6529
Binary files /dev/null and b/Iconos/Generales/24x24/Cut.png differ
diff --git a/Iconos/Generales/24x24/Debug-Breakpoint.png b/Iconos/Generales/24x24/Debug-Breakpoint.png
new file mode 100644
index 0000000..16e4542
Binary files /dev/null and b/Iconos/Generales/24x24/Debug-Breakpoint.png differ
diff --git a/Iconos/Generales/24x24/Debug-Watch-Delete.png b/Iconos/Generales/24x24/Debug-Watch-Delete.png
new file mode 100644
index 0000000..89ae7bd
Binary files /dev/null and b/Iconos/Generales/24x24/Debug-Watch-Delete.png differ
diff --git a/Iconos/Generales/24x24/Debug-Watch.png b/Iconos/Generales/24x24/Debug-Watch.png
new file mode 100644
index 0000000..547428e
Binary files /dev/null and b/Iconos/Generales/24x24/Debug-Watch.png differ
diff --git a/Iconos/Generales/24x24/Delete.png b/Iconos/Generales/24x24/Delete.png
new file mode 100644
index 0000000..a169184
Binary files /dev/null and b/Iconos/Generales/24x24/Delete.png differ
diff --git a/Iconos/Generales/24x24/Edit.png b/Iconos/Generales/24x24/Edit.png
new file mode 100644
index 0000000..f39269e
Binary files /dev/null and b/Iconos/Generales/24x24/Edit.png differ
diff --git a/Iconos/Generales/24x24/Exit.png b/Iconos/Generales/24x24/Exit.png
new file mode 100644
index 0000000..70eadf9
Binary files /dev/null and b/Iconos/Generales/24x24/Exit.png differ
diff --git a/Iconos/Generales/24x24/Forward.png b/Iconos/Generales/24x24/Forward.png
new file mode 100644
index 0000000..2ceec67
Binary files /dev/null and b/Iconos/Generales/24x24/Forward.png differ
diff --git a/Iconos/Generales/24x24/Home.png b/Iconos/Generales/24x24/Home.png
new file mode 100644
index 0000000..96b8c87
Binary files /dev/null and b/Iconos/Generales/24x24/Home.png differ
diff --git a/Iconos/Generales/24x24/Minus.png b/Iconos/Generales/24x24/Minus.png
new file mode 100644
index 0000000..1b2257f
Binary files /dev/null and b/Iconos/Generales/24x24/Minus.png differ
diff --git a/Iconos/Generales/24x24/Outline-Collapse.png b/Iconos/Generales/24x24/Outline-Collapse.png
new file mode 100644
index 0000000..0e7c2cc
Binary files /dev/null and b/Iconos/Generales/24x24/Outline-Collapse.png differ
diff --git a/Iconos/Generales/24x24/Outline-Expand.png b/Iconos/Generales/24x24/Outline-Expand.png
new file mode 100644
index 0000000..c643a7c
Binary files /dev/null and b/Iconos/Generales/24x24/Outline-Expand.png differ
diff --git a/Iconos/Generales/24x24/Outline-Move Down.png b/Iconos/Generales/24x24/Outline-Move Down.png
new file mode 100644
index 0000000..65aaa61
Binary files /dev/null and b/Iconos/Generales/24x24/Outline-Move Down.png differ
diff --git a/Iconos/Generales/24x24/Outline-Move Up.png b/Iconos/Generales/24x24/Outline-Move Up.png
new file mode 100644
index 0000000..3dc2673
Binary files /dev/null and b/Iconos/Generales/24x24/Outline-Move Up.png differ
diff --git a/Iconos/Generales/24x24/Paste.png b/Iconos/Generales/24x24/Paste.png
new file mode 100644
index 0000000..9b4c3f0
Binary files /dev/null and b/Iconos/Generales/24x24/Paste.png differ
diff --git a/Iconos/Generales/24x24/Plus.png b/Iconos/Generales/24x24/Plus.png
new file mode 100644
index 0000000..f60ef53
Binary files /dev/null and b/Iconos/Generales/24x24/Plus.png differ
diff --git a/Iconos/Generales/24x24/Preview.png b/Iconos/Generales/24x24/Preview.png
new file mode 100644
index 0000000..4d185c1
Binary files /dev/null and b/Iconos/Generales/24x24/Preview.png differ
diff --git a/Iconos/Generales/24x24/Print-Options.png b/Iconos/Generales/24x24/Print-Options.png
new file mode 100644
index 0000000..b97b98c
Binary files /dev/null and b/Iconos/Generales/24x24/Print-Options.png differ
diff --git a/Iconos/Generales/24x24/Print.png b/Iconos/Generales/24x24/Print.png
new file mode 100644
index 0000000..3f6e390
Binary files /dev/null and b/Iconos/Generales/24x24/Print.png differ
diff --git a/Iconos/Generales/24x24/Refresh.png b/Iconos/Generales/24x24/Refresh.png
new file mode 100644
index 0000000..03cacdf
Binary files /dev/null and b/Iconos/Generales/24x24/Refresh.png differ
diff --git a/Iconos/Generales/24x24/Save.png b/Iconos/Generales/24x24/Save.png
new file mode 100644
index 0000000..56cc714
Binary files /dev/null and b/Iconos/Generales/24x24/Save.png differ
diff --git a/Iconos/Generales/24x24/Search.png b/Iconos/Generales/24x24/Search.png
new file mode 100644
index 0000000..3af96da
Binary files /dev/null and b/Iconos/Generales/24x24/Search.png differ
diff --git a/Iconos/Generales/24x24/Select All.png b/Iconos/Generales/24x24/Select All.png
new file mode 100644
index 0000000..5632ed5
Binary files /dev/null and b/Iconos/Generales/24x24/Select All.png differ
diff --git a/Iconos/Generales/24x24/Speaking-Start.png b/Iconos/Generales/24x24/Speaking-Start.png
new file mode 100644
index 0000000..a02336a
Binary files /dev/null and b/Iconos/Generales/24x24/Speaking-Start.png differ
diff --git a/Iconos/Generales/24x24/Sum-2.png b/Iconos/Generales/24x24/Sum-2.png
new file mode 100644
index 0000000..51a90c6
Binary files /dev/null and b/Iconos/Generales/24x24/Sum-2.png differ
diff --git a/Iconos/Generales/24x24/Table-Search.png b/Iconos/Generales/24x24/Table-Search.png
new file mode 100644
index 0000000..b145e04
Binary files /dev/null and b/Iconos/Generales/24x24/Table-Search.png differ
diff --git a/Iconos/Generales/24x24/Thumbs.db b/Iconos/Generales/24x24/Thumbs.db
new file mode 100644
index 0000000..7557c59
Binary files /dev/null and b/Iconos/Generales/24x24/Thumbs.db differ
diff --git a/Iconos/Generales/24x24/Undo.png b/Iconos/Generales/24x24/Undo.png
new file mode 100644
index 0000000..0fe4cc9
Binary files /dev/null and b/Iconos/Generales/24x24/Undo.png differ
diff --git a/Iconos/Generales/24x24/View-One Page.png b/Iconos/Generales/24x24/View-One Page.png
new file mode 100644
index 0000000..b66609e
Binary files /dev/null and b/Iconos/Generales/24x24/View-One Page.png differ
diff --git a/Iconos/Generales/24x24/View-Page Width.png b/Iconos/Generales/24x24/View-Page Width.png
new file mode 100644
index 0000000..760a323
Binary files /dev/null and b/Iconos/Generales/24x24/View-Page Width.png differ
diff --git a/Iconos/Generales/24x24/Warning.png b/Iconos/Generales/24x24/Warning.png
new file mode 100644
index 0000000..e674c1f
Binary files /dev/null and b/Iconos/Generales/24x24/Warning.png differ
diff --git a/Iconos/Generales/24x24/Zoom-In.png b/Iconos/Generales/24x24/Zoom-In.png
new file mode 100644
index 0000000..131feed
Binary files /dev/null and b/Iconos/Generales/24x24/Zoom-In.png differ
diff --git a/Iconos/Generales/24x24/Zoom-Out.png b/Iconos/Generales/24x24/Zoom-Out.png
new file mode 100644
index 0000000..26cf347
Binary files /dev/null and b/Iconos/Generales/24x24/Zoom-Out.png differ
diff --git a/Iconos/Generales/24x24/db-First-2.png b/Iconos/Generales/24x24/db-First-2.png
new file mode 100644
index 0000000..c36c2ea
Binary files /dev/null and b/Iconos/Generales/24x24/db-First-2.png differ
diff --git a/Iconos/Generales/24x24/db-Last-2.png b/Iconos/Generales/24x24/db-Last-2.png
new file mode 100644
index 0000000..97292c3
Binary files /dev/null and b/Iconos/Generales/24x24/db-Last-2.png differ
diff --git a/Iconos/Generales/24x24/db-Next-2.png b/Iconos/Generales/24x24/db-Next-2.png
new file mode 100644
index 0000000..d23efc7
Binary files /dev/null and b/Iconos/Generales/24x24/db-Next-2.png differ
diff --git a/Iconos/Generales/24x24/db-Previous-2.png b/Iconos/Generales/24x24/db-Previous-2.png
new file mode 100644
index 0000000..7c11e16
Binary files /dev/null and b/Iconos/Generales/24x24/db-Previous-2.png differ
diff --git a/Iconos/Generales/28x28/Box-Open-2.png b/Iconos/Generales/28x28/Box-Open-2.png
new file mode 100644
index 0000000..e88310c
Binary files /dev/null and b/Iconos/Generales/28x28/Box-Open-2.png differ
diff --git a/Iconos/Generales/28x28/Card-Copy.png b/Iconos/Generales/28x28/Card-Copy.png
new file mode 100644
index 0000000..60566d1
Binary files /dev/null and b/Iconos/Generales/28x28/Card-Copy.png differ
diff --git a/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Iconos/Generales/28x28/Debug-Watch-Delete.png
new file mode 100644
index 0000000..faf46e8
Binary files /dev/null and b/Iconos/Generales/28x28/Debug-Watch-Delete.png differ
diff --git a/Iconos/Generales/28x28/Debug-Watch.png b/Iconos/Generales/28x28/Debug-Watch.png
new file mode 100644
index 0000000..31c568f
Binary files /dev/null and b/Iconos/Generales/28x28/Debug-Watch.png differ
diff --git a/Iconos/Generales/28x28/Home.png b/Iconos/Generales/28x28/Home.png
new file mode 100644
index 0000000..f89327a
Binary files /dev/null and b/Iconos/Generales/28x28/Home.png differ
diff --git a/Iconos/Generales/28x28/Outline-Move Down.png b/Iconos/Generales/28x28/Outline-Move Down.png
new file mode 100644
index 0000000..eb2aa92
Binary files /dev/null and b/Iconos/Generales/28x28/Outline-Move Down.png differ
diff --git a/Iconos/Generales/28x28/Outline-Move Up.png b/Iconos/Generales/28x28/Outline-Move Up.png
new file mode 100644
index 0000000..4397959
Binary files /dev/null and b/Iconos/Generales/28x28/Outline-Move Up.png differ
diff --git a/Iconos/Generales/28x28/Speaking-Start.png b/Iconos/Generales/28x28/Speaking-Start.png
new file mode 100644
index 0000000..52294bb
Binary files /dev/null and b/Iconos/Generales/28x28/Speaking-Start.png differ
diff --git a/Iconos/Generales/28x28/Sum-2.png b/Iconos/Generales/28x28/Sum-2.png
new file mode 100644
index 0000000..0508feb
Binary files /dev/null and b/Iconos/Generales/28x28/Sum-2.png differ
diff --git a/Iconos/Generales/28x28/Table-Search.png b/Iconos/Generales/28x28/Table-Search.png
new file mode 100644
index 0000000..bb23481
Binary files /dev/null and b/Iconos/Generales/28x28/Table-Search.png differ
diff --git a/Iconos/Generales/28x28/Thumbs.db b/Iconos/Generales/28x28/Thumbs.db
new file mode 100644
index 0000000..c184efc
Binary files /dev/null and b/Iconos/Generales/28x28/Thumbs.db differ
diff --git a/Iconos/Generales/28x28/Warning.png b/Iconos/Generales/28x28/Warning.png
new file mode 100644
index 0000000..19aec79
Binary files /dev/null and b/Iconos/Generales/28x28/Warning.png differ
diff --git a/Iconos/Montajes/16x16/Document-Labels.png b/Iconos/Montajes/16x16/Document-Labels.png
new file mode 100644
index 0000000..a6fa82b
Binary files /dev/null and b/Iconos/Montajes/16x16/Document-Labels.png differ
diff --git a/Iconos/Montajes/16x16/Thumbs.db b/Iconos/Montajes/16x16/Thumbs.db
new file mode 100644
index 0000000..7181991
Binary files /dev/null and b/Iconos/Montajes/16x16/Thumbs.db differ
diff --git a/Iconos/Montajes/16x16/Tools.png b/Iconos/Montajes/16x16/Tools.png
new file mode 100644
index 0000000..21a2797
Binary files /dev/null and b/Iconos/Montajes/16x16/Tools.png differ
diff --git a/Iconos/Montajes/24x24/Document-Labels.png b/Iconos/Montajes/24x24/Document-Labels.png
new file mode 100644
index 0000000..291dbb6
Binary files /dev/null and b/Iconos/Montajes/24x24/Document-Labels.png differ
diff --git a/Iconos/Montajes/24x24/Thumbs.db b/Iconos/Montajes/24x24/Thumbs.db
new file mode 100644
index 0000000..8844d0e
Binary files /dev/null and b/Iconos/Montajes/24x24/Thumbs.db differ
diff --git a/Iconos/Montajes/24x24/Tools.png b/Iconos/Montajes/24x24/Tools.png
new file mode 100644
index 0000000..f682a14
Binary files /dev/null and b/Iconos/Montajes/24x24/Tools.png differ
diff --git a/Iconos/Montajes/28x28/Document-Labels.png b/Iconos/Montajes/28x28/Document-Labels.png
new file mode 100644
index 0000000..cdf699d
Binary files /dev/null and b/Iconos/Montajes/28x28/Document-Labels.png differ
diff --git a/Iconos/Montajes/28x28/Thumbs.db b/Iconos/Montajes/28x28/Thumbs.db
new file mode 100644
index 0000000..bca3944
Binary files /dev/null and b/Iconos/Montajes/28x28/Thumbs.db differ
diff --git a/Iconos/Montajes/28x28/Tools.png b/Iconos/Montajes/28x28/Tools.png
new file mode 100644
index 0000000..74aa0b1
Binary files /dev/null and b/Iconos/Montajes/28x28/Tools.png differ
diff --git a/Iconos/Pagos/16x16/Currency.png b/Iconos/Pagos/16x16/Currency.png
new file mode 100644
index 0000000..5ecaee8
Binary files /dev/null and b/Iconos/Pagos/16x16/Currency.png differ
diff --git a/Iconos/Pagos/16x16/Thumbs.db b/Iconos/Pagos/16x16/Thumbs.db
new file mode 100644
index 0000000..c5a1f33
Binary files /dev/null and b/Iconos/Pagos/16x16/Thumbs.db differ
diff --git a/Iconos/Pagos/16x16/pagado.png b/Iconos/Pagos/16x16/pagado.png
new file mode 100644
index 0000000..37feab5
Binary files /dev/null and b/Iconos/Pagos/16x16/pagado.png differ
diff --git a/Iconos/Pagos/24x24/Currency.png b/Iconos/Pagos/24x24/Currency.png
new file mode 100644
index 0000000..af28329
Binary files /dev/null and b/Iconos/Pagos/24x24/Currency.png differ
diff --git a/Iconos/Pagos/24x24/pagado.png b/Iconos/Pagos/24x24/pagado.png
new file mode 100644
index 0000000..d986e6c
Binary files /dev/null and b/Iconos/Pagos/24x24/pagado.png differ
diff --git a/Iconos/Pagos/28x28/Thumbs.db b/Iconos/Pagos/28x28/Thumbs.db
new file mode 100644
index 0000000..b3322aa
Binary files /dev/null and b/Iconos/Pagos/28x28/Thumbs.db differ
diff --git a/Iconos/Pagos/28x28/pagado.png b/Iconos/Pagos/28x28/pagado.png
new file mode 100644
index 0000000..d8980b6
Binary files /dev/null and b/Iconos/Pagos/28x28/pagado.png differ
diff --git a/Iconos/Pedidos a proveedor/16x16/Complete-0.png b/Iconos/Pedidos a proveedor/16x16/Complete-0.png
new file mode 100644
index 0000000..7531e3f
Binary files /dev/null and b/Iconos/Pedidos a proveedor/16x16/Complete-0.png differ
diff --git a/Iconos/Pedidos a proveedor/16x16/Complete-100.png b/Iconos/Pedidos a proveedor/16x16/Complete-100.png
new file mode 100644
index 0000000..7e7fbb7
Binary files /dev/null and b/Iconos/Pedidos a proveedor/16x16/Complete-100.png differ
diff --git a/Iconos/Pedidos a proveedor/16x16/Complete-50.png b/Iconos/Pedidos a proveedor/16x16/Complete-50.png
new file mode 100644
index 0000000..1972bb7
Binary files /dev/null and b/Iconos/Pedidos a proveedor/16x16/Complete-50.png differ
diff --git a/Iconos/Pedidos a proveedor/16x16/Thumbs.db b/Iconos/Pedidos a proveedor/16x16/Thumbs.db
new file mode 100644
index 0000000..1337668
Binary files /dev/null and b/Iconos/Pedidos a proveedor/16x16/Thumbs.db differ
diff --git a/Iconos/Pedidos a proveedor/16x16/pedidos.png b/Iconos/Pedidos a proveedor/16x16/pedidos.png
new file mode 100644
index 0000000..bc972c8
Binary files /dev/null and b/Iconos/Pedidos a proveedor/16x16/pedidos.png differ
diff --git a/Iconos/Pedidos a proveedor/24x24/Complete-0.png b/Iconos/Pedidos a proveedor/24x24/Complete-0.png
new file mode 100644
index 0000000..4988815
Binary files /dev/null and b/Iconos/Pedidos a proveedor/24x24/Complete-0.png differ
diff --git a/Iconos/Pedidos a proveedor/24x24/Complete-100.png b/Iconos/Pedidos a proveedor/24x24/Complete-100.png
new file mode 100644
index 0000000..fe23a48
Binary files /dev/null and b/Iconos/Pedidos a proveedor/24x24/Complete-100.png differ
diff --git a/Iconos/Pedidos a proveedor/24x24/Complete-50.png b/Iconos/Pedidos a proveedor/24x24/Complete-50.png
new file mode 100644
index 0000000..147621b
Binary files /dev/null and b/Iconos/Pedidos a proveedor/24x24/Complete-50.png differ
diff --git a/Iconos/Pedidos a proveedor/24x24/Thumbs.db b/Iconos/Pedidos a proveedor/24x24/Thumbs.db
new file mode 100644
index 0000000..f07c882
Binary files /dev/null and b/Iconos/Pedidos a proveedor/24x24/Thumbs.db differ
diff --git a/Iconos/Pedidos a proveedor/24x24/pedido.png b/Iconos/Pedidos a proveedor/24x24/pedido.png
new file mode 100644
index 0000000..1939938
Binary files /dev/null and b/Iconos/Pedidos a proveedor/24x24/pedido.png differ
diff --git a/Iconos/Pedidos a proveedor/28x28/Complete-0.png b/Iconos/Pedidos a proveedor/28x28/Complete-0.png
new file mode 100644
index 0000000..fa5ca6c
Binary files /dev/null and b/Iconos/Pedidos a proveedor/28x28/Complete-0.png differ
diff --git a/Iconos/Pedidos a proveedor/28x28/Complete-100.png b/Iconos/Pedidos a proveedor/28x28/Complete-100.png
new file mode 100644
index 0000000..166d0c3
Binary files /dev/null and b/Iconos/Pedidos a proveedor/28x28/Complete-100.png differ
diff --git a/Iconos/Pedidos a proveedor/28x28/Complete-50.png b/Iconos/Pedidos a proveedor/28x28/Complete-50.png
new file mode 100644
index 0000000..5c81e92
Binary files /dev/null and b/Iconos/Pedidos a proveedor/28x28/Complete-50.png differ
diff --git a/Iconos/Pedidos a proveedor/28x28/Thumbs.db b/Iconos/Pedidos a proveedor/28x28/Thumbs.db
new file mode 100644
index 0000000..7da0f2c
Binary files /dev/null and b/Iconos/Pedidos a proveedor/28x28/Thumbs.db differ
diff --git a/Iconos/Pedidos a proveedor/28x28/pedido.png b/Iconos/Pedidos a proveedor/28x28/pedido.png
new file mode 100644
index 0000000..d7c4b43
Binary files /dev/null and b/Iconos/Pedidos a proveedor/28x28/pedido.png differ
diff --git a/Iconos/Presupuestos/16x16/Aumentar_letra.png b/Iconos/Presupuestos/16x16/Aumentar_letra.png
new file mode 100644
index 0000000..141ebc4
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Aumentar_letra.png differ
diff --git a/Iconos/Presupuestos/16x16/Budget.png b/Iconos/Presupuestos/16x16/Budget.png
new file mode 100644
index 0000000..095f2f1
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Budget.png differ
diff --git a/Iconos/Presupuestos/16x16/Delete-Blue.png b/Iconos/Presupuestos/16x16/Delete-Blue.png
new file mode 100644
index 0000000..33a2a14
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Delete-Blue.png differ
diff --git a/Iconos/Presupuestos/16x16/Disminuir_letra.png b/Iconos/Presupuestos/16x16/Disminuir_letra.png
new file mode 100644
index 0000000..2febedb
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Disminuir_letra.png differ
diff --git a/Iconos/Presupuestos/16x16/Thumbs.db b/Iconos/Presupuestos/16x16/Thumbs.db
new file mode 100644
index 0000000..22247dc
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Thumbs.db differ
diff --git a/Iconos/Presupuestos/16x16/Tick.png b/Iconos/Presupuestos/16x16/Tick.png
new file mode 100644
index 0000000..264d020
Binary files /dev/null and b/Iconos/Presupuestos/16x16/Tick.png differ
diff --git a/Iconos/Presupuestos/24x24/Budget.png b/Iconos/Presupuestos/24x24/Budget.png
new file mode 100644
index 0000000..6d01c8d
Binary files /dev/null and b/Iconos/Presupuestos/24x24/Budget.png differ
diff --git a/Iconos/Presupuestos/24x24/Delete-Blue.png b/Iconos/Presupuestos/24x24/Delete-Blue.png
new file mode 100644
index 0000000..6546282
Binary files /dev/null and b/Iconos/Presupuestos/24x24/Delete-Blue.png differ
diff --git a/Iconos/Presupuestos/24x24/Thumbs.db b/Iconos/Presupuestos/24x24/Thumbs.db
new file mode 100644
index 0000000..98e4675
Binary files /dev/null and b/Iconos/Presupuestos/24x24/Thumbs.db differ
diff --git a/Iconos/Presupuestos/24x24/Tick.png b/Iconos/Presupuestos/24x24/Tick.png
new file mode 100644
index 0000000..8554e1f
Binary files /dev/null and b/Iconos/Presupuestos/24x24/Tick.png differ
diff --git a/Iconos/Presupuestos/28x28/Budget.png b/Iconos/Presupuestos/28x28/Budget.png
new file mode 100644
index 0000000..8f5e61e
Binary files /dev/null and b/Iconos/Presupuestos/28x28/Budget.png differ
diff --git a/Iconos/Presupuestos/28x28/Thumbs.db b/Iconos/Presupuestos/28x28/Thumbs.db
new file mode 100644
index 0000000..cccdead
Binary files /dev/null and b/Iconos/Presupuestos/28x28/Thumbs.db differ
diff --git a/Iconos/Servidor/16x16/Database.png b/Iconos/Servidor/16x16/Database.png
new file mode 100644
index 0000000..badb104
Binary files /dev/null and b/Iconos/Servidor/16x16/Database.png differ
diff --git a/Iconos/Servidor/16x16/Thumbs.db b/Iconos/Servidor/16x16/Thumbs.db
new file mode 100644
index 0000000..7769653
Binary files /dev/null and b/Iconos/Servidor/16x16/Thumbs.db differ
diff --git a/Iconos/Servidor/24x24/Database.png b/Iconos/Servidor/24x24/Database.png
new file mode 100644
index 0000000..cd859e1
Binary files /dev/null and b/Iconos/Servidor/24x24/Database.png differ
diff --git a/Iconos/Servidor/24x24/Thumbs.db b/Iconos/Servidor/24x24/Thumbs.db
new file mode 100644
index 0000000..7593ddf
Binary files /dev/null and b/Iconos/Servidor/24x24/Thumbs.db differ
diff --git a/Iconos/Servidor/28x28/Database.png b/Iconos/Servidor/28x28/Database.png
new file mode 100644
index 0000000..26d3c56
Binary files /dev/null and b/Iconos/Servidor/28x28/Database.png differ
diff --git a/Iconos/Servidor/28x28/Thumbs.db b/Iconos/Servidor/28x28/Thumbs.db
new file mode 100644
index 0000000..9dab4cb
Binary files /dev/null and b/Iconos/Servidor/28x28/Thumbs.db differ
diff --git a/Iconos/Thumbs.db b/Iconos/Thumbs.db
new file mode 100644
index 0000000..27f373e
Binary files /dev/null and b/Iconos/Thumbs.db differ
diff --git a/Iconos/Usuarios/16x16/Thumbs.db b/Iconos/Usuarios/16x16/Thumbs.db
new file mode 100644
index 0000000..00fac8f
Binary files /dev/null and b/Iconos/Usuarios/16x16/Thumbs.db differ
diff --git a/Iconos/Usuarios/16x16/User-Add.png b/Iconos/Usuarios/16x16/User-Add.png
new file mode 100644
index 0000000..1649f38
Binary files /dev/null and b/Iconos/Usuarios/16x16/User-Add.png differ
diff --git a/Iconos/Usuarios/16x16/User-Edit.png b/Iconos/Usuarios/16x16/User-Edit.png
new file mode 100644
index 0000000..a660a37
Binary files /dev/null and b/Iconos/Usuarios/16x16/User-Edit.png differ
diff --git a/Iconos/Usuarios/16x16/User-Password.png b/Iconos/Usuarios/16x16/User-Password.png
new file mode 100644
index 0000000..a6d8942
Binary files /dev/null and b/Iconos/Usuarios/16x16/User-Password.png differ
diff --git a/Iconos/Usuarios/16x16/User-Remove.png b/Iconos/Usuarios/16x16/User-Remove.png
new file mode 100644
index 0000000..5edbd1d
Binary files /dev/null and b/Iconos/Usuarios/16x16/User-Remove.png differ
diff --git a/Iconos/Usuarios/16x16/User.png b/Iconos/Usuarios/16x16/User.png
new file mode 100644
index 0000000..ee6f2a7
Binary files /dev/null and b/Iconos/Usuarios/16x16/User.png differ
diff --git a/Iconos/Usuarios/16x16/Users.png b/Iconos/Usuarios/16x16/Users.png
new file mode 100644
index 0000000..c376648
Binary files /dev/null and b/Iconos/Usuarios/16x16/Users.png differ
diff --git a/Iconos/Usuarios/24x24/Thumbs.db b/Iconos/Usuarios/24x24/Thumbs.db
new file mode 100644
index 0000000..8bcf3e5
Binary files /dev/null and b/Iconos/Usuarios/24x24/Thumbs.db differ
diff --git a/Iconos/Usuarios/24x24/User-Add.png b/Iconos/Usuarios/24x24/User-Add.png
new file mode 100644
index 0000000..3616f18
Binary files /dev/null and b/Iconos/Usuarios/24x24/User-Add.png differ
diff --git a/Iconos/Usuarios/24x24/User-Edit.png b/Iconos/Usuarios/24x24/User-Edit.png
new file mode 100644
index 0000000..1af01ad
Binary files /dev/null and b/Iconos/Usuarios/24x24/User-Edit.png differ
diff --git a/Iconos/Usuarios/24x24/User-Password.png b/Iconos/Usuarios/24x24/User-Password.png
new file mode 100644
index 0000000..a121a6b
Binary files /dev/null and b/Iconos/Usuarios/24x24/User-Password.png differ
diff --git a/Iconos/Usuarios/24x24/User-Remove.png b/Iconos/Usuarios/24x24/User-Remove.png
new file mode 100644
index 0000000..b50a9da
Binary files /dev/null and b/Iconos/Usuarios/24x24/User-Remove.png differ
diff --git a/Iconos/Usuarios/24x24/User.png b/Iconos/Usuarios/24x24/User.png
new file mode 100644
index 0000000..ddb1dd6
Binary files /dev/null and b/Iconos/Usuarios/24x24/User.png differ
diff --git a/Iconos/Usuarios/24x24/Users.png b/Iconos/Usuarios/24x24/Users.png
new file mode 100644
index 0000000..dbdd35c
Binary files /dev/null and b/Iconos/Usuarios/24x24/Users.png differ
diff --git a/Iconos/Usuarios/28x28/Thumbs.db b/Iconos/Usuarios/28x28/Thumbs.db
new file mode 100644
index 0000000..af72683
Binary files /dev/null and b/Iconos/Usuarios/28x28/Thumbs.db differ
diff --git a/Iconos/Usuarios/28x28/User-Add.png b/Iconos/Usuarios/28x28/User-Add.png
new file mode 100644
index 0000000..76459dc
Binary files /dev/null and b/Iconos/Usuarios/28x28/User-Add.png differ
diff --git a/Iconos/Usuarios/28x28/User-Edit.png b/Iconos/Usuarios/28x28/User-Edit.png
new file mode 100644
index 0000000..139ec63
Binary files /dev/null and b/Iconos/Usuarios/28x28/User-Edit.png differ
diff --git a/Iconos/Usuarios/28x28/User-Password.png b/Iconos/Usuarios/28x28/User-Password.png
new file mode 100644
index 0000000..7720bf1
Binary files /dev/null and b/Iconos/Usuarios/28x28/User-Password.png differ
diff --git a/Iconos/Usuarios/28x28/User-Remove.png b/Iconos/Usuarios/28x28/User-Remove.png
new file mode 100644
index 0000000..b046745
Binary files /dev/null and b/Iconos/Usuarios/28x28/User-Remove.png differ
diff --git a/Iconos/Usuarios/28x28/User.png b/Iconos/Usuarios/28x28/User.png
new file mode 100644
index 0000000..e389c2a
Binary files /dev/null and b/Iconos/Usuarios/28x28/User.png differ
diff --git a/Iconos/Usuarios/28x28/Users.png b/Iconos/Usuarios/28x28/Users.png
new file mode 100644
index 0000000..4c006ba
Binary files /dev/null and b/Iconos/Usuarios/28x28/Users.png differ
diff --git a/Iconos/Usuarios/48x48/Thumbs.db b/Iconos/Usuarios/48x48/Thumbs.db
new file mode 100644
index 0000000..fa0d375
Binary files /dev/null and b/Iconos/Usuarios/48x48/Thumbs.db differ
diff --git a/Iconos/Usuarios/48x48/Users.png b/Iconos/Usuarios/48x48/Users.png
new file mode 100644
index 0000000..1697dfe
Binary files /dev/null and b/Iconos/Usuarios/48x48/Users.png differ
diff --git a/Iconos/fac.png b/Iconos/fac.png
new file mode 100644
index 0000000..3537443
Binary files /dev/null and b/Iconos/fac.png differ
diff --git a/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.bdsproj b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.bdsproj
new file mode 100644
index 0000000..ef68c28
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ AlbaranesCliente.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
+ Albaranes de cliente
+
+
+
+ .\
+ ..\..\..\Output\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.cfg b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.cfg
new file mode 100644
index 0000000..639fa68
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dcp b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dcp
new file mode 100644
index 0000000..a15b642
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dcp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dof b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dof
new file mode 100644
index 0000000..ad7ac23
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dof
@@ -0,0 +1,523 @@
+[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=Albaranes de cliente
+[Directories]
+OutputDir=
+UnitOutputDir=.\
+PackageDLLOutputDir=..\..\..\Output\Cliente
+PackageDCPOutputDir=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
+C:\Archivos de programa\EurekaLog 5\Delphi7\ExceptionExpert7.bpl=EurekaLog 5.1.9
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dpk b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dpk
new file mode 100644
index 0000000..2415b3a
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.dpk
@@ -0,0 +1,69 @@
+package AlbaranesCliente;
+
+{$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}
+{$DESCRIPTION 'Albaranes de cliente'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ BaseD7,
+ Contactos,
+ DataAbstract_D7,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ dbrtl,
+ vcljpg,
+ JvDBD7R,
+ dsnap,
+ Usuarios,
+ adortl,
+ DocumentosAsociados,
+ Presupuestos_Intf,
+ Pagos;
+
+contains
+ uPluginControllerAlbaranesCliente in 'uPluginControllerAlbaranesCliente.pas',
+ schAlbaranesClienteClient_Intf in '..\Reglas\schAlbaranesClienteClient_Intf.pas',
+ uBizAlbaranesCliente in '..\Reglas\uBizAlbaranesCliente.pas',
+ uDataModuleAlbaranesCliente in 'uDataModuleAlbaranesCliente.pas' {dmAlbaranesCliente: TDAClientDataModule},
+ uViewAlbaranesCliente in 'uViewAlbaranesCliente.pas' {frViewAlbaranesCliente: TFrame},
+ uEditorAlbaranesCliente in 'uEditorAlbaranesCliente.pas' {fEditorAlbaranesCliente: TCustomEditor},
+ uEditorAlbaranCliente in 'uEditorAlbaranCliente.pas' {fEditorAlbaranCliente: TCustomEditor},
+ uViewAlbaranCliente in 'uViewAlbaranCliente.pas' {frViewAlbaranCliente: TFrame},
+ uViewDatosAlbaranCliente in 'uViewDatosAlbaranCliente.pas' {frViewDatosAlbaranCliente: TFrame},
+ uViewDetallesAlbaranCliente in 'uViewDetallesAlbaranCliente.pas' {frViewDetallesAlbaranCliente: TFrame},
+ uViewPresupuestoAlbaran in 'uViewPresupuestoAlbaran.pas' {frViewPresupuestoAlbaran: TFrame},
+ uViewAlbaranRelacionado in 'uViewAlbaranRelacionado.pas' {frViewAlbaranRelacionado: TCustomView};
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.drc b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.res b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/AlbaranesCliente.res differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.dfm
new file mode 100644
index 0000000..9bc8cfe
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.dfm
@@ -0,0 +1,686 @@
+object dmAlbaranesCliente: TdmAlbaranesCliente
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 451
+ Top = 337
+ Height = 429
+ Width = 624
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvAlbaranesCliente'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 32
+ end
+ object tbl_AlbaranCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. albar'#225'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOALBARANCLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALBARAN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'SITUACIONALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPRESUPUESTO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'AlbaranCliente'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'AlbaranCliente'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'AlbaranCliente'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'AlbaranCliente'
+ IndexDefs = <>
+ Left = 144
+ Top = 32
+ end
+ object ds_AlbaranCliente: TDADataSource
+ DataTable = tbl_AlbaranCliente
+ Left = 240
+ Top = 32
+ end
+ object tbl_DetallesAlbaranCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. albar'#225'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOALBARANCLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPODETALLESALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Visible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = '1'
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOALBARAN=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesAlbaranCliente'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesAlbaranCliente'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesAlbaranCliente'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ MasterSource = ds_AlbaranCliente
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOALBARAN'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'DetallesAlbaranCliente'
+ IndexDefs = <>
+ Left = 144
+ Top = 88
+ end
+ object ds_DetallesAlbaranCliente: TDADataSource
+ DataTable = tbl_DetallesAlbaranCliente
+ Left = 240
+ Top = 88
+ end
+ object DADesigntimeCall1: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'UserID'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TLoginInfo'
+ end>
+ RemoteService = RORemoteService2
+ Left = 48
+ Top = 88
+ end
+ object RORemoteService2: TRORemoteService
+ ServiceName = 'srvLogin'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 152
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.pas b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.pas
new file mode 100644
index 0000000..f1df368
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uDataModuleAlbaranesCliente.pas
@@ -0,0 +1,255 @@
+unit uDataModuleAlbaranesCliente;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uDADesigntimeCall, uBizAlbaranesCliente, FactuGES_Intf;
+
+type
+ TdmAlbaranesCliente = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ tbl_AlbaranCliente: TDACDSDataTable;
+ ds_AlbaranCliente: TDADataSource;
+ tbl_DetallesAlbaranCliente: TDACDSDataTable;
+ ds_DetallesAlbaranCliente: TDADataSource;
+ DADesigntimeCall1: TDADesigntimeCall;
+ RORemoteService2: TRORemoteService;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ function GetNextAutoinc : integer;
+ function GetItem: IBizAlbaranesCliente; overload;
+ function GetItem(Codigo: Integer): IBizAlbaranesCliente; overload;
+ function GetItems: IBizAlbaranesCliente;
+ procedure Print(Const Codigo: Integer);
+ procedure Preview(Const Codigo: Integer);
+ function DarNuevaReferencia : String;
+ function PuedoEliminarAlbaran (CodigoAlbaran : Integer) : Boolean;
+ function GetItemsSeleccionados(ASource : IBizAlbaranesCliente): IBizAlbaranesCliente;
+ procedure CambiarSituacion(AAlbaran: IBizAlbaranesCliente);
+ end;
+
+var
+ dmAlbaranesCliente: TdmAlbaranesCliente;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto, uDataModulePagos,
+ uDataModuleContactos, uDataModuleBase, schAlbaranesClienteClient_Intf,
+ uEditorPreview, uROTypes, uDBSelectionList, uDAInterfaces;
+
+{ TDAClientDataModule1 }
+
+function TdmAlbaranesCliente.GetItems: IBizAlbaranesCliente;
+var
+ dtAlbaranes: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtAlbaranes := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_AlbaranCliente, dtAlbaranes);
+ with dtAlbaranes do
+ begin
+ BusinessRulesID := BIZ_ALBARANCLIENTE;
+ FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesAlbaranCliente, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+
+ FieldByName(fld_DetallesAlbaranClientePUNTOS).BusinessRulesID := 'Client.Field.Puntos';
+ FieldByName(fld_DetallesAlbaranClienteIMPORTEPUNTOS).BusinessRulesID := 'Client.Field.ImportePuntos';
+
+ FieldByName(fld_DetallesAlbaranClienteVISIBLE).BusinessRulesID := 'Client.Field.Visible';
+ end;
+ (dtAlbaranes as IBizAlbaranesCliente).Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
+
+ Result := (dtAlbaranes as IBizAlbaranesCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmAlbaranesCliente.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+ Adapter := dmBase.Adapter;
+end;
+
+
+function TdmAlbaranesCliente.GetItem: IBizAlbaranesCliente;
+var
+ dtAlbaranes: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtAlbaranes := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_AlbaranCliente, dtAlbaranes);
+ with dtAlbaranes do
+ begin
+ BusinessRulesID := BIZ_ALBARANCLIENTE;
+ FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesAlbaranCliente, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+ end;
+
+ (dtAlbaranes as IBizAlbaranesCliente).Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
+
+ Result := (dtAlbaranes as IBizAlbaranesCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmAlbaranesCliente.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvAlbaranesCliente).GetNextAutoinc;
+end;
+
+procedure TdmAlbaranesCliente.Preview(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmAlbaranesCliente.DarNuevaReferencia: String;
+begin
+ Result := (RORemoteService as IsrvAlbaranesCliente).DarNuevaReferencia;
+end;
+
+function TdmAlbaranesCliente.PuedoEliminarAlbaran(
+ CodigoAlbaran: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvAlbaranesCliente).PuedoEliminarAlbaran(CodigoAlbaran);
+end;
+
+procedure TdmAlbaranesCliente.Print(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmAlbaranesCliente.GetItemsSeleccionados(ASource: IBizAlbaranesCliente): IBizAlbaranesCliente;
+var
+ aObj : ISelectedRowList;
+ dtAlbaran : IBizAlbaranesCliente;
+ i : integer;
+begin
+ if Supports(ASource, ISelectedRowList, aObj) then
+ begin
+ if (aObj.SelectedRows.Count = 1) then
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
+ Result := GetItem(ASource.CODIGO);
+ Exit;
+ end
+ else
+ dtAlbaran := GetItems;
+ end
+ else
+ raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
+
+ if dtAlbaran.DataTable.Active then
+ dtAlbaran.DataTable.Active := False;
+ with dtAlbaran.DataTable.Where do
+ begin
+ Clear;
+ for i := 0 to aObj.SelectedRows.Count - 1 do
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
+ if i > 0 then
+ AddOperator(opAND);
+ AddText('ALBARANPAGO.' + fld_AlbaranClienteCODIGO + ' = ' + IntToStr(ASource.CODIGO));
+ end;
+ end;
+ Result := dtAlbaran;
+end;
+
+function TdmAlbaranesCliente.GetItem(Codigo: Integer): IBizAlbaranesCliente;
+var
+ AAlbaran : IBizAlbaranesCliente;
+begin
+ AAlbaran:= GetItems;
+ with AAlbaran.DataTable.Where do
+ AddText('ALBARANPAGO.' + fld_AlbaranClienteCODIGO + ' = ' + IntToStr(Codigo));
+ Result := AAlbaran;
+end;
+
+procedure TdmAlbaranesCliente.CambiarSituacion(AAlbaran: IBizAlbaranesCliente);
+var
+ FechaPago: TDateTime;
+begin
+ if Assigned(AAlbaran) then
+ begin
+ //El código presupuesto no ayudará a identificar el montaje relacionado
+ if dmPagos.AnadirPagoCliente(AAlbaran.Cliente, AAlbaran.CODIGOPRESUPUESTO, AAlbaran.REFERENCIA, AAlbaran.IMPORTETOTAL, FechaPago) then
+ begin
+ AAlbaran.Edit;
+ AAlbaran.FECHAPAGO := FechaPago;
+ AAlbaran.Post;
+ AAlbaran.DataTable.ApplyUpdates;
+ end;
+ end;
+end;
+
+initialization
+ dmAlbaranesCliente := TdmAlbaranesCliente.Create(nil);
+
+finalization
+ FreeAndNil(dmAlbaranesCliente);
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.dfm
new file mode 100644
index 0000000..ceb57e0
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.dfm
@@ -0,0 +1,172 @@
+inherited fEditorAlbaranCliente: TfEditorAlbaranCliente
+ Left = 172
+ Top = 111
+ Width = 771
+ Height = 579
+ Caption = 'Nuevo albar'#225'n de cliente'
+ Constraints.MinWidth = 770
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 763
+ Caption = 'Nuevo albar'#225'n de cliente'
+ inherited Image1: TImage
+ Left = 736
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CE4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B660AFA53D8A01CEC70FE2341C59ADE99E5D0CF356EF6198
+ BF64237E0B4871F9011B4706651669866DA7973344BEFCC6B070FD3EC21660F3
+ 01BA1808D81EDCC770D8DE89E1E6F943607ED8B32F0C4B361DA0CC07FFFF01C3
+ 1A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E40BDF
+ 07EF18D6EE38469C05306F9302BCEEBE61D8B0FB047116E04B39D800488FE2CA
+ B50C9BF69D24DE025C4105B31C260F532BB77C0DC3D603A768E703C925AB1876
+ 1D3E433B1F882D58C1B0F7F839DAF94078EE328603A72EE0B720DAC71C9C3BC9
+ F101FFEC250C47CE5CC26F4184A719387792E303AEE90B194E5EB88ADF825037
+ 1386634E2E6459C03E653EC399CBD7F15B10E062C470DAC50DAF6120CBFFCC9D
+ 0FE7B32427822D60993897E1FCB59BF82DF0753080972B9072FE1FB8EC018B01
+ CBFCA7D1A118F103E333F6CF61B874E3167E0BBC6CF5701A0EA25FC485630D3E
+ A22D70B3D6C66938A8047D93188933E888B2C0D15C036CD8BFBF9062F9F75F44
+ 71FCEF3FD4A27FFF501C810C085A6067A2062E112901782DE89D3C9F6C839101
+ CC0200E97E29EF897181770000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 763
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 763
+ Height = 328
+ ActivePage = pagContenido
+ inherited pagGeneral: TTabSheet
+ inline frViewAlbaranCliente1: TfrViewAlbaranCliente
+ Left = 0
+ Top = 0
+ Width = 755
+ Height = 300
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 300
+ Constraints.MinWidth = 755
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 313
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewDatosYSeleccionContacto1edtlNombrePropertiesChange
+ end
+ end
+ inherited frViewDatosAlbaranCliente1: TfrViewDatosAlbaranCliente
+ inherited eReferencia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ end
+ end
+ end
+ object pagContenido: TTabSheet
+ Caption = 'Contenido'
+ ImageIndex = 1
+ inline frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente
+ Left = 0
+ Top = 0
+ Width = 755
+ Height = 300
+ 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 = 755
+ Height = 278
+ end
+ inherited ToolBar1: TToolBar
+ Width = 755
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 526
+ Width = 763
+ end
+ inline frViewTotales1: TfrViewTotales [4]
+ Left = 0
+ Top = 404
+ Width = 763
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited TabControl1: TTabControl
+ Width = 763
+ inherited GroupBox1: TGroupBox
+ inherited lblBase: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit3: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit4: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit1: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit2: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ end
+ inherited SmallImages: TPngImageList [6]
+ end
+ inherited LargeImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.pas b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.pas
new file mode 100644
index 0000000..7e06a41
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranCliente.pas
@@ -0,0 +1,166 @@
+unit uEditorAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uBizAlbaranesCliente,
+ uViewAlbaranCliente, uCustomView, uViewBase, uViewContenido, uViewTotales,
+ uViewDetallesAlbaranCliente, StdCtrls, pngimage, AppEvnts,
+ uViewDetallesFamilias, JvComponentBase;
+
+type
+ IEditorAlbaranCliente = interface(IEditorDBItem)
+ ['{58CCCF45-8E27-418A-B938-075335A57A5F}']
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente write
+ SetAlbaranCliente;
+ end;
+
+ TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente)
+ frViewTotales1: TfrViewTotales;
+ pagContenido: TTabSheet;
+ frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente;
+ frViewAlbaranCliente1: TfrViewAlbaranCliente;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure FormShow(Sender: TObject); override;
+ procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+ private
+ FAlbaranCliente: IBizAlbaranesCliente;
+ FViewAlbaranCliente: IViewAlbaranCliente;
+ protected
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ function GetViewAlbaran: IViewAlbaranCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ procedure SetViewAlbaran(const Value: IViewAlbaranCliente);
+ property ViewAlbaranCliente: IViewAlbaranCliente read GetViewAlbaran write
+ SetViewAlbaran;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente write
+ SetAlbaranCliente;
+ end;
+
+var
+ fEditorAlbaranCliente: TfEditorAlbaranCliente;
+
+implementation
+
+uses uEditorUtils, uDataModuleAlbaranesCliente, uBizImportesDetalleBase,
+ uDataModulePresupuestos, uBizPresupuestosCliente,
+ schAlbaranesClienteClient_Intf, uExceptions;
+
+{$R *.dfm}
+
+function ShowEditorAlbaranCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorAlbaranCliente;
+begin
+ AEditor := TfEditorAlbaranCliente.Create(Application);
+ try
+ AEditor.AlbaranCliente := (ABizObject as IBizAlbaranesCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorAlbaranCliente }
+
+{
+**************************** TfEditorAlbaranCliente ****************************
+}
+constructor TfEditorAlbaranCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewAlbaranCliente := CreateView(TfrViewAlbaranCliente) as IViewAlbaranCliente;
+ pgPaginas.ActivePageIndex := 0;
+ ViewAlbaranCliente := frViewAlbaranCliente1;
+end;
+
+destructor TfEditorAlbaranCliente.Destroy;
+begin
+ FViewAlbaranCliente := NIL;
+ FAlbaranCliente := NIL;
+ inherited;
+end;
+
+procedure TfEditorAlbaranCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este albarán de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorAlbaranCliente.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewAlbaranCliente) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(AlbaranCliente) then
+ raise Exception.Create('No hay ningún albarán asignado');
+
+ AlbaranCliente.DataTable.Active := True;
+// FViewAlbaranCliente.ShowEmbedded(pagGeneral);
+// FViewAlbaranCliente.SetFocus;
+end;
+
+function TfEditorAlbaranCliente.GetAlbaranCliente: IBizAlbaranesCliente;
+begin
+ Result := FAlbaranCliente;
+end;
+
+function TfEditorAlbaranCliente.GetViewAlbaran: IViewAlbaranCliente;
+begin
+ Result := FViewAlbaranCliente;
+end;
+
+procedure TfEditorAlbaranCliente.SetAlbaranCliente(const Value:
+ IBizAlbaranesCliente);
+begin
+ FAlbaranCliente := Value;
+
+ if Assigned(FAlbaranCliente) then
+ begin
+ dsDataTable.DataTable := FAlbaranCliente.DataTable;
+ frViewTotales1.DADataSource.DataTable := FAlbaranCliente.DataTable;
+ frViewDetallesAlbaranCliente1.DADataSource.DataTable := FAlbaranCliente.Detalles.DataTable;
+
+ if Assigned(FViewAlbaranCliente) then
+ FViewAlbaranCliente.AlbaranCliente := FAlbaranCliente;
+ end;
+end;
+
+procedure TfEditorAlbaranCliente.SetViewAlbaran(const Value:
+ IViewAlbaranCliente);
+begin
+ FViewAlbaranCliente := Value;
+
+ if Assigned(FViewAlbaranCliente) and Assigned(AlbaranCliente) then
+ FViewAlbaranCliente.AlbaranCliente := AlbaranCliente;
+end;
+
+procedure TfEditorAlbaranCliente.frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewAlbaranCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo albarán de cliente'
+ else
+ JvNavPanelHeader.Caption := 'Albarán de ' + frViewAlbaranCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+initialization
+ RegisterEditor(IBizAlbaranesCliente, ShowEditorAlbaranCliente, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.dfm
new file mode 100644
index 0000000..8a7a4e0
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.dfm
@@ -0,0 +1,1447 @@
+inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente
+ Left = 330
+ Top = 228
+ Width = 815
+ Caption = 'Lista de albaranes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 807
+ Caption = 'Lista de albaranes'
+ inherited Image1: TImage
+ Left = 780
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CE4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B660AFA53D8A01CEC70FE2341C59ADE99E5D0CF356EF6198
+ BF64237E0B4871F9011B4706651669866DA7973344BEFCC6B070FD3EC21660F3
+ 01BA1808D81EDCC770D8DE89E1E6F943607ED8B32F0C4B361DA0CC07FFFF01C3
+ 1A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E40BDF
+ 07EF18D6EE38469C05306F9302BCEEBE61D8B0FB047116E04B39D800488FE2CA
+ B50C9BF69D24DE025C4105B31C260F532BB77C0DC3D603A768E703C925AB1876
+ 1D3E433B1F882D58C1B0F7F839DAF94078EE328603A72EE0B720DAC71C9C3BC9
+ F101FFEC250C47CE5CC26F4184A719387792E303AEE90B194E5EB88ADF825037
+ 1386634E2E6459C03E653EC399CBD7F15B10E062C470DAC50DAF6120CBFFCC9D
+ 0FE7B32427822D60993897E1FCB59BF82DF0753080972B9072FE1FB8EC018B01
+ CBFCA7D1A118F103E333F6CF61B874E3167E0BBC6CF5701A0EA25FC485630D3E
+ A22D70B3D6C66938A8047D93188933E888B2C0D15C036CD8BFBF9062F9F75F44
+ 71FCEF3FD4A27FFF501C810C085A6067A2062E112901782DE89D3C9F6C839101
+ CC0200E97E29EF897181770000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 807
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem14: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem33: TTBXItem
+ Visible = False
+ end
+ object TBXSeparatorItem16: TTBXSeparatorItem [8]
+ end
+ object TBXItem36: TTBXItem [9]
+ Action = actPagar
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 505
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 807
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 807
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 807
+ inherited bSeleccionar: TButton
+ Left = 636
+ end
+ inherited bCancelar: TButton
+ Left = 715
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ inherited actCancelar: TAction
+ OnExecute = frViewBarraSeleccionactCancelarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ end
+ object actPagar: TAction [24]
+ Category = 'Archivo'
+ Caption = 'Generar cobro'
+ ImageIndex = 23
+ OnExecute = actPagarExecute
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 610000000970485973000017120000171201679FD252000001784944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E03D06DFEFDE70F987FDDDF
+ 934161E54686CDFB4EE136C0F1D85186FD56D6605B8D76EE053B1B044036DF09
+ F661905ABA9E61E7A133B80D00391BDDE69FBFFE30FC028A3D890C60109ABB8A
+ E1E0A98B9806E4C47A321CB4B1410971B5F55B196E0542A2577CD15A869771C1
+ 0CBC3357301C3B7719D380F44837B02D7F7EFF03DB7CD5D7834169F566B0D8EF
+ DF10FC2E398C8163EA5286D397AE611A9018EA0CD70CF202CC6674C03C7111C3
+ 856B37310D880D70846B06F91BD9E6DFD01801E17FFFFE335CBA710BD380081F
+ 5B86155B0E139D13310C0009900A400600000CC180F01CA0F4A8000000004945
+ 4E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA
+ 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490
+ 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9
+ E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A
+ 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875
+ 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2
+ 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718
+ 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D
+ 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C
+ 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1
+ 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED
+ 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300
+ 00000049454E44AE426082}
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000001CE4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B660AFA53D8A01CEC70FE2341C59ADE99E5D0C
+ F356EF6198BF64237E0B4871F9011B4706651669866DA7973344BEFCC6B070FD
+ 3EC21660F301BA1808D81EDCC770D8DE89E1E6F943607ED8B32F0C4B361DA0CC
+ 07FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F701
+ 3100E40BDF07EF18D6EE38469C05306F9302BCEEBE61D8B0FB047116E04B39D8
+ 00488FE2CAB50C9BF69D24DE025C4105B31C260F532BB77C0DC3D603A768E703
+ C925AB18761D3E433B1F882D58C1B0F7F839DAF94078EE328603A72EE0B720DA
+ C71C9C3BC9F101FFEC250C47CE5CC26F4184A719387792E303AEE90B194E5EB8
+ 8ADF8250371386634E2E6459C03E653EC399CBD7F15B10E062C470DAC50DAF61
+ 20CBFFCC9D0FE7B32427822D60993897E1FCB59BF82DF0753080972B9072FE1F
+ B8EC018B01CBFCA7D1A118F103E333F6CF61B874E3167E0BBC6CF5701A0EA25F
+ C485630D3EA22D70B3D6C66938A8047D93188933E888B2C0D15C036CD8BFBF90
+ 62F9F75F4471FCEF3FD4A27FFF501C810C085A6067A2062E112901782DE89D3C
+ 9F6C839101CC0200E97E29EF897181770000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+ inherited GridPopupMenu: TPopupMenu
+ inherited Duplicar1: TMenuItem
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.pas b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.pas
new file mode 100644
index 0000000..14ef590
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uEditorAlbaranesCliente.pas
@@ -0,0 +1,210 @@
+unit uEditorAlbaranesCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
+ JvNavigationPane, uBizAlbaranesCliente, uViewGrid, pngimage, uCustomView,
+ uViewBase, uViewBarraSeleccion, JvComponentBase, StdCtrls, Buttons,
+ cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
+ cxCalendar, TBXDkPanels;
+
+type
+ IEditorAlbaranesCliente = interface(IEditorGrid)
+ ['{AEB08024-B44B-46FD-B145-F8332BB9219F}']
+ function GetAlbaranesCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
+ property AlbaranesCliente: IBizAlbaranesCliente read GetAlbaranesCliente
+ write SetAlbaranesCliente;
+ end;
+
+ TfEditorAlbaranesCliente = class(TfEditorGrid, IEditorAlbaranesCliente)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ actPagar: TAction;
+ TBXItem36: TTBXItem;
+ TBXSeparatorItem16: TTBXSeparatorItem;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactCancelarExecute(Sender: TObject);
+ procedure actPagarExecute(Sender: TObject);
+ procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject);
+ private
+ FAlbaranesCliente: IBizAlbaranesCliente;
+ protected
+ function GetAlbaranesCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property AlbaranesCliente: IBizAlbaranesCliente read GetAlbaranesCliente
+ write SetAlbaranesCliente;
+ property SelectionBarVisible: Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+implementation
+
+uses uDataModuleAlbaranesCliente, uViewAlbaranesCliente, uEditorUtils;
+
+{$R *.dfm}
+
+function ShowEditorAlbaranesCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorAlbaranesCliente;
+begin
+ AEditor := TfEditorAlbaranesCliente.Create(Application);
+ try
+ AEditor.AlbaranesCliente := (ABizObject as IBizAlbaranesCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorAlbaranesCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorAlbaranesCliente;
+begin
+ AEditor := TfEditorAlbaranesCliente.Create(Application);
+ try
+ AEditor.AlbaranesCliente := (ABizObject as IBizAlbaranesCliente);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+*************************** TfEditorAlbaranesCliente ***************************
+}
+constructor TfEditorAlbaranesCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewAlbaranesCliente) as IViewAlbaranesCliente;
+end;
+
+destructor TfEditorAlbaranesCliente.Destroy;
+begin
+ FAlbaranesCliente := NIL;
+ inherited;
+end;
+
+procedure TfEditorAlbaranesCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este albarán de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorAlbaranesCliente.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ AlbaranesCliente.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAlbaranesCliente.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ AlbaranesCliente.Insert;
+ AlbaranesCliente.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+function TfEditorAlbaranesCliente.GetAlbaranesCliente: IBizAlbaranesCliente;
+begin
+ Result := FAlbaranesCliente;
+end;
+
+procedure TfEditorAlbaranesCliente.SetAlbaranesCliente(const Value:
+ IBizAlbaranesCliente);
+begin
+ FAlbaranesCliente := Value;
+ dsDataTable.DataTable := FAlbaranesCliente.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewAlbaranesCliente).AlbaranesCliente := AlbaranesCliente;
+end;
+
+procedure TfEditorAlbaranesCliente.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(AlbaranesCliente) then
+ (ViewGrid as IViewAlbaranesCliente).AlbaranesCliente := FAlbaranesCliente;
+end;
+
+function TfEditorAlbaranesCliente.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible;
+end;
+
+procedure TfEditorAlbaranesCliente.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorAlbaranesCliente.frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+begin
+ inherited;
+ if (AlbaranesCliente.DataTable.RecordCount > 0) then
+ begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+ end;
+end;
+
+procedure TfEditorAlbaranesCliente.frViewBarraSeleccionactCancelarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+procedure TfEditorAlbaranesCliente.actPagarExecute(Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ dmAlbaranesCliente.CambiarSituacion(AlbaranesCliente);
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAlbaranesCliente.edtFechaFiltro1PropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+{
+ if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then
+ begin
+ if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then
+ begin
+ ShowMessage('La fecha de inicio debe ser anterior a la fecha final');
+ edtFechaFiltro1.SetFocus;
+ end
+ else
+ (ViewGrid as IViewAlbaranesCliente).AnadirFiltro2(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue);
+ end;
+}
+end;
+
+initialization
+ RegisterEditor(IBizAlbaranesCliente, ShowEditorAlbaranesCliente, etItems);
+ RegisterEditor(IBizAlbaranesCliente, ShowSelectEditorAlbaranesCliente, etSelectItems);
+
+finalization
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.dfm
new file mode 100644
index 0000000..d9083b1
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.dfm
@@ -0,0 +1,210 @@
+object ModuleAlbaranesCliente: TModuleAlbaranesCliente
+ OldCreateOrder = True
+ DefaultAction = actAlbaranesCliente
+ Description = 'Ventas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Albaranes de pago'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 652
+ Top = 457
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001CE4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B660AFA53D8A01CEC70FE2341C59ADE99E5D0C
+ F356EF6198BF64237E0B4871F9011B4706651669866DA7973344BEFCC6B070FD
+ 3EC21660F301BA1808D81EDCC770D8DE89E1E6F943607ED8B32F0C4B361DA0CC
+ 07FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F701
+ 3100E40BDF07EF18D6EE38469C05306F9302BCEEBE61D8B0FB047116E04B39D8
+ 00488FE2CAB50C9BF69D24DE025C4105B31C260F532BB77C0DC3D603A768E703
+ C925AB18761D3E433B1F882D58C1B0F7F839DAF94078EE328603A72EE0B720DA
+ C71C9C3BC9F101FFEC250C47CE5CC26F4184A719387792E303AEE90B194E5EB8
+ 8ADF8250371386634E2E6459C03E653EC399CBD7F15B10E062C470DAC50DAF61
+ 20CBFFCC9D0FE7B32427822D60993897E1FCB59BF82DF0753080972B9072FE1F
+ B8EC018B01CBFCA7D1A118F103E333F6CF61B874E3167E0BBC6CF5701A0EA25F
+ C485630D3EA22D70B3D6C66938A8047D93188933E888B2C0D15C036CD8BFBF90
+ 62F9F75F4471FCEF3FD4A27FFF501C810C085A6067A2062E112901782DE89D3C
+ 9F6C839101CC0200E97E29EF897181770000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actAlbaranesCliente: TAction
+ Category = 'Ventas'
+ Caption = 'Albaranes de cliente'
+ ImageIndex = 1
+ OnExecute = actAlbaranesClienteExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Tag = 400
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 0
+ object MenuItem5: TMenuItem
+ Tag = 3000
+ Action = actAlbaranesCliente
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001784944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E03D06DFEFDE70F987FDDDF
+ 934161E54686CDFB4EE136C0F1D85186FD56D6605B8D76EE053B1B044036DF09
+ F661905ABA9E61E7A133B80D00391BDDE69FBFFE30FC028A3D890C60109ABB8A
+ E1E0A98B9806E4C47A321CB4B1410971B5F55B196E0542A2577CD15A869771C1
+ 0CBC3357301C3B7719D380F44837B02D7F7EFF03DB7CD5D7834169F566B0D8EF
+ DF10FC2E398C8163EA5286D397AE611A9018EA0CD70CF202CC6674C03C7111C3
+ 856B37310D880D70846B06F91BD9E6DFD01801E17FFFFE335CBA710BD380081F
+ 5B86155B0E139D13310C0009900A400600000CC180F01CA0F4A8000000004945
+ 4E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD2520000028D4944415478DA
+ BDD6D96F12411800F00F313E9898989818135F4C4CF4C922F64A91F4B6144A8D
+ B6A5B5B59A68FF20638CF16AB1508A94638B40B14869412E918248F1A82FC627
+ A331515F8C0FEC7EEE2E47A80566EB36FD58B2CCB033BFF96616662588087B19
+ 924A707135C717B83AFECD14BE2B97D9177F143FF36DF90341BA4F5A15B8A269
+ 94D404A9C0060EF59CF9EFD1336C5F0C3B489A6680661850E8AE43C66DA90D3A
+ 56B238DCDB008136C5B6CE7AE2B19AD0BFD7B7AD05E1A1C50FB38E3961E04E83
+ 034F0F5C80BC2F07DE340593DFFE80DEB64206EDCFDFE0489FAC6686D5EABB62
+ 5158539C87CD6CBC5C37FEE53718A8553268F36550A73A2B38336E9D681AF933
+ B776F93C53AE9B7705C9A0D5F71A4755F2AA99080D2ED3A1CFBFC0E2090B0097
+ 59B0BF00564ED14EE3D2A79F60F546C8E0C2B3348EA9CFF160BDBBB25E706D4F
+ 514BE0F0C5C8A0C59B42F6872A1A3C697783D3FF920C3EF1AEE3B8A6A90CD65B
+ CBD2802AAF29B5396175813B902083E6A5244E0C348BCEF0B8D909CBA1A400D0
+ C3825AF1E0311305FE708A0CCE7B5EE1556D8BE8293D6A7440209A2683267702
+ 27075B456778446F836022230074257062B085FFAB12031E9E5E8070324B068D
+ 4FE3EC1AB64248A91435A5871E582096DE10068EA99B21D2D12E2AC383F7CC90
+ C8BC258306670C75FD4D10EFEA14051EB8638254EE3D199C5D8CE2E5DE4658EF
+ EB16D43937A8BC7EA65CDE7F738A07A5B78D9079B7290CBCD82D2F6E39F496C7
+ 059A293C3EE48BE5AFD786B7AD73A92CB96580EC878F64F03115416DA79C88D1
+ 7984EF3746AA4EFB8E40BD238C9A0E1911E3CE3FA6466B4EB56070C6FE02D5ED
+ 3222B66540153B7E650802A76D2154291BF8BD6C3782083EB206F1EEDCFD5DC1
+ 4A5117DC8BF80B62399AE770EE3AE80000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.pas b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.pas
new file mode 100644
index 0000000..f0fe4cd
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uPluginControllerAlbaranesCliente.pas
@@ -0,0 +1,68 @@
+unit uPluginControllerAlbaranesCliente;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCAlbaranesCliente = interface(IInterface)
+ ['{2D9B9C86-6970-46E6-A4B3-4361361C38B6}']
+ end;
+
+ TModuleAlbaranesCliente = class(TModuleController, IMCAlbaranesCliente)
+ actAlbaranesCliente: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ MenuItem5: TMenuItem;
+ procedure actAlbaranesClienteExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils,
+ uBizAlbaranesCliente, uDataModuleAlbaranesCliente, uEditorAlbaranesCliente;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleAlbaranesCliente.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TModuleAlbaranesCliente.actAlbaranesClienteExecute(Sender: TObject);
+var
+ aObj: IEditorAlbaranesCliente;
+ AAlbaranesCliente : IBizAlbaranesCliente;
+begin
+ AAlbaranesCliente := dmAlbaranesCliente.GetItems;
+ aObj := TfEditorAlbaranesCliente.Create(Application);
+ try
+ with aObj do
+ begin
+ AlbaranesCliente := AAlbaranesCliente;
+ ShowEmbedded;
+ end;
+ finally
+ AAlbaranesCliente := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleAlbaranesCliente);
+
+finalization
+ UnRegisterModuleClass(TModuleAlbaranesCliente);
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.dfm
new file mode 100644
index 0000000..ed0a5d5
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.dfm
@@ -0,0 +1,186 @@
+inherited frViewAlbaranCliente: TfrViewAlbaranCliente
+ Width = 755
+ Height = 300
+ Align = alClient
+ Constraints.MinHeight = 300
+ Constraints.MinWidth = 755
+ inline frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ Left = 362
+ Top = 0
+ Width = 391
+ Height = 228
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 265
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ Caption = 'Dar de alta un cliente'
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ Height = 21
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 4
+ Height = 21
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 3
+ Height = 21
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ Height = 21
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ Height = 21
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ Left = 181
+ ButtonWidth = 178
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ StyleDisabled.TextColor = clActiveCaption
+ Height = 21
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 32
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ end
+ end
+ end
+ inline frViewDatosAlbaranCliente1: TfrViewDatosAlbaranCliente
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited edtFecha: TcxDBDateEdit
+ Width = 245
+ end
+ inherited edtFechaPago: TcxDBDateEdit
+ Width = 245
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Width = 245
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 0
+ Top = 215
+ Width = 360
+ Height = 79
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 252
+ end
+ inherited memFormaPago: TcxDBMemo
+ Height = 45
+ Width = 329
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 368
+ Top = 215
+ Width = 381
+ Height = 77
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 283
+ end
+ inherited memObservaciones: TcxDBMemo
+ Height = 45
+ Width = 360
+ end
+ end
+ inline frViewPresupuestoAlbaran1: TfrViewPresupuestoAlbaran
+ Left = 0
+ Top = 104
+ Width = 360
+ Height = 121
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited edtlReferencia: TcxDBTextEdit
+ Height = 21
+ Width = 245
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.pas b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.pas
new file mode 100644
index 0000000..0f17cd3
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranCliente.pas
@@ -0,0 +1,100 @@
+unit uViewAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizAlbaranesCliente, DB, uDADataTable, uCustomView,
+ uViewDatosYSeleccionContacto, uViewDatosAlbaranCliente,
+ uViewObservaciones, uViewFormaPago, AppEvnts, uViewPresupuestoAlbaran,
+ uViewPresupuestoRelacionado, JvExControls, JvComponent, JvLabel,
+ JvDBControls, StdCtrls, Buttons;
+
+type
+ IViewAlbaranCliente = interface(IViewBase)
+ ['{4AF36827-838E-40AC-BEB5-72D69C721E6B}']
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente
+ write SetAlbaranCliente;
+ end;
+
+ TfrViewAlbaranCliente = class(TfrViewBase, IViewAlbaranCliente)
+ DADataSource: TDADataSource;
+ frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto;
+ frViewDatosAlbaranCliente1: TfrViewDatosAlbaranCliente;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewPresupuestoAlbaran1: TfrViewPresupuestoAlbaran;
+ procedure BitBtn1Click(Sender: TObject);
+ private
+ FAlbaranCliente : IBizAlbaranesCliente;
+ procedure OnContactoChanged (Sender : TObject);
+ procedure OnPresupuestoChanged(Sender : TObject);
+ protected
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ public
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente
+ write SetAlbaranCliente;
+ end;
+
+var
+ frViewAlbaranCliente: TfrViewAlbaranCliente;
+
+implementation
+
+uses uBizContacto, uExceptions, uDataModulePresupuestos;
+
+{$R *.dfm}
+
+{ TfrViewAlbaranCliente }
+
+function TfrViewAlbaranCliente.GetAlbaranCliente: IBizAlbaranesCliente;
+begin
+ Result := FAlbaranCliente;
+end;
+
+procedure TfrViewAlbaranCliente.OnContactoChanged(Sender: TObject);
+begin
+ if FAlbaranCliente.CODIGOCONTACTO <> (frViewDatosYSeleccionContacto1.Contacto as IBizCliente).CODIGO then
+ FAlbaranCliente.Cliente := (frViewDatosYSeleccionContacto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewAlbaranCliente.OnPresupuestoChanged(Sender: TObject);
+begin
+ if not (FAlbaranCliente.DataTable.State in dsEditModes) then
+ FAlbaranCliente.Edit;
+ FAlbaranCliente.CODIGOPRESUPUESTO := frViewPresupuestoAlbaran1.Presupuesto.CODIGO;
+ FAlbaranCliente.CopyFrom(frViewPresupuestoAlbaran1.Presupuesto);
+ frViewDatosYSeleccionContacto1.Contacto := FAlbaranCliente.Cliente;
+ MessageBox(0, 'Se ha copiado correctamente el presupuesto elegido en este albarán.', 'Presupuesto copiado', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TfrViewAlbaranCliente.SetAlbaranCliente(
+ const Value: IBizAlbaranesCliente);
+begin
+ FAlbaranCliente := Value;
+ if Assigned(FAlbaranCliente) then
+ DADataSource.DataTable := FAlbaranCliente.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosAlbaranCliente1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewDatosYSeleccionContacto1.Contacto := FAlbaranCliente.Cliente;
+ frViewDatosYSeleccionContacto1.OnContactoChanged := OnContactoChanged;
+
+ frViewPresupuestoAlbaran1.Presupuesto := dmPresupuestos.GetPresupuesto(FAlbaranCliente.CODIGOPRESUPUESTO);
+ frViewPresupuestoAlbaran1.OnPresupuestoChanged := OnPresupuestoChanged;
+end;
+
+procedure TfrViewAlbaranCliente.BitBtn1Click(Sender: TObject);
+begin
+ inherited;
+ frViewDatosYSeleccionContacto1.Contacto.DataTable.Active := tRUE;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.ddp b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.dfm b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.dfm
new file mode 100644
index 0000000..0ca51fa
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.dfm
@@ -0,0 +1,163 @@
+inherited frViewAlbaranRelacionado: TfrViewAlbaranRelacionado
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 114
+ Height = 13
+ Caption = 'Albar'#225'n relacionado'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 152
+ Top = 8
+ Width = 197
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 107
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirAlbaran
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 111
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 119
+ Top = 0
+ Action = actVerAlbaran
+ end
+ end
+ object edtlReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirAlbaran: TAction
+ Caption = 'Elegir un albar'#225'n'
+ ImageIndex = 1
+ end
+ object actVerAlbaran: TAction
+ Caption = 'Ver el albaran...'
+ ImageIndex = 1
+ OnExecute = actVerAlbaranExecute
+ OnUpdate = actVerAlbaranUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+ object DADataSource: TDADataSource
+ Left = 320
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.pas b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.pas
new file mode 100644
index 0000000..e69dc89
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranRelacionado.pas
@@ -0,0 +1,110 @@
+unit uViewAlbaranRelacionado;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizAlbaranesCliente;
+
+type
+ IViewAlbaranRelacionado = interface(IViewBase)
+ ['{FE0AF619-B4C7-4347-B890-BE8834803B1E}']
+
+ function GetAlbaran: IBizAlbaranesCliente;
+ procedure SetAlbaran(const Value: IBizAlbaranesCliente);
+ property Albaran: IBizAlbaranesCliente read GetAlbaran write SetAlbaran;
+
+ function GetOnAlbaranChanged : TNotifyEvent;
+ procedure SetOnAlbaranChanged (const Value : TNotifyEvent);
+ property OnAlbaranChanged : TNotifyEvent read GetOnAlbaranChanged
+ write SetOnAlbaranChanged;
+ end;
+
+ TfrViewAlbaranRelacionado = class(TfrViewBase, IViewAlbaranRelacionado)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirAlbaran: TAction;
+ actVerAlbaran: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ DADataSource: TDADataSource;
+ edtlReferencia: TcxDBTextEdit;
+ procedure actVerAlbaranExecute(Sender: TObject);
+ procedure actVerAlbaranUpdate(Sender: TObject);
+ private
+ FAlbaran : IBizAlbaranesCliente;
+ FOnAlbaranChanged : TNotifyEvent;
+ protected
+ function GetAlbaran: IBizAlbaranesCliente;
+ procedure SetAlbaran(const Value: IBizAlbaranesCliente);
+
+ function GetOnAlbaranChanged : TNotifyEvent;
+ procedure SetOnAlbaranChanged (const Value : TNotifyEvent);
+ public
+ property Albaran: IBizAlbaranesCliente read GetAlbaran write SetAlbaran;
+ property OnAlbaranChanged : TNotifyEvent read GetOnAlbaranChanged
+ write SetOnAlbaranChanged;
+ end;
+
+var
+ frViewAlbaranRelacionado: TfrViewAlbaranRelacionado;
+
+implementation
+
+uses
+ uDataModuleAlbaranesCliente, schAlbaranesClienteClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewAlbaranRelacionado }
+
+procedure TfrViewAlbaranRelacionado.actVerAlbaranExecute(
+ Sender: TObject);
+begin
+ FAlbaran.Show;
+end;
+
+procedure TfrViewAlbaranRelacionado.actVerAlbaranUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Assigned(FAlbaran);
+end;
+
+function TfrViewAlbaranRelacionado.GetAlbaran: IBizAlbaranesCliente;
+begin
+ Result := FAlbaran;
+end;
+
+procedure TfrViewAlbaranRelacionado.SetAlbaran(const Value: IBizAlbaranesCliente);
+begin
+ FAlbaran := Value;
+ DADataSource.DataTable := FAlbaran.DataTable;
+
+ if not FAlbaran.DataTable.Active then
+ FAlbaran.DataTable.Active := True;
+
+ if Assigned(FOnAlbaranChanged) then
+ FOnAlbaranChanged(Self);
+end;
+
+
+function TfrViewAlbaranRelacionado.GetOnAlbaranChanged: TNotifyEvent;
+begin
+ Result := FOnAlbaranChanged;
+end;
+
+procedure TfrViewAlbaranRelacionado.SetOnAlbaranChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnAlbaranChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.dfm
new file mode 100644
index 0000000..491c277
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.dfm
@@ -0,0 +1,217 @@
+inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 Albaranes'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ object cxGridViewICONO: TcxGridDBColumn
+ Visible = False
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Width = 25
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 21
+ IsCaptionAssigned = True
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Pagado'
+ ImageIndex = 3
+ Tag = 1
+ Value = 'Pagado'
+ end>
+ Properties.ShowDescriptions = False
+ BestFitMaxWidth = 25
+ Width = 58
+ IsCaptionAssigned = True
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ PropertiesClassName = 'TcxTextEditProperties'
+ SortIndex = 0
+ SortOrder = soDescending
+ Width = 136
+ end
+ object cxGridViewREFERENCIAPRESUPUESTO: TcxGridDBColumn
+ Caption = 'Ref. montaje'
+ DataBinding.FieldName = 'REFERENCIAPRESUPUESTO'
+ end
+ object cxGridViewFECHAALBARAN: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALBARAN'
+ Width = 138
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 681
+ end
+ object cxGridViewFECHAPAGO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAPAGO'
+ Width = 118
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 147
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ object cxGridLevel1: TcxGridLevel
+ Caption = 'Pendientes'
+ end
+ object cxGridLevel2: TcxGridLevel
+ Caption = 'Pagados'
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 465
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 245
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 204
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001784944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E03D06DFEFDE70F987FDDDF
+ 934161E54686CDFB4EE136C0F1D85186FD56D6605B8D76EE053B1B044036DF09
+ F661905ABA9E61E7A133B80D00391BDDE69FBFFE30FC028A3D890C60109ABB8A
+ E1E0A98B9806E4C47A321CB4B1410971B5F55B196E0542A2577CD15A869771C1
+ 0CBC3357301C3B7719D380F44837B02D7F7EFF03DB7CD5D7834169F566B0D8EF
+ DF10FC2E398C8163EA5286D397AE611A9018EA0CD70CF202CC6674C03C7111C3
+ 856B37310D880D70846B06F91BD9E6DFD01801E17FFFFE335CBA710BD380081F
+ 5B86155B0E139D13310C0009900A400600000CC180F01CA0F4A8000000004945
+ 4E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000001F14944415478DA8D92AD73DB4010C59F5958AE2CAC07CDA230B30896
+ 557F82CACC2A58A832B30AB6ECA0E1414341C32D7391179AF5C2C2D4B7ABBAB5
+ A7CD4C3423DFC9BBFBF6B71F8B3EE984CBE719287E96F97E3E71FEBEB62D5CE0
+ 340237012100314654D53D82AB3DF96FA1BF324044F82A444D8E1EAAB34080A0
+ 5A568877BC9D1870A29977A54361B489EA41E704E6C3FFF39E22145B745F756A
+ 5796216014F56C5D1391470113396664645D05F4499CA85E9296C4298D141874
+ FAF2F12D3E7FFBEE0156ED2CA04E0327A0C0121450B75BB9431BD1AE29D06E64
+ 6ADF1197CE4EC05A9B55E049A2BD78B3AA55855014895496B9A9677B1A28D0F4
+ 325541D9B8C81AADEEE2755A09464058344C503F679430F7C27A54562D8675A6
+ C027996228DE653BE35D74E4BCB312F87D222E51C3AAC6ADF65ED21385FB6D41
+ 96761610192FF6A05CED843DA9AFA1B9F6DA85827200EB6FD16F80055EF1C8D8
+ 4FF78F0DF063A0A83A019B8FB4D3C52B0552946D77C40D66020EA3A9AB0FDD26
+ A73F02631E26FC6EA22F52C09B76DD97B3EDF17D7D4D900AD256660273A8EAEA
+ 6F9318D66E7CDBDC2EFB143577471BF17F090C5177FDD1EE5A38FF83AD2C09BA
+ EEA7051995BD5D5370CBB5F7292460D88E2FF7A01CF204EEC3E5E8DA646B5C98
+ 2070E47818B6222F0AFC4345EC70838794452EFD7E0189B54D6F3A8EEF030000
+ 000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.pas b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.pas
new file mode 100644
index 0000000..d942108
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewAlbaranesCliente.pas
@@ -0,0 +1,156 @@
+unit uViewAlbaranesCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics,
+ cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList,
+ PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable,
+ cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
+ uBizAlbaranesCliente, cxImage, Grids, DBGrids, cxCurrencyEdit, StdCtrls,
+ Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar,
+ cxContainer, TB2Dock, TBXDkPanels, uViewFiltroBase;
+
+type
+ IViewAlbaranesCliente = interface(IViewGrid)
+ ['{A490D8D4-B431-44D2-8AD7-BA74B40E98B7}']
+ procedure SyncFocusedRecord;
+ function GetAlbaranesCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
+ property AlbaranesCliente: IBizAlbaranesCliente read GetAlbaranesCliente
+ write SetAlbaranesCliente;
+ end;
+
+ TfrViewAlbaranesCliente = class(TfrViewGrid, IViewAlbaranesCliente)
+ PngImageList: TPngImageList;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewFECHAALBARAN: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewFECHAPAGO: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ cxGridLevel1: TcxGridLevel;
+ cxGridLevel2: TcxGridLevel;
+ cxGridViewREFERENCIAPRESUPUESTO: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroSituaciones;
+ procedure AnadirFiltroFechas;
+
+ protected
+ FAlbaranesCliente: IBizAlbaranesCliente;
+ function GetAlbaranesCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranesCliente(const Value: IBizAlbaranesCliente);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ property AlbaranesCliente: IBizAlbaranesCliente read GetAlbaranesCliente write SetAlbaranesCliente;
+ procedure SyncFocusedRecord;
+ end;
+
+var
+ frViewAlbaranesCliente: TfrViewAlbaranesCliente;
+
+implementation
+
+uses
+ uDataModuleAlbaranesCliente;
+
+{$R *.dfm}
+
+{ TfrViewAlbaranesCliente }
+
+function TfrViewAlbaranesCliente.GetAlbaranesCliente: IBizAlbaranesCliente;
+begin
+ Result := FAlbaranesCliente;
+end;
+
+procedure TfrViewAlbaranesCliente.SetAlbaranesCliente(
+ const Value: IBizAlbaranesCliente);
+begin
+ FAlbaranesCliente := Value;
+ if Assigned(FAlbaranesCliente) then
+ DADataSource.DataTable := FAlbaranesCliente.DataTable;
+end;
+
+procedure TfrViewAlbaranesCliente.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewAlbaranesCliente.SyncFocusedRecord;
+begin
+//
+end;
+
+procedure TfrViewAlbaranesCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+begin
+ inherited;
+ RefrescarFiltro;
+end;
+
+procedure TfrViewAlbaranesCliente.AnadirFiltroSituaciones;
+var
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ FFiltro := AddFilterGrid(fboAnd);
+
+ case cxGrid.ActiveLevel.Index of
+ 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
+ 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PAGADO, SITUACION_PAGADO);
+ end;
+end;
+
+procedure TfrViewAlbaranesCliente.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAALBARAN');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+procedure TfrViewAlbaranesCliente.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroSituaciones;
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.dfm
new file mode 100644
index 0000000..936b282
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.dfm
@@ -0,0 +1,101 @@
+inherited frViewDatosAlbaranCliente: TfrViewDatosAlbaranCliente
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 110)
+ object Bevel1: TBevel
+ Left = 176
+ Top = 8
+ Width = 173
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 161
+ Height = 13
+ Caption = 'Datos del albar'#225'n de cliente'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 69
+ Height = 13
+ Caption = 'Fecha de alta:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 80
+ Width = 75
+ Height = 13
+ Caption = 'Fecha de pago:'
+ end
+ object edtFecha: TcxDBDateEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAALBARAN'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtFechaPago: TcxDBDateEdit
+ Left = 100
+ Top = 76
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAPAGO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ Properties.ReadOnly = True
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.Color = clMenuBar
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.pas b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.pas
new file mode 100644
index 0000000..fa1f071
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewDatosAlbaranCliente.pas
@@ -0,0 +1,35 @@
+unit uViewDatosAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxMemo, cxRichEdit, cxDBRichEdit;
+
+type
+ TfrViewDatosAlbaranCliente = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFecha: TcxDBDateEdit;
+ Label3: TLabel;
+ edtFechaPago: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosAlbaranCliente: TfrViewDatosAlbaranCliente;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.ddp b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.dfm b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.dfm
new file mode 100644
index 0000000..59080a4
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.dfm
@@ -0,0 +1,52 @@
+inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ inherited cxGridViewTIPO: TcxGridDBColumn
+ Width = 69
+ end
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ Width = 526
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn [3]
+ DataBinding.FieldName = 'PUNTOS'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 74
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn [4]
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 124
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Properties.Alignment.Horz = taRightJustify
+ Width = 83
+ end
+ inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewVISIBLE: TcxGridDBColumn
+ Styles.OnGetContentStyle = cxGridViewVISIBLEStylesGetContentStyle
+ Width = 76
+ end
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStyle_PUNTOS: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = 16053492
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ TextColor = clWindowText
+ end
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.pas b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.pas
new file mode 100644
index 0000000..93b796c
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewDetallesAlbaranCliente.pas
@@ -0,0 +1,94 @@
+unit uViewDetallesAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, Controls,
+ PngImageList, uDADataTable, Classes, ActnList, ComCtrls, ToolWin,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesFamilias,
+ cxCheckBox, cxMaskEdit, cxCurrencyEdit;
+
+type
+ TfrViewDetallesAlbaranCliente = class(TfrViewDetallesFamilias)
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxStyle_PUNTOS: TcxStyle;
+ procedure cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ end;
+
+
+implementation
+
+uses
+ Variants, uBizImportesDetalleBase, SysUtils;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.ddp b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.ddp differ
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.dfm b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.dfm
new file mode 100644
index 0000000..c469251
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.dfm
@@ -0,0 +1,16 @@
+inherited frViewPresupuestoAlbaran: TfrViewPresupuestoAlbaran
+ inherited lblNombre: TLabel
+ Width = 64
+ Caption = 'Presupuesto:'
+ end
+ inherited edtlReferencia: TcxDBTextEdit
+ StyleDisabled.BorderStyle = ebsNone
+ Height = 21
+ Width = 245
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirPresupuesto: TAction
+ OnExecute = actElegirPresupuestoExecute
+ end
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.pas b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.pas
new file mode 100644
index 0000000..e84227e
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoAlbaran.pas
@@ -0,0 +1,55 @@
+unit uViewPresupuestoAlbaran;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPresupuestoRelacionado, ImgList, PngImageList, ActnList,
+ cxControls, cxContainer, cxEdit, cxTextEdit, ComCtrls, ToolWin, ExtCtrls,
+ StdCtrls, cxDBEdit, DB, uDADataTable;
+
+type
+ TfrViewPresupuestoAlbaran = class(TfrViewPresupuestoRelacionado)
+ procedure actElegirPresupuestoExecute(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewPresupuestoAlbaran: TfrViewPresupuestoAlbaran;
+
+implementation
+
+uses uBizPresupuestosCliente, schPresupuestosClient_Intf,
+ uDataModulePresupuestos;
+
+{$R *.dfm}
+
+procedure TfrViewPresupuestoAlbaran.actElegirPresupuestoExecute(
+ Sender: TObject);
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ inherited;
+
+ if Length(edtlReferencia.Text) > 0 then
+ if (MessageBox(0, 'Este albarán ya tiene asociado un presupuesto. '+#13+#10+
+ 'Si elige otro presupuesto, se cambiará en este albarán el cliente y los conceptos '+#13+#10+
+ 'para hacerlos coincidir con el presupuesto elegido. '+#13+#10+
+ '¿Desea continuar?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idNo) then
+ Exit;
+
+ APresupuesto := dmPresupuestos.GetPresupuestosSinAlbaran;
+ try
+ if APresupuesto.ShowForSelect = mrOK then
+ begin
+ Self.Presupuesto := dmPresupuestos.GetItemsSeleccionados(APresupuesto)
+ end;
+ finally
+ APresupuesto := NIL;
+ end;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.dfm b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.dfm
new file mode 100644
index 0000000..8e2edd2
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.dfm
@@ -0,0 +1,163 @@
+inherited frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 141
+ Height = 13
+ Caption = 'Presupuesto relacionado'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 152
+ Top = 8
+ Width = 197
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 131
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirPresupuesto
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 135
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 143
+ Top = 0
+ Action = actVerPresupuesto
+ end
+ end
+ object edtlReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirPresupuesto: TAction
+ Caption = 'Elegir un presupuesto'
+ ImageIndex = 1
+ end
+ object actVerPresupuesto: TAction
+ Caption = 'Ver el presupuesto...'
+ ImageIndex = 1
+ OnExecute = actVerPresupuestoExecute
+ OnUpdate = actVerPresupuestoUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+ object DADataSource: TDADataSource
+ Left = 320
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.pas b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.pas
new file mode 100644
index 0000000..8be171b
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Cliente/uViewPresupuestoRelacionado.pas
@@ -0,0 +1,111 @@
+unit uViewPresupuestoRelacionado;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizPresupuestosCliente;
+
+type
+ IViewPresupuestoRelacionado = interface(IViewBase)
+ ['{42655AAC-2669-452D-8E56-C9AF657EF2BF}']
+
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+ TfrViewPresupuestoRelacionado = class(TfrViewBase, IViewPresupuestoRelacionado)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirPresupuesto: TAction;
+ actVerPresupuesto: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ DADataSource: TDADataSource;
+ edtlReferencia: TcxDBTextEdit;
+ procedure actVerPresupuestoExecute(Sender: TObject);
+ procedure actVerPresupuestoUpdate(Sender: TObject);
+ private
+ FPresupuesto : IBizPresupuestos;
+ FOnPresupuestoChanged : TNotifyEvent;
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+var
+ frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado;
+
+implementation
+
+uses
+ uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewPresupuestoAlbaran }
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoExecute(
+ Sender: TObject);
+begin
+ FPresupuesto.Show;
+end;
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Assigned(FPresupuesto);
+end;
+
+function TfrViewPresupuestoRelacionado.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetPresupuesto(
+ const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ DADataSource.DataTable := FPresupuesto.DataTable;
+
+ if not FPresupuesto.DataTable.Active then
+ FPresupuesto.DataTable.Active := True;
+
+ if Assigned(FOnPresupuestoChanged) then
+ FOnPresupuestoChanged(Self);
+end;
+
+
+function TfrViewPresupuestoRelacionado.GetOnPresupuestoChanged: TNotifyEvent;
+begin
+ Result := FOnPresupuestoChanged;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetOnPresupuestoChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnPresupuestoChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteClient_Intf.pas b/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteClient_Intf.pas
new file mode 100644
index 0000000..9ecb273
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteClient_Intf.pas
@@ -0,0 +1,1715 @@
+unit schAlbaranesClienteClient_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_DarReferenciaAlbaran = '{35F98298-F696-46BE-9D56-50D87C52A2C1}';
+ RID_AlbaranCliente = '{14578616-F521-4BA3-A7E9-BB99BA3FA09C}';
+ RID_AlbaranDePresupuesto = '{116AED58-1A39-4230-8961-B965FB7B0697}';
+ RID_DetallesAlbaranCliente = '{9C31D267-5CA0-4776-9B6A-32E4633153D9}';
+ RID_AlbaranCliente_RefreshDataset = '{22F08733-B02A-4130-84ED-B1E32F9F18DF}';
+ RID_InformeCabeceraAlbaranPago = '{D018D751-1373-4A7C-9E2F-BFD097EC6967}';
+ RID_InformeDetallesAlbaranPago = '{61D6092F-B71A-40E6-9601-980B85F71C86}';
+ RID_DarSumaImportes = '{6AD3F242-7984-41B6-8F0F-CEAEF113373A}';
+
+ { Data table names }
+ nme_DarReferenciaAlbaran = 'DarReferenciaAlbaran';
+ nme_AlbaranCliente = 'AlbaranCliente';
+ nme_AlbaranDePresupuesto = 'AlbaranDePresupuesto';
+ nme_DetallesAlbaranCliente = 'DetallesAlbaranCliente';
+ nme_AlbaranCliente_RefreshDataset = 'AlbaranCliente_RefreshDataset';
+ nme_InformeCabeceraAlbaranPago = 'InformeCabeceraAlbaranPago';
+ nme_InformeDetallesAlbaranPago = 'InformeDetallesAlbaranPago';
+ nme_DarSumaImportes = 'DarSumaImportes';
+
+ { DarReferenciaAlbaran fields }
+ fld_DarReferenciaAlbaranREFERENCIA = 'REFERENCIA';
+
+ { DarReferenciaAlbaran field indexes }
+ idx_DarReferenciaAlbaranREFERENCIA = 0;
+
+ { AlbaranCliente fields }
+ fld_AlbaranClienteCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_AlbaranClienteCODIGO = 'CODIGO';
+ fld_AlbaranClienteFECHAALTA = 'FECHAALTA';
+ fld_AlbaranClienteUSUARIO = 'USUARIO';
+ fld_AlbaranClienteREFERENCIA = 'REFERENCIA';
+ fld_AlbaranClienteCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_AlbaranClienteNOMBRE = 'NOMBRE';
+ fld_AlbaranClienteFECHAALBARAN = 'FECHAALBARAN';
+ fld_AlbaranClienteSITUACION = 'SITUACION';
+ fld_AlbaranClienteFECHAPAGO = 'FECHAPAGO';
+ fld_AlbaranClienteCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_AlbaranClienteBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_AlbaranClienteDESCUENTO = 'DESCUENTO';
+ fld_AlbaranClienteIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_AlbaranClienteIVA = 'IVA';
+ fld_AlbaranClienteIMPORTEIVA = 'IMPORTEIVA';
+ fld_AlbaranClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_AlbaranClienteOBSERVACIONES = 'OBSERVACIONES';
+ fld_AlbaranClienteFORMAPAGO = 'FORMAPAGO';
+ fld_AlbaranClienteREFERENCIAPRESUPUESTO = 'REFERENCIAPRESUPUESTO';
+
+ { AlbaranCliente field indexes }
+ idx_AlbaranClienteCODIGOEMPRESA = 0;
+ idx_AlbaranClienteCODIGO = 1;
+ idx_AlbaranClienteFECHAALTA = 2;
+ idx_AlbaranClienteUSUARIO = 3;
+ idx_AlbaranClienteREFERENCIA = 4;
+ idx_AlbaranClienteCODIGOCONTACTO = 5;
+ idx_AlbaranClienteNOMBRE = 6;
+ idx_AlbaranClienteFECHAALBARAN = 7;
+ idx_AlbaranClienteSITUACION = 8;
+ idx_AlbaranClienteFECHAPAGO = 9;
+ idx_AlbaranClienteCODIGOPRESUPUESTO = 10;
+ idx_AlbaranClienteBASEIMPONIBLE = 11;
+ idx_AlbaranClienteDESCUENTO = 12;
+ idx_AlbaranClienteIMPORTEDESCUENTO = 13;
+ idx_AlbaranClienteIVA = 14;
+ idx_AlbaranClienteIMPORTEIVA = 15;
+ idx_AlbaranClienteIMPORTETOTAL = 16;
+ idx_AlbaranClienteOBSERVACIONES = 17;
+ idx_AlbaranClienteFORMAPAGO = 18;
+ idx_AlbaranClienteREFERENCIAPRESUPUESTO = 19;
+
+ { AlbaranDePresupuesto fields }
+ fld_AlbaranDePresupuestoCODIGO = 'CODIGO';
+
+ { AlbaranDePresupuesto field indexes }
+ idx_AlbaranDePresupuestoCODIGO = 0;
+
+ { DetallesAlbaranCliente fields }
+ fld_DetallesAlbaranClienteCODIGOALBARAN = 'CODIGOALBARAN';
+ fld_DetallesAlbaranClienteNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_DetallesAlbaranClientePOSICION = 'POSICION';
+ fld_DetallesAlbaranClienteTIPO = 'TIPO';
+ fld_DetallesAlbaranClienteDESCRIPCION = 'DESCRIPCION';
+ fld_DetallesAlbaranClienteCANTIDAD = 'CANTIDAD';
+ fld_DetallesAlbaranClienteIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_DetallesAlbaranClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_DetallesAlbaranClienteVISIBLE = 'VISIBLE';
+ fld_DetallesAlbaranClientePUNTOS = 'PUNTOS';
+ fld_DetallesAlbaranClienteIMPORTEPUNTOS = 'IMPORTEPUNTOS';
+
+ { DetallesAlbaranCliente field indexes }
+ idx_DetallesAlbaranClienteCODIGOALBARAN = 0;
+ idx_DetallesAlbaranClienteNUMCONCEPTO = 1;
+ idx_DetallesAlbaranClientePOSICION = 2;
+ idx_DetallesAlbaranClienteTIPO = 3;
+ idx_DetallesAlbaranClienteDESCRIPCION = 4;
+ idx_DetallesAlbaranClienteCANTIDAD = 5;
+ idx_DetallesAlbaranClienteIMPORTEUNIDAD = 6;
+ idx_DetallesAlbaranClienteIMPORTETOTAL = 7;
+ idx_DetallesAlbaranClienteVISIBLE = 8;
+ idx_DetallesAlbaranClientePUNTOS = 9;
+ idx_DetallesAlbaranClienteIMPORTEPUNTOS = 10;
+
+ { AlbaranCliente_RefreshDataset fields }
+ fld_AlbaranCliente_RefreshDatasetCODIGO = 'CODIGO';
+ fld_AlbaranCliente_RefreshDatasetNOMBRE = 'NOMBRE';
+ fld_AlbaranCliente_RefreshDatasetSITUACION = 'SITUACION';
+ fld_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO = 'REFERENCIAPRESUPUESTO';
+
+ { AlbaranCliente_RefreshDataset field indexes }
+ idx_AlbaranCliente_RefreshDatasetCODIGO = 0;
+ idx_AlbaranCliente_RefreshDatasetNOMBRE = 1;
+ idx_AlbaranCliente_RefreshDatasetSITUACION = 2;
+ idx_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO = 3;
+
+ { InformeCabeceraAlbaranPago fields }
+ fld_InformeCabeceraAlbaranPagoCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraAlbaranPagoCODIGO = 'CODIGO';
+ fld_InformeCabeceraAlbaranPagoFECHAALTA = 'FECHAALTA';
+ fld_InformeCabeceraAlbaranPagoUSUARIO = 'USUARIO';
+ fld_InformeCabeceraAlbaranPagoREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraAlbaranPagoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraAlbaranPagoFECHAALBARAN = 'FECHAALBARAN';
+ fld_InformeCabeceraAlbaranPagoSITUACION = 'SITUACION';
+ fld_InformeCabeceraAlbaranPagoFECHAPAGO = 'FECHAPAGO';
+ fld_InformeCabeceraAlbaranPagoBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_InformeCabeceraAlbaranPagoDESCUENTO = 'DESCUENTO';
+ fld_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_InformeCabeceraAlbaranPagoIVA = 'IVA';
+ fld_InformeCabeceraAlbaranPagoIMPORTEIVA = 'IMPORTEIVA';
+ fld_InformeCabeceraAlbaranPagoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeCabeceraAlbaranPagoOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraAlbaranPagoFORMAPAGO = 'FORMAPAGO';
+ fld_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_InformeCabeceraAlbaranPagoREFERENCIAPRE = 'REFERENCIAPRE';
+ fld_InformeCabeceraAlbaranPagoNIFCIF = 'NIFCIF';
+ fld_InformeCabeceraAlbaranPagoNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraAlbaranPagoCALLE = 'CALLE';
+ fld_InformeCabeceraAlbaranPagoCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraAlbaranPagoPOBLACION = 'POBLACION';
+ fld_InformeCabeceraAlbaranPagoTELEFONO1 = 'TELEFONO1';
+ fld_InformeCabeceraAlbaranPagoTELEFONO2 = 'TELEFONO2';
+ fld_InformeCabeceraAlbaranPagoMOVIL = 'MOVIL';
+
+ { InformeCabeceraAlbaranPago field indexes }
+ idx_InformeCabeceraAlbaranPagoCODIGOEMPRESA = 0;
+ idx_InformeCabeceraAlbaranPagoCODIGO = 1;
+ idx_InformeCabeceraAlbaranPagoFECHAALTA = 2;
+ idx_InformeCabeceraAlbaranPagoUSUARIO = 3;
+ idx_InformeCabeceraAlbaranPagoREFERENCIA = 4;
+ idx_InformeCabeceraAlbaranPagoCODIGOCONTACTO = 5;
+ idx_InformeCabeceraAlbaranPagoFECHAALBARAN = 6;
+ idx_InformeCabeceraAlbaranPagoSITUACION = 7;
+ idx_InformeCabeceraAlbaranPagoFECHAPAGO = 8;
+ idx_InformeCabeceraAlbaranPagoBASEIMPONIBLE = 9;
+ idx_InformeCabeceraAlbaranPagoDESCUENTO = 10;
+ idx_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO = 11;
+ idx_InformeCabeceraAlbaranPagoIVA = 12;
+ idx_InformeCabeceraAlbaranPagoIMPORTEIVA = 13;
+ idx_InformeCabeceraAlbaranPagoIMPORTETOTAL = 14;
+ idx_InformeCabeceraAlbaranPagoOBSERVACIONES = 15;
+ idx_InformeCabeceraAlbaranPagoFORMAPAGO = 16;
+ idx_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO = 17;
+ idx_InformeCabeceraAlbaranPagoREFERENCIAPRE = 18;
+ idx_InformeCabeceraAlbaranPagoNIFCIF = 19;
+ idx_InformeCabeceraAlbaranPagoNOMBRE = 20;
+ idx_InformeCabeceraAlbaranPagoCALLE = 21;
+ idx_InformeCabeceraAlbaranPagoCODIGOPOSTAL = 22;
+ idx_InformeCabeceraAlbaranPagoPOBLACION = 23;
+ idx_InformeCabeceraAlbaranPagoTELEFONO1 = 24;
+ idx_InformeCabeceraAlbaranPagoTELEFONO2 = 25;
+ idx_InformeCabeceraAlbaranPagoMOVIL = 26;
+
+ { InformeDetallesAlbaranPago fields }
+ fld_InformeDetallesAlbaranPagoCODIGOALBARAN = 'CODIGOALBARAN';
+ fld_InformeDetallesAlbaranPagoNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_InformeDetallesAlbaranPagoDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesAlbaranPagoCANTIDAD = 'CANTIDAD';
+ fld_InformeDetallesAlbaranPagoIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_InformeDetallesAlbaranPagoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeDetallesAlbaranPagoTIPO = 'TIPO';
+ fld_InformeDetallesAlbaranPagoPOSICION = 'POSICION';
+
+ { InformeDetallesAlbaranPago field indexes }
+ idx_InformeDetallesAlbaranPagoCODIGOALBARAN = 0;
+ idx_InformeDetallesAlbaranPagoNUMCONCEPTO = 1;
+ idx_InformeDetallesAlbaranPagoDESCRIPCION = 2;
+ idx_InformeDetallesAlbaranPagoCANTIDAD = 3;
+ idx_InformeDetallesAlbaranPagoIMPORTEUNIDAD = 4;
+ idx_InformeDetallesAlbaranPagoIMPORTETOTAL = 5;
+ idx_InformeDetallesAlbaranPagoTIPO = 6;
+ idx_InformeDetallesAlbaranPagoPOSICION = 7;
+
+ { DarSumaImportes fields }
+ fld_DarSumaImportesBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_DarSumaImportesIMPORTEIVA = 'IMPORTEIVA';
+ fld_DarSumaImportesIMPORTETOTAL = 'IMPORTETOTAL';
+
+ { DarSumaImportes field indexes }
+ idx_DarSumaImportesBASEIMPONIBLE = 0;
+ idx_DarSumaImportesIMPORTEIVA = 1;
+ idx_DarSumaImportesIMPORTETOTAL = 2;
+
+type
+ { IDarReferenciaAlbaran }
+ IDarReferenciaAlbaran = interface(IDAStronglyTypedDataTable)
+ ['{C6FEC801-58D9-4332-B152-41E118F9B63A}']
+ { Property getters and setters }
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ end;
+
+ { TDarReferenciaAlbaranDataTableRules }
+ TDarReferenciaAlbaranDataTableRules = class(TDADataTableRules, IDarReferenciaAlbaran)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranCliente }
+ IAlbaranCliente = interface(IDAStronglyTypedDataTable)
+ ['{642833FA-4649-486C-89C8-B9728500F01D}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetFECHAALBARANValue: DateTime;
+ procedure SetFECHAALBARANValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetREFERENCIAPRESUPUESTOValue: String;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property FECHAALBARAN: DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property REFERENCIAPRESUPUESTO: String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+ end;
+
+ { TAlbaranClienteDataTableRules }
+ TAlbaranClienteDataTableRules = class(TDADataTableRules, IAlbaranCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetFECHAALBARANValue: DateTime; virtual;
+ procedure SetFECHAALBARANValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetREFERENCIAPRESUPUESTOValue: String; virtual;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property FECHAALBARAN: DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property REFERENCIAPRESUPUESTO: String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranDePresupuesto }
+ IAlbaranDePresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{78FBFEFF-5738-4B40-819A-3F70EED86124}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ end;
+
+ { TAlbaranDePresupuestoDataTableRules }
+ TAlbaranDePresupuestoDataTableRules = class(TDADataTableRules, IAlbaranDePresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesAlbaranCliente }
+ IDetallesAlbaranCliente = interface(IDAStronglyTypedDataTable)
+ ['{D9E720C6-134F-4020-975B-7EF111D57933}']
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetVISIBLEValue: String;
+ procedure SetVISIBLEValue(const aValue: String);
+ function GetPUNTOSValue: Integer;
+ procedure SetPUNTOSValue(const aValue: Integer);
+ function GetIMPORTEPUNTOSValue: Currency;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency);
+
+
+ { Properties }
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesAlbaranClienteDataTableRules }
+ TDetallesAlbaranClienteDataTableRules = class(TDADataTableRules, IDetallesAlbaranCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranCliente_RefreshDataset }
+ IAlbaranCliente_RefreshDataset = interface(IDAStronglyTypedDataTable)
+ ['{3832562D-0F4D-4243-A963-3B59CB9D2B05}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetREFERENCIAPRESUPUESTOValue: String;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property REFERENCIAPRESUPUESTO: String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+ end;
+
+ { TAlbaranCliente_RefreshDatasetDataTableRules }
+ TAlbaranCliente_RefreshDatasetDataTableRules = class(TDADataTableRules, IAlbaranCliente_RefreshDataset)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPRESUPUESTOValue: String; virtual;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property REFERENCIAPRESUPUESTO: String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraAlbaranPago }
+ IInformeCabeceraAlbaranPago = interface(IDAStronglyTypedDataTable)
+ ['{7CEBCE95-FD7B-46D1-844E-70F47FC60D0E}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetFECHAALBARANValue: DateTime;
+ procedure SetFECHAALBARANValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetBASEIMPONIBLEValue: Float;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Float;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Float;
+ procedure SetIMPORTEIVAValue(const aValue: Float);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetREFERENCIAPREValue: String;
+ procedure SetREFERENCIAPREValue(const aValue: String);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property FECHAALBARAN: DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIAPRE: String read GetREFERENCIAPREValue write SetREFERENCIAPREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ end;
+
+ { TInformeCabeceraAlbaranPagoDataTableRules }
+ TInformeCabeceraAlbaranPagoDataTableRules = class(TDADataTableRules, IInformeCabeceraAlbaranPago)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetFECHAALBARANValue: DateTime; virtual;
+ procedure SetFECHAALBARANValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAPREValue: String; virtual;
+ procedure SetREFERENCIAPREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property FECHAALBARAN: DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIAPRE: String read GetREFERENCIAPREValue write SetREFERENCIAPREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesAlbaranPago }
+ IInformeDetallesAlbaranPago = interface(IDAStronglyTypedDataTable)
+ ['{2C1837CB-F884-46C6-BD8E-59A6AD8670A8}']
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Float;
+ procedure SetCANTIDADValue(const aValue: Float);
+ function GetIMPORTEUNIDADValue: Float;
+ procedure SetIMPORTEUNIDADValue(const aValue: Float);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Float read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ end;
+
+ { TInformeDetallesAlbaranPagoDataTableRules }
+ TInformeDetallesAlbaranPagoDataTableRules = class(TDADataTableRules, IInformeDetallesAlbaranPago)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Float; virtual;
+ procedure SetCANTIDADValue(const aValue: Float); virtual;
+ function GetIMPORTEUNIDADValue: Float; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Float read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ {
+ Suma de todos los importes entre un intervalo de fechas
+ }
+ { IDarSumaImportes }
+ IDarSumaImportes = interface(IDAStronglyTypedDataTable)
+ ['{C49AE35E-D0D0-4D17-80C9-9E996E212A8D}']
+ { Property getters and setters }
+ function GetBASEIMPONIBLEValue: Float;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Float;
+ procedure SetIMPORTEIVAValue(const aValue: Float);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+
+
+ { Properties }
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ end;
+
+ { TDarSumaImportesDataTableRules }
+ TDarSumaImportesDataTableRules = class(TDADataTableRules, IDarSumaImportes)
+ private
+ protected
+ { Property getters and setters }
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+
+ { Properties }
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TDarReferenciaAlbaranDataTableRules }
+constructor TDarReferenciaAlbaranDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaAlbaranDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaAlbaranDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_DarReferenciaAlbaranREFERENCIA].AsString;
+end;
+
+procedure TDarReferenciaAlbaranDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DarReferenciaAlbaranREFERENCIA].AsString := aValue;
+end;
+
+
+{ TAlbaranClienteDataTableRules }
+constructor TAlbaranClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TAlbaranClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranClienteDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranClienteCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteCODIGO].AsInteger;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranClienteCODIGO].AsInteger := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteFECHAALTA].AsDateTime;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_AlbaranClienteFECHAALTA].AsDateTime := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteUSUARIO].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranClienteUSUARIO].AsString := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteREFERENCIA].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranClienteREFERENCIA].AsString := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranClienteCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteNOMBRE].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranClienteNOMBRE].AsString := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetFECHAALBARANValue: DateTime;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteFECHAALBARAN].AsDateTime;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetFECHAALBARANValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_AlbaranClienteFECHAALBARAN].AsDateTime := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteSITUACION].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranClienteSITUACION].AsString := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteFECHAPAGO].AsDateTime;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_AlbaranClienteFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranClienteCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AlbaranClienteBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteDESCUENTO].AsFloat;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_AlbaranClienteDESCUENTO].AsFloat := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AlbaranClienteIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteIVA].AsFloat;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_AlbaranClienteIVA].AsFloat := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteIMPORTEIVA].AsCurrency;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AlbaranClienteIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AlbaranClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TAlbaranClienteDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_AlbaranClienteOBSERVACIONES].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_AlbaranClienteOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TAlbaranClienteDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_AlbaranClienteFORMAPAGO].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_AlbaranClienteFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TAlbaranClienteDataTableRules.GetREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranClienteREFERENCIAPRESUPUESTO].AsString;
+end;
+
+procedure TAlbaranClienteDataTableRules.SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranClienteREFERENCIAPRESUPUESTO].AsString := aValue;
+end;
+
+
+{ TAlbaranDePresupuestoDataTableRules }
+constructor TAlbaranDePresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TAlbaranDePresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranDePresupuestoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranDePresupuestoCODIGO].AsInteger;
+end;
+
+procedure TAlbaranDePresupuestoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranDePresupuestoCODIGO].AsInteger := aValue;
+end;
+
+
+{ TDetallesAlbaranClienteDataTableRules }
+constructor TDetallesAlbaranClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDetallesAlbaranClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteCODIGOALBARAN].AsInteger;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteCODIGOALBARAN].AsInteger := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteNUMCONCEPTO].AsInteger;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClientePOSICION].AsInteger;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClientePOSICION].AsInteger := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteTIPO].AsString;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteTIPO].AsString := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteDESCRIPCION].AsString;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteDESCRIPCION].AsString := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteCANTIDAD].AsInteger;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteCANTIDAD].AsInteger := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetVISIBLEValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteVISIBLE].AsString;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetVISIBLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteVISIBLE].AsString := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetPUNTOSValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClientePUNTOS].AsInteger;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClientePUNTOS].AsInteger := aValue;
+end;
+
+function TDetallesAlbaranClienteDataTableRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEPUNTOS].AsCurrency;
+end;
+
+procedure TDetallesAlbaranClienteDataTableRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEPUNTOS].AsCurrency := aValue;
+end;
+
+
+{ TAlbaranCliente_RefreshDatasetDataTableRules }
+constructor TAlbaranCliente_RefreshDatasetDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TAlbaranCliente_RefreshDatasetDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranCliente_RefreshDatasetDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AlbaranCliente_RefreshDatasetCODIGO].AsInteger;
+end;
+
+procedure TAlbaranCliente_RefreshDatasetDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AlbaranCliente_RefreshDatasetCODIGO].AsInteger := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranCliente_RefreshDatasetNOMBRE].AsString;
+end;
+
+procedure TAlbaranCliente_RefreshDatasetDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranCliente_RefreshDatasetNOMBRE].AsString := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranCliente_RefreshDatasetSITUACION].AsString;
+end;
+
+procedure TAlbaranCliente_RefreshDatasetDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranCliente_RefreshDatasetSITUACION].AsString := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetDataTableRules.GetREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := DataTable.Fields[idx_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO].AsString;
+end;
+
+procedure TAlbaranCliente_RefreshDatasetDataTableRules.SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO].AsString := aValue;
+end;
+
+
+{ TInformeCabeceraAlbaranPagoDataTableRules }
+constructor TInformeCabeceraAlbaranPagoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraAlbaranPagoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAALTA].AsDateTime;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAALTA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoUSUARIO].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoUSUARIO].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetFECHAALBARANValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAALBARAN].AsDateTime;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetFECHAALBARANValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAALBARAN].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoSITUACION].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoSITUACION].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAPAGO].AsDateTime;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoBASEIMPONIBLE].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoBASEIMPONIBLE].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetIMPORTEIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTEIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTEIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTETOTAL].AsFloat;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoIMPORTETOTAL].AsFloat := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraAlbaranPagoOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraAlbaranPagoFORMAPAGO].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetREFERENCIAPREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoREFERENCIAPRE].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetREFERENCIAPREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoREFERENCIAPRE].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoNIFCIF].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoNIFCIF].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCALLE].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoTELEFONO1].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoTELEFONO1].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoTELEFONO2].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoTELEFONO2].AsString := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraAlbaranPagoMOVIL].AsString;
+end;
+
+procedure TInformeCabeceraAlbaranPagoDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraAlbaranPagoMOVIL].AsString := aValue;
+end;
+
+
+{ TInformeDetallesAlbaranPagoDataTableRules }
+constructor TInformeDetallesAlbaranPagoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesAlbaranPagoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoCODIGOALBARAN].AsInteger;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoCODIGOALBARAN].AsInteger := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoNUMCONCEPTO].AsInteger;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetCANTIDADValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoCANTIDAD].AsFloat;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetCANTIDADValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoCANTIDAD].AsFloat := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetIMPORTEUNIDADValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoIMPORTEUNIDAD].AsFloat;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetIMPORTEUNIDADValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoIMPORTEUNIDAD].AsFloat := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoIMPORTETOTAL].AsFloat;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoIMPORTETOTAL].AsFloat := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoTIPO].AsString;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoTIPO].AsString := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesAlbaranPagoPOSICION].AsInteger;
+end;
+
+procedure TInformeDetallesAlbaranPagoDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesAlbaranPagoPOSICION].AsInteger := aValue;
+end;
+
+
+{ TDarSumaImportesDataTableRules }
+constructor TDarSumaImportesDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDarSumaImportesDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarSumaImportesDataTableRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := DataTable.Fields[idx_DarSumaImportesBASEIMPONIBLE].AsFloat;
+end;
+
+procedure TDarSumaImportesDataTableRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_DarSumaImportesBASEIMPONIBLE].AsFloat := aValue;
+end;
+
+function TDarSumaImportesDataTableRules.GetIMPORTEIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_DarSumaImportesIMPORTEIVA].AsFloat;
+end;
+
+procedure TDarSumaImportesDataTableRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_DarSumaImportesIMPORTEIVA].AsFloat := aValue;
+end;
+
+function TDarSumaImportesDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_DarSumaImportesIMPORTETOTAL].AsFloat;
+end;
+
+procedure TDarSumaImportesDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_DarSumaImportesIMPORTETOTAL].AsFloat := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_DarReferenciaAlbaran, TDarReferenciaAlbaranDataTableRules);
+ RegisterDataTableRules(RID_AlbaranCliente, TAlbaranClienteDataTableRules);
+ RegisterDataTableRules(RID_AlbaranDePresupuesto, TAlbaranDePresupuestoDataTableRules);
+ RegisterDataTableRules(RID_DetallesAlbaranCliente, TDetallesAlbaranClienteDataTableRules);
+ RegisterDataTableRules(RID_AlbaranCliente_RefreshDataset, TAlbaranCliente_RefreshDatasetDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraAlbaranPago, TInformeCabeceraAlbaranPagoDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesAlbaranPago, TInformeDetallesAlbaranPagoDataTableRules);
+ RegisterDataTableRules(RID_DarSumaImportes, TDarSumaImportesDataTableRules);
+
+end.
diff --git a/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteServer_Intf.pas b/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteServer_Intf.pas
new file mode 100644
index 0000000..adf9ed5
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Reglas/schAlbaranesClienteServer_Intf.pas
@@ -0,0 +1,1967 @@
+unit schAlbaranesClienteServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schAlbaranesClienteClient_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_DarReferenciaAlbaranDelta = '{D9EAC03F-B4A2-41B9-A2B2-7CF11F780D28}';
+ RID_AlbaranClienteDelta = '{8E3B55C2-3828-41E4-8AEA-F0D487EDD873}';
+ RID_AlbaranDePresupuestoDelta = '{1D24D93A-7A20-4DC4-ACE3-F9E644618634}';
+ RID_DetallesAlbaranClienteDelta = '{91443B47-343B-46EC-85F0-19C431B1F56B}';
+ RID_AlbaranCliente_RefreshDatasetDelta = '{7857A2CE-B06F-491A-BB36-844139B9125E}';
+ RID_InformeCabeceraAlbaranPagoDelta = '{B87026ED-31B8-4320-8908-DE7DED600AC9}';
+ RID_InformeDetallesAlbaranPagoDelta = '{0698DC8F-4317-451B-8770-F18535997036}';
+ RID_DarSumaImportesDelta = '{DFDB0CB4-85D3-449B-B350-EC3758E21B72}';
+
+type
+ { IDarReferenciaAlbaranDelta }
+ IDarReferenciaAlbaranDelta = interface(IDarReferenciaAlbaran)
+ ['{D9EAC03F-B4A2-41B9-A2B2-7CF11F780D28}']
+ { Property getters and setters }
+ function GetOldREFERENCIAValue : String;
+
+ { Properties }
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ end;
+
+ { TDarReferenciaAlbaranBusinessProcessorRules }
+ TDarReferenciaAlbaranBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferenciaAlbaran, IDarReferenciaAlbaranDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranClienteDelta }
+ IAlbaranClienteDelta = interface(IAlbaranCliente)
+ ['{8E3B55C2-3828-41E4-8AEA-F0D487EDD873}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldFECHAALBARANValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldREFERENCIAPRESUPUESTOValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldFECHAALBARAN : DateTime read GetOldFECHAALBARANValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldREFERENCIAPRESUPUESTO : String read GetOldREFERENCIAPRESUPUESTOValue;
+ end;
+
+ { TAlbaranClienteBusinessProcessorRules }
+ TAlbaranClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranCliente, IAlbaranClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetFECHAALBARANValue: DateTime; virtual;
+ function GetOldFECHAALBARANValue: DateTime; virtual;
+ procedure SetFECHAALBARANValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetREFERENCIAPRESUPUESTOValue: String; virtual;
+ function GetOldREFERENCIAPRESUPUESTOValue: String; virtual;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property FECHAALBARAN : DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property OldFECHAALBARAN : DateTime read GetOldFECHAALBARANValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property REFERENCIAPRESUPUESTO : String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+ property OldREFERENCIAPRESUPUESTO : String read GetOldREFERENCIAPRESUPUESTOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranDePresupuestoDelta }
+ IAlbaranDePresupuestoDelta = interface(IAlbaranDePresupuesto)
+ ['{1D24D93A-7A20-4DC4-ACE3-F9E644618634}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ end;
+
+ { TAlbaranDePresupuestoBusinessProcessorRules }
+ TAlbaranDePresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranDePresupuesto, IAlbaranDePresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesAlbaranClienteDelta }
+ IDetallesAlbaranClienteDelta = interface(IDetallesAlbaranCliente)
+ ['{91443B47-343B-46EC-85F0-19C431B1F56B}']
+ { Property getters and setters }
+ function GetOldCODIGOALBARANValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldTIPOValue : String;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldVISIBLEValue : String;
+ function GetOldPUNTOSValue : Integer;
+ function GetOldIMPORTEPUNTOSValue : Currency;
+
+ { Properties }
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesAlbaranClienteBusinessProcessorRules }
+ TDetallesAlbaranClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IDetallesAlbaranCliente, IDetallesAlbaranClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetVISIBLEValue: String; virtual;
+ function GetOldVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ function GetOldPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ function GetOldIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property VISIBLE : String read GetVISIBLEValue write SetVISIBLEValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property PUNTOS : Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property IMPORTEPUNTOS : Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAlbaranCliente_RefreshDatasetDelta }
+ IAlbaranCliente_RefreshDatasetDelta = interface(IAlbaranCliente_RefreshDataset)
+ ['{7857A2CE-B06F-491A-BB36-844139B9125E}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldSITUACIONValue : String;
+ function GetOldREFERENCIAPRESUPUESTOValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldREFERENCIAPRESUPUESTO : String read GetOldREFERENCIAPRESUPUESTOValue;
+ end;
+
+ { TAlbaranCliente_RefreshDatasetBusinessProcessorRules }
+ TAlbaranCliente_RefreshDatasetBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranCliente_RefreshDataset, IAlbaranCliente_RefreshDatasetDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPRESUPUESTOValue: String; virtual;
+ function GetOldREFERENCIAPRESUPUESTOValue: String; virtual;
+ procedure SetREFERENCIAPRESUPUESTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property REFERENCIAPRESUPUESTO : String read GetREFERENCIAPRESUPUESTOValue write SetREFERENCIAPRESUPUESTOValue;
+ property OldREFERENCIAPRESUPUESTO : String read GetOldREFERENCIAPRESUPUESTOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraAlbaranPagoDelta }
+ IInformeCabeceraAlbaranPagoDelta = interface(IInformeCabeceraAlbaranPago)
+ ['{B87026ED-31B8-4320-8908-DE7DED600AC9}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldFECHAALBARANValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldBASEIMPONIBLEValue : Float;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Float;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Float;
+ function GetOldIMPORTETOTALValue : Float;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldREFERENCIAPREValue : String;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldFECHAALBARAN : DateTime read GetOldFECHAALBARANValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldREFERENCIAPRE : String read GetOldREFERENCIAPREValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ end;
+
+ { TInformeCabeceraAlbaranPagoBusinessProcessorRules }
+ TInformeCabeceraAlbaranPagoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraAlbaranPago, IInformeCabeceraAlbaranPagoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetFECHAALBARANValue: DateTime; virtual;
+ function GetOldFECHAALBARANValue: DateTime; virtual;
+ procedure SetFECHAALBARANValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ function GetOldBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ function GetOldIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAPREValue: String; virtual;
+ function GetOldREFERENCIAPREValue: String; virtual;
+ procedure SetREFERENCIAPREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property FECHAALBARAN : DateTime read GetFECHAALBARANValue write SetFECHAALBARANValue;
+ property OldFECHAALBARAN : DateTime read GetOldFECHAALBARANValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property BASEIMPONIBLE : Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property REFERENCIAPRE : String read GetREFERENCIAPREValue write SetREFERENCIAPREValue;
+ property OldREFERENCIAPRE : String read GetOldREFERENCIAPREValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesAlbaranPagoDelta }
+ IInformeDetallesAlbaranPagoDelta = interface(IInformeDetallesAlbaranPago)
+ ['{0698DC8F-4317-451B-8770-F18535997036}']
+ { Property getters and setters }
+ function GetOldCODIGOALBARANValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Float;
+ function GetOldIMPORTEUNIDADValue : Float;
+ function GetOldIMPORTETOTALValue : Float;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+
+ { Properties }
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Float read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Float read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ end;
+
+ { TInformeDetallesAlbaranPagoBusinessProcessorRules }
+ TInformeDetallesAlbaranPagoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesAlbaranPago, IInformeDetallesAlbaranPagoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Float; virtual;
+ function GetOldCANTIDADValue: Float; virtual;
+ procedure SetCANTIDADValue(const aValue: Float); virtual;
+ function GetIMPORTEUNIDADValue: Float; virtual;
+ function GetOldIMPORTEUNIDADValue: Float; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Float read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Float read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Float read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDarSumaImportesDelta }
+ IDarSumaImportesDelta = interface(IDarSumaImportes)
+ ['{DFDB0CB4-85D3-449B-B350-EC3758E21B72}']
+ { Property getters and setters }
+ function GetOldBASEIMPONIBLEValue : Float;
+ function GetOldIMPORTEIVAValue : Float;
+ function GetOldIMPORTETOTALValue : Float;
+
+ { Properties }
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ end;
+
+ { TDarSumaImportesBusinessProcessorRules }
+ TDarSumaImportesBusinessProcessorRules = class(TDABusinessProcessorRules, IDarSumaImportes, IDarSumaImportesDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ function GetOldBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ function GetOldIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+
+ { Properties }
+ property BASEIMPONIBLE : Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property IMPORTEIVA : Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TDarReferenciaAlbaranBusinessProcessorRules }
+constructor TDarReferenciaAlbaranBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaAlbaranBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaAlbaranBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaAlbaranREFERENCIA];
+end;
+
+function TDarReferenciaAlbaranBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaAlbaranREFERENCIA];
+end;
+
+procedure TDarReferenciaAlbaranBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaAlbaranREFERENCIA] := aValue;
+end;
+
+
+{ TAlbaranClienteBusinessProcessorRules }
+constructor TAlbaranClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TAlbaranClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOEMPRESA];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteCODIGOEMPRESA];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOEMPRESA] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteCODIGO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAALTA];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteFECHAALTA];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAALTA] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteUSUARIO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteUSUARIO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteUSUARIO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteREFERENCIA];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteREFERENCIA];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteREFERENCIA] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOCONTACTO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteCODIGOCONTACTO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOCONTACTO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteNOMBRE];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteNOMBRE];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteNOMBRE] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetFECHAALBARANValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAALBARAN];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldFECHAALBARANValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteFECHAALBARAN];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetFECHAALBARANValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAALBARAN] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteSITUACION];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteSITUACION];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteSITUACION] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAPAGO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteFECHAPAGO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFECHAPAGO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOPRESUPUESTO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteCODIGOPRESUPUESTO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteBASEIMPONIBLE];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteBASEIMPONIBLE];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteBASEIMPONIBLE] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteDESCUENTO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteDESCUENTO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteDESCUENTO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTEDESCUENTO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteIMPORTEDESCUENTO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTEDESCUENTO] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIVA];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteIVA];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIVA] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTEIVA];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteIMPORTEIVA];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTEIVA] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTETOTAL];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteIMPORTETOTAL];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteIMPORTETOTAL] := aValue;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteOBSERVACIONES];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteOBSERVACIONES];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteOBSERVACIONES] := aValue.Text;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFORMAPAGO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteFORMAPAGO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteFORMAPAGO] := aValue.Text;
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteREFERENCIAPRESUPUESTO];
+end;
+
+function TAlbaranClienteBusinessProcessorRules.GetOldREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranClienteREFERENCIAPRESUPUESTO];
+end;
+
+procedure TAlbaranClienteBusinessProcessorRules.SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranClienteREFERENCIAPRESUPUESTO] := aValue;
+end;
+
+
+{ TAlbaranDePresupuestoBusinessProcessorRules }
+constructor TAlbaranDePresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TAlbaranDePresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranDePresupuestoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranDePresupuestoCODIGO];
+end;
+
+function TAlbaranDePresupuestoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranDePresupuestoCODIGO];
+end;
+
+procedure TAlbaranDePresupuestoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranDePresupuestoCODIGO] := aValue;
+end;
+
+
+{ TDetallesAlbaranClienteBusinessProcessorRules }
+constructor TDetallesAlbaranClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDetallesAlbaranClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteCODIGOALBARAN];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteCODIGOALBARAN];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteCODIGOALBARAN] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteNUMCONCEPTO];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteNUMCONCEPTO];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteNUMCONCEPTO] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClientePOSICION];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClientePOSICION];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClientePOSICION] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteTIPO];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteTIPO];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteTIPO] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteDESCRIPCION];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteDESCRIPCION];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteDESCRIPCION] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteCANTIDAD];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteCANTIDAD];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteCANTIDAD] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTEUNIDAD];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteIMPORTEUNIDAD];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTEUNIDAD] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTETOTAL];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteIMPORTETOTAL];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTETOTAL] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteVISIBLE];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteVISIBLE];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetVISIBLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteVISIBLE] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClientePUNTOS];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClientePUNTOS];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClientePUNTOS] := aValue;
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTEPUNTOS];
+end;
+
+function TDetallesAlbaranClienteBusinessProcessorRules.GetOldIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesAlbaranClienteIMPORTEPUNTOS];
+end;
+
+procedure TDetallesAlbaranClienteBusinessProcessorRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesAlbaranClienteIMPORTEPUNTOS] := aValue;
+end;
+
+
+{ TAlbaranCliente_RefreshDatasetBusinessProcessorRules }
+constructor TAlbaranCliente_RefreshDatasetBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TAlbaranCliente_RefreshDatasetBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetCODIGO];
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranCliente_RefreshDatasetCODIGO];
+end;
+
+procedure TAlbaranCliente_RefreshDatasetBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetCODIGO] := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetNOMBRE];
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranCliente_RefreshDatasetNOMBRE];
+end;
+
+procedure TAlbaranCliente_RefreshDatasetBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetNOMBRE] := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetSITUACION];
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranCliente_RefreshDatasetSITUACION];
+end;
+
+procedure TAlbaranCliente_RefreshDatasetBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetSITUACION] := aValue;
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO];
+end;
+
+function TAlbaranCliente_RefreshDatasetBusinessProcessorRules.GetOldREFERENCIAPRESUPUESTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO];
+end;
+
+procedure TAlbaranCliente_RefreshDatasetBusinessProcessorRules.SetREFERENCIAPRESUPUESTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranCliente_RefreshDatasetREFERENCIAPRESUPUESTO] := aValue;
+end;
+
+
+{ TInformeCabeceraAlbaranPagoBusinessProcessorRules }
+constructor TInformeCabeceraAlbaranPagoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraAlbaranPagoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCODIGO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAALTA];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoFECHAALTA];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAALTA] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoUSUARIO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoUSUARIO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoUSUARIO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIA];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIA];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetFECHAALBARANValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAALBARAN];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldFECHAALBARANValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoFECHAALBARAN];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetFECHAALBARANValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAALBARAN] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoSITUACION];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoSITUACION];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoSITUACION] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAPAGO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoFECHAPAGO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFECHAPAGO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoBASEIMPONIBLE];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoBASEIMPONIBLE];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoBASEIMPONIBLE] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoDESCUENTO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoDESCUENTO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIVA];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoIVA];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIVA] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEIVA];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEIVA];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTEIVA] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTETOTAL];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoIMPORTETOTAL];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoOBSERVACIONES];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFORMAPAGO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoFORMAPAGO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoFORMAPAGO] := aValue.Text;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetREFERENCIAPREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIAPRE];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldREFERENCIAPREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIAPRE];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetREFERENCIAPREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoREFERENCIAPRE] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoNIFCIF];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoNIFCIF];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoNIFCIF] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoNOMBRE];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoNOMBRE];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCALLE];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCALLE];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCALLE] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoPOBLACION];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoPOBLACION];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO1];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO1];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO1] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO2];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO2];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoTELEFONO2] := aValue;
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoMOVIL];
+end;
+
+function TInformeCabeceraAlbaranPagoBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraAlbaranPagoMOVIL];
+end;
+
+procedure TInformeCabeceraAlbaranPagoBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraAlbaranPagoMOVIL] := aValue;
+end;
+
+
+{ TInformeDetallesAlbaranPagoBusinessProcessorRules }
+constructor TInformeDetallesAlbaranPagoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesAlbaranPagoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoCODIGOALBARAN];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoCODIGOALBARAN];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoCODIGOALBARAN] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoNUMCONCEPTO];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoNUMCONCEPTO];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoNUMCONCEPTO] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoDESCRIPCION];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoDESCRIPCION];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetCANTIDADValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoCANTIDAD];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldCANTIDADValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoCANTIDAD];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetCANTIDADValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoCANTIDAD] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetIMPORTEUNIDADValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoIMPORTEUNIDAD];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoIMPORTEUNIDAD];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoIMPORTEUNIDAD] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoIMPORTETOTAL];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoIMPORTETOTAL];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoTIPO];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoTIPO];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoTIPO] := aValue;
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoPOSICION];
+end;
+
+function TInformeDetallesAlbaranPagoBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesAlbaranPagoPOSICION];
+end;
+
+procedure TInformeDetallesAlbaranPagoBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesAlbaranPagoPOSICION] := aValue;
+end;
+
+
+{ TDarSumaImportesBusinessProcessorRules }
+constructor TDarSumaImportesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDarSumaImportesBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesBASEIMPONIBLE];
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarSumaImportesBASEIMPONIBLE];
+end;
+
+procedure TDarSumaImportesBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesBASEIMPONIBLE] := aValue;
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesIMPORTEIVA];
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetOldIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarSumaImportesIMPORTEIVA];
+end;
+
+procedure TDarSumaImportesBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesIMPORTEIVA] := aValue;
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesIMPORTETOTAL];
+end;
+
+function TDarSumaImportesBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarSumaImportesIMPORTETOTAL];
+end;
+
+procedure TDarSumaImportesBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarSumaImportesIMPORTETOTAL] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_DarReferenciaAlbaranDelta, TDarReferenciaAlbaranBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_AlbaranClienteDelta, TAlbaranClienteBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_AlbaranDePresupuestoDelta, TAlbaranDePresupuestoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_DetallesAlbaranClienteDelta, TDetallesAlbaranClienteBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_AlbaranCliente_RefreshDatasetDelta, TAlbaranCliente_RefreshDatasetBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraAlbaranPagoDelta, TInformeCabeceraAlbaranPagoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesAlbaranPagoDelta, TInformeDetallesAlbaranPagoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_DarSumaImportesDelta, TDarSumaImportesBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Albaranes de cliente/Reglas/uBizAlbaranesCliente.pas b/Modulos/Albaranes de cliente/Reglas/uBizAlbaranesCliente.pas
new file mode 100644
index 0000000..6bf3bb1
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Reglas/uBizAlbaranesCliente.pas
@@ -0,0 +1,561 @@
+unit uBizAlbaranesCliente;
+
+interface
+
+uses
+ Controls, uDAInterfaces, uDADataTable, Classes, uBizContacto, DB,
+ schAlbaranesClienteClient_Intf, uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uBizPresupuestosCliente, uDBSelectionList,
+ uExceptions, uBizInformesBase;
+
+const
+ BIZ_ALBARANCLIENTE = 'Client.AlbaranCliente';
+ BIZ_DETALLESALBARANCLIENTE = 'Client.DetallesAlbaranCliente';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_PAGADO = 'Pagado';
+
+type
+ IBizDetallesAlbaranCliente = interface(IDetallesAlbaranCliente)
+ ['{8AA767E6-8C11-4E72-81B7-609DA076AC77}']
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ end;
+
+ IBizAlbaranesCliente = interface(IAlbaranCliente)
+ ['{18C13046-1C42-477C-95F4-C80739D97A54}']
+ function GetDetalles: IBizDetallesAlbaranCliente;
+ procedure SetDetalles(Value: IBizDetallesAlbaranCliente);
+ property Detalles: IBizDetallesAlbaranCliente read GetDetalles write
+ SetDetalles;
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+
+ procedure Show;
+ function ShowForSelect : TModalResult;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+ end;
+
+ TBizDetallesAlbaranCliente = class(TDetallesAlbaranClienteDataTableRules,
+ IBizDetallesAlbaranCliente,
+ IBizImportesDetalle,
+ IBizPuntosDetalle,
+ IBizVisibleDetalle,
+ IParche) // PARCHE ***********************
+ private
+ FIsAppend : Boolean;
+ FPosicionNueva : Integer;
+ FPuedoLanzarEvento : Boolean; // PARCHE ***********************
+
+ procedure SetCANTIDADValue(const aValue: Integer); override;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); override;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); override;
+ procedure SetPUNTOSValue(const aValue: Integer); override;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); override;
+
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterInsert(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+
+ // PARCHE ***********************
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ public
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ constructor Create(aDataTable: TDADataTable); override;
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ end;
+
+
+ TBizAlbaranesCliente = class(TAlbaranClienteDataTableRules, IBizAlbaranesCliente,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException, IBizInformesAware)
+ private
+ FCliente : IBizCliente;
+ FDetalles: IBizDetallesAlbaranCliente;
+ FDetallesLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+ protected
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
+ function GetDetalles: IBizDetallesAlbaranCliente;
+ procedure SetDetalles(Value: IBizDetallesAlbaranCliente);
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+
+ function GetSelectedRows : TSelectedRowList;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+ public
+ procedure RecalcularImporte;
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+ property Detalles: IBizDetallesAlbaranCliente read GetDetalles write
+ SetDetalles;
+ procedure Show;
+ function ShowForSelect : TModalResult;
+ procedure Preview;
+ procedure Print;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ procedure ValidarAlbaranCliente (const AAlbaranCliente : IBizAlbaranesCliente);
+
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils, Variants, Math,
+ uDataModuleContactos, schPresupuestosClient_Intf, Forms,
+ uDataModuleBase, uDataModuleUsuarios, uDataModuleAlbaranesCliente,
+ uDataTableUtils;
+
+var
+ FMasterDeleting : Boolean;
+ FCancelInsert : Boolean;
+
+procedure ValidarAlbaranCliente (const AAlbaranCliente : IBizAlbaranesCliente);
+begin
+ if (FloatToStr(AAlbaranCliente.FECHAALBARAN) = '0') then
+ raise Exception.Create('Debe indicar la fecha de este albarán');
+
+ if not Assigned(AAlbaranCliente.Cliente) or
+ (AAlbaranCliente.Cliente.DataTable.IsEmpty) then
+ raise Exception.Create('Debe indicar el cliente de este albarán');
+
+ AAlbaranCliente.Edit;
+ if (FloatToStr(AAlbaranCliente.FECHAPAGO) = '0') then
+ AAlbaranCliente.SITUACION := SITUACION_PENDIENTE
+ else
+ AAlbaranCliente.SITUACION := SITUACION_PAGADO;
+ AAlbaranCliente.Post;
+
+
+ if (Length(AAlbaranCliente.REFERENCIA) = 0) then
+ begin
+ AAlbaranCliente.Edit;
+ AAlbaranCliente.REFERENCIA := dmAlbaranesCliente.DarNuevaReferencia;
+ AAlbaranCliente.Post;
+ ShowMessage('A este albarán se le ha asignado la referencia ' + AAlbaranCliente.REFERENCIA);
+ end;
+end;
+
+constructor TBizAlbaranesCliente.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FCliente := NIL;
+ FDetallesLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizAlbaranesCliente.Destroy;
+begin
+ FCliente := NIL;
+ FDetalles := NIL;
+ FDetallesLink.Free;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizAlbaranesCliente.GetCliente: IBizCliente;
+begin
+ if not Assigned(FCliente) then
+ FCliente := dmContactos.GetCliente(CODIGOCONTACTO)
+ else
+ if (CODIGOCONTACTO <> FCliente.Codigo) and
+ not (FCliente.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FCliente, CODIGOCONTACTO);
+
+ if not FCliente.DataTable.Active then
+ FCliente.DataTable.Active := True;
+
+ Result := FCliente;
+end;
+
+function TBizAlbaranesCliente.GetDetalles: IBizDetallesAlbaranCliente;
+begin
+ Result := FDetalles;
+end;
+
+procedure TBizAlbaranesCliente.CopyFrom(APresupuesto: IBizPresupuestos);
+var
+ ACursor: TCursor;
+begin
+ if not (State in dsEditModes) then
+ Edit;
+ if not (APresupuesto.DataTable.Active) then
+ APresupuesto.DataTable.Active := True;
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ CODIGOEMPRESA := APresupuesto.CODIGOEMPRESA;
+ CODIGOCONTACTO := APresupuesto.CODIGOCONTACTO;
+ BASEIMPONIBLE := APresupuesto.BASEIMPONIBLE;
+ DESCUENTO := APresupuesto.DESCUENTO;
+ IVA := APresupuesto.IVA;
+ OBSERVACIONES := APresupuesto.OBSERVACIONES;
+ FORMAPAGO := APresupuesto.FORMAPAGO;
+ CODIGOPRESUPUESTO := APresupuesto.CODIGO;
+ Cliente := APresupuesto.Cliente;
+ Detalles.CopyFrom(APresupuesto.Detalles);
+ RecalcularImporte;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TBizAlbaranesCliente.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAALBARAN := Date;
+ SITUACION := SITUACION_PENDIENTE;
+ CODIGO := dmAlbaranesCliente.GetNextAutoinc;
+end;
+
+procedure TBizAlbaranesCliente.Preview;
+begin
+ dmAlbaranesCliente.Preview(Self.CODIGO);
+end;
+
+procedure TBizAlbaranesCliente.SetCliente(Value: IBizCliente);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FCliente := Value;
+ if Assigned(FCliente) then
+ begin
+ CODIGOCONTACTO := FCliente.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizAlbaranesCliente.SetDetalles(Value: IBizDetallesAlbaranCliente);
+begin
+ FDetalles := Value;
+ FDetallesLink.DataTable := Self.DataTable;
+ FDetalles.DataTable.MasterSource := FDetallesLink;
+end;
+
+procedure TBizAlbaranesCliente.Show;
+begin
+ ShowEditor(IBizAlbaranesCliente, Self, etItem);
+end;
+
+procedure TBizDetallesAlbaranCliente.ActivarEventos;
+begin
+ FPuedoLanzarEvento := True;
+end;
+
+procedure TBizDetallesAlbaranCliente.AfterDelete(Sender: TDADataTable);
+var
+ ACabecera : IBizImportesCabecera;
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (not FMasterDeleting) and (not FCancelInsert) then
+ begin
+ ReasignarPosiciones(Self.DataTable);
+ if Assigned(DataTable.MasterSource) and
+ Supports(DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+ FCancelInsert := False;
+end;
+
+procedure TBizDetallesAlbaranCliente.AfterInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ FIsAppend := DataTable.EOF;
+ Post;
+ Edit; // Para volver a dejarlo en modo de edición
+end;
+
+procedure TBizDetallesAlbaranCliente.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if POSICION < 0 then
+ AsignarPosicion(Self.DataTable, FIsAppend);
+
+ if NUMCONCEPTO < 0 then
+ AsignarNumConcepto(Self.DataTable);
+
+ FIsAppend := False;
+end;
+
+procedure TBizDetallesAlbaranCliente.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (DataTable.State in dsEditModes) then
+ DataTable.Cancel;
+
+ if not FMasterDeleting then
+ FCancelInsert := not (DataTable.MasterSource.DataTable.FieldByName('CODIGO').AsInteger = CODIGOALBARAN);
+end;
+
+procedure TBizDetallesAlbaranCliente.BeforeInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if Assigned(DataTable.MasterSource) and
+ (DataTable.MasterSource.DataTable.State in dsEditModes) then
+ DataTable.MasterSource.DataTable.Post;
+
+ if GetRecordCount = 0 then
+ FPosicionNueva := -1
+ else
+ FPosicionNueva := POSICION * (-1);
+end;
+
+
+procedure TBizDetallesAlbaranCliente.CopyFrom(
+ ADetallesPresupuesto: IBizDetallesPresupuesto);
+begin
+ DeleteAllTable(Self.DataTable);
+
+ ADetallesPresupuesto.First;
+ while not ADetallesPresupuesto.EOF do
+ begin
+ Append;
+ DataTable.DisableControls;
+ DataTable.DisableEventHandlers;
+ try
+ TIPO := ADetallesPresupuesto.TIPO;
+ DESCRIPCION := ADetallesPresupuesto.DESCRIPCION;
+ CANTIDAD := ADetallesPresupuesto.CANTIDAD;
+ IMPORTEUNIDAD := ADetallesPresupuesto.IMPORTEUNIDAD;
+ IMPORTETOTAL := ADetallesPresupuesto.IMPORTETOTAL;
+ PUNTOS := ADetallesPresupuesto.PUNTOS;
+ IMPORTEPUNTOS := ADetallesPresupuesto.IMPORTEPUNTOS;
+ VISIBLE := ADetallesPresupuesto.VISIBLE;
+ finally
+ DataTable.EnableControls;
+ DataTable.EnableEventHandlers;
+ end;
+ Post;
+ ADetallesPresupuesto.Next;
+ end;
+end;
+
+constructor TBizDetallesAlbaranCliente.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FPosicionNueva := 1; // Los conceptos empiezan a contar en 1
+
+ // PARCHE *******************
+ FPuedoLanzarEvento := True;
+end;
+
+function TBizDetallesAlbaranCliente.DarSumaTotalImportes: Currency;
+begin
+ Result := DarTotalDetalles(Self.DataTable, True, True);
+end;
+
+procedure TBizDetallesAlbaranCliente.DesactivarEventos;
+begin
+ FPuedoLanzarEvento := False;
+end;
+
+procedure TBizDetallesAlbaranCliente.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ POSICION := FPosicionNueva;
+ NUMCONCEPTO := -1;
+ TIPO := TIPODETALLE_CONCEPTO;
+ VISIBLE := VISIBLE_TRUE;
+
+ Self.DataTable.DisableEventHandlers;
+ try
+ CANTIDAD := 1;
+ finally
+ Self.DataTable.EnableEventHandlers;
+ end;
+end;
+
+
+function TBizAlbaranesCliente.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizAlbaranesCliente.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este albarán porque tiene una factura asociada', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+
+procedure TBizAlbaranesCliente.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmAlbaranesCliente.PuedoEliminarAlbaran(CODIGO) then
+ raise Exception.Create('No se puede borrar este albarán porque tiene una factura asociada');
+ FMasterDeleting := True; // Para que los detalles de borren de golpe y no recalcule posiciones ni totales
+end;
+
+procedure TBizAlbaranesCliente.AfterDelete(Sender: TDADataTable);
+begin
+ inherited;
+ FMasterDeleting := False;
+end;
+
+procedure TBizAlbaranesCliente.Print;
+begin
+ dmAlbaranesCliente.Print(Self.CODIGO);
+end;
+
+procedure TBizAlbaranesCliente.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente de este albarán', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ if (Pos('Fecha albarán', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de este albarán', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizAlbaranesCliente.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarAlbaranCliente(Self);
+ //ctDelete :
+ end;
+end;
+
+function TBizDetallesAlbaranCliente.PuedoLanzarEvento: Boolean;
+begin
+ Result := FPuedoLanzarEvento;
+end;
+
+procedure TBizDetallesAlbaranCliente.RecalcularImporte;
+begin
+ RecalcularImporteDetalle(Self.DataTable, True, True);
+end;
+
+procedure TBizAlbaranesCliente.RecalcularImporte;
+begin
+ RecalcularImportesCabecera(Self.DataTable, Detalles.DataTable);
+end;
+
+procedure TBizDetallesAlbaranCliente.Refrescar;
+begin
+ DataTable.Refresh;
+end;
+
+function TBizAlbaranesCliente.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizAlbaranesCliente, Self, etSelectItems);
+end;
+
+procedure TBizDetallesAlbaranCliente.SetCANTIDADValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesAlbaranClienteCANTIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesAlbaranCliente.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEPUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesAlbaranCliente.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesAlbaranClienteIMPORTETOTAL].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesAlbaranCliente.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesAlbaranClienteIMPORTEUNIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesAlbaranCliente.SetPUNTOSValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesAlbaranClientePUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+initialization
+ FMasterDeleting := False;
+ RegisterDataTableRules(BIZ_DETALLESALBARANCLIENTE, TBizDetallesAlbaranCliente);
+ RegisterDataTableRules(BIZ_ALBARANCLIENTE, TBizAlbaranesCliente);
+
+finalization
+
+end.
diff --git a/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.ddp b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.ddp differ
diff --git a/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm
new file mode 100644
index 0000000..67a5701
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm
@@ -0,0 +1,1920 @@
+object srvAlbaranesCliente: TsrvAlbaranesCliente
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schAlbaranesCliente
+ ServiceAdapter = DABINAdapter
+ Left = 413
+ Top = 252
+ Height = 463
+ Width = 347
+ object schAlbaranesCliente: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL = 'SELECT * FROM DAR_REFERENCIA_ALBARAN'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'DarReferenciaAlbaran'
+ Fields = <
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT ALBARANPAGO.CODIGOEMPRESA, ALBARANPAGO.CODIGO, ALBARANPAG' +
+ 'O.FECHAALTA,'#10' ALBARANPAGO.USUARIO, ALBARANPAGO.REFERENCIA,' +
+ ' ALBARANPAGO.CODIGOCONTACTO,'#10' CONTACTOS.NOMBRE, ALBARANPAG' +
+ 'O.FECHAALBARAN, ALBARANPAGO.SITUACION,'#10' ALBARANPAGO.FECHAP' +
+ 'AGO, ALBARANPAGO.BASEIMPONIBLE, ALBARANPAGO.DESCUENTO,'#10' AL' +
+ 'BARANPAGO.IMPORTEDESCUENTO, ALBARANPAGO.IVA, ALBARANPAGO.IMPORTE' +
+ 'IVA,'#10' ALBARANPAGO.IMPORTETOTAL, ALBARANPAGO.OBSERVACIONES,' +
+ #10' ALBARANPAGO.FORMAPAGO, ALBARANPAGO.CODIGOPRESUPUESTO,'#10' ' +
+ ' MONTAJES.REFERENCIA as REFERENCIAPRESUPUESTO'#10'FROM ALBARANPA' +
+ 'GO'#10' INNER JOIN CONTACTOS ON (ALBARANPAGO.CODIGOCONTACTO = CONT' +
+ 'ACTOS.CODIGO)'#10' LEFT OUTER JOIN MONTAJES ON (ALBARANPAGO.CODIGO' +
+ 'PRESUPUESTO = MONTAJES.CODIGOPRESUPUESTO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'FECHAALBARAN'
+ TableField = 'FECHAALBARAN'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'REFERENCIAPRESUPUESTO'
+ TableField = 'REFERENCIAPRESUPUESTO'
+ end>
+ end>
+ Name = 'AlbaranCliente'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOALBARANCLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALBARAN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPRESUPUESTO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = '505'
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT '#10' CODIGO'#10' FROM'#10' ALBARANPAGO'#10' WHERE CODIGOPRESUPUE' +
+ 'STO = :CODIGOPRESUPUESTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end>
+ end>
+ Name = 'AlbaranDePresupuesto'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = '1'
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESALBARANPAGO'
+ SQL =
+ 'SELECT'#10' CODIGOALBARAN, NUMCONCEPTO, POSICION, TIPO, DESCRIPCI' +
+ 'ON, CANTIDAD,'#10' IMPORTEUNIDAD, IMPORTETOTAL, VISIBLE, PUNTOS, ' +
+ 'IMPORTEPUNTOS'#10' FROM'#10' DETALLESALBARANPAGO'#10' WHERE CODIGOALBAR' +
+ 'AN = :CODIGOALBARAN'#10' ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'VISIBLE'
+ TableField = 'VISIBLE'
+ end
+ item
+ DatasetField = 'PUNTOS'
+ TableField = 'PUNTOS'
+ end
+ item
+ DatasetField = 'IMPORTEPUNTOS'
+ TableField = 'IMPORTEPUNTOS'
+ end>
+ end>
+ Name = 'DetallesAlbaranCliente'
+ Fields = <
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOALBARANCLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESALBARANCLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT ALBARANPAGO.CODIGO, CONTACTOS.NOMBRE, ALBARANPAGO.SITUACI' +
+ 'ON,'#10' MONTAJES.REFERENCIA as REFERENCIAPRESUPUESTO'#10'FROM ALB' +
+ 'ARANPAGO'#10' INNER JOIN CONTACTOS ON (ALBARANPAGO.CODIGOCONTACTO ' +
+ '= CONTACTOS.CODIGO)'#10' LEFT OUTER JOIN MONTAJES ON (ALBARANPAGO.' +
+ 'CODIGOPRESUPUESTO = MONTAJES.CODIGOPRESUPUESTO)'#10'WHERE'#10' ALBAR' +
+ 'ANPAGO.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'REFERENCIAPRESUPUESTO'
+ TableField = 'REFERENCIAPRESUPUESTO'
+ end>
+ end>
+ Name = 'AlbaranCliente_RefreshDataset'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOALBARANCLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPRESUPUESTO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT ALBARANPAGO.CODIGOEMPRESA, ALBARANPAGO.CODIGO, ALBARANPAG' +
+ 'O.FECHAALTA,'#10' ALBARANPAGO.USUARIO, ALBARANPAGO.REFERENCIA,' +
+ ' ALBARANPAGO.CODIGOCONTACTO,'#10' ALBARANPAGO.FECHAALBARAN, AL' +
+ 'BARANPAGO.SITUACION, ALBARANPAGO.FECHAPAGO,'#10' ALBARANPAGO.B' +
+ 'ASEIMPONIBLE, ALBARANPAGO.DESCUENTO, ALBARANPAGO.IMPORTEDESCUENT' +
+ 'O,'#10' ALBARANPAGO.IVA, ALBARANPAGO.IMPORTEIVA, ALBARANPAGO.I' +
+ 'MPORTETOTAL,'#10' ALBARANPAGO.OBSERVACIONES, ALBARANPAGO.FORMA' +
+ 'PAGO,'#10' ALBARANPAGO.CODIGOPRESUPUESTO, MONTAJES.REFERENCIA ' +
+ 'as REFERENCIAPRE,'#10' '#10'CO.NIFCIF, CO.NOMBRE, CO.CALLE, CO.COD' +
+ 'IGOPOSTAL, CO.POBLACION, CO.TELEFONO1,'#10'CO.TELEFONO2, CO.MOVIL'#10#10'F' +
+ 'ROM ALBARANPAGO'#10'INNER JOIN CONTACTOS CO ON (ALBARANPAGO.CODIGOCO' +
+ 'NTACTO = CO.CODIGO)'#10'LEFT OUTER JOIN MONTAJES ON (ALBARANPAGO.COD' +
+ 'IGOPRESUPUESTO = MONTAJES.CODIGOPRESUPUESTO)'#10'WHERE ALBARANPAGO.C' +
+ 'ODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'FECHAALBARAN'
+ TableField = 'FECHAALBARAN'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'REFERENCIAPRE'
+ TableField = 'REFERENCIAPRE'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end>
+ end>
+ Name = 'InformeCabeceraAlbaranPago'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALBARAN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPRE'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOALBARAN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT CODIGOALBARAN, NUMCONCEPTO, DESCRIPCION, CANTIDAD, IMPORT' +
+ 'EUNIDAD,'#10'IMPORTETOTAL, TIPO, POSICION'#10'FROM DETALLESALBARANPAGO'#10'W' +
+ 'HERE CODIGOALBARAN = :CODIGOALBARAN AND'#10'VISIBLE = '#39'S'#39#10'ORDER BY P' +
+ 'OSICION;'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end>
+ end>
+ Name = 'InformeDetallesAlbaranPago'
+ Fields = <
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'FECHAINI'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'SELECT '#10' sum(BASEIMPONIBLE) AS BASEIMPONIBLE,'#10' sum(IMPORTE' +
+ 'IVA) AS IMPORTEIVA,'#10' sum(IMPORTETOTAL) AS IMPORTETOTAL'#10' FROM' +
+ #10' ALBARANPAGO'#10'WHERE FECHAALBARAN BETWEEN :FECHAINI AND :FECHA' +
+ 'FIN'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end>
+ end>
+ Name = 'DarSumaImportes'
+ Description = 'Suma de todos los importes entre un intervalo de fechas'
+ Fields = <
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ 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 = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALBARAN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'INSERT'#10' INTO ALBARANPAGO'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA,' +
+ ' USUARIO, CODIGOCONTACTO,'#10' FECHAALBARAN, SITUACION, FECHAPAG' +
+ 'O, BASEIMPONIBLE, '#10' DESCUENTO, IMPORTEDESCUENTO, IVA, IMPORT' +
+ 'EIVA, IMPORTETOTAL, '#10' OBSERVACIONES, FORMAPAGO, REFERENCIA, ' +
+ 'CODIGOPRESUPUESTO)'#10' VALUES'#10' (:CODIGOEMPRESA, :CODIGO, :FECHA' +
+ 'ALTA, :USUARIO, :CODIGOCONTACTO,'#10' :FECHAALBARAN, :SITUACION,' +
+ ' :FECHAPAGO, :BASEIMPONIBLE, '#10' :DESCUENTO, :IMPORTEDESCUENTO' +
+ ', :IVA, :IMPORTEIVA, :IMPORTETOTAL, '#10' :OBSERVACIONES, :FORMA' +
+ 'PAGO, :REFERENCIA, :CODIGOPRESUPUESTO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_AlbaranCliente'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALBARAN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'UPDATE ALBARANPAGO'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10' ' +
+ ' FECHAALTA = :FECHAALTA, '#10' USUARIO = :USUARIO, '#10' CODIGOC' +
+ 'ONTACTO = :CODIGOCONTACTO, '#10' FECHAALBARAN = :FECHAALBARAN, '#10' ' +
+ ' SITUACION = :SITUACION, '#10' FECHAPAGO = :FECHAPAGO, '#10' BAS' +
+ 'EIMPONIBLE = :BASEIMPONIBLE, '#10' DESCUENTO = :DESCUENTO, '#10' I' +
+ 'MPORTEDESCUENTO = :IMPORTEDESCUENTO, '#10' IVA = :IVA, '#10' IMPOR' +
+ 'TEIVA = :IMPORTEIVA, '#10' IMPORTETOTAL = :IMPORTETOTAL, '#10' OBS' +
+ 'ERVACIONES = :OBSERVACIONES, '#10' FORMAPAGO = :FORMAPAGO, '#10' R' +
+ 'EFERENCIA = :REFERENCIA,'#10' CODIGOPRESUPUESTO = :CODIGOPRESUPUE' +
+ 'STO'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_AlbaranCliente'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALBARANPAGO'
+ SQL =
+ 'DELETE '#10' FROM'#10' ALBARANPAGO'#10' WHERE'#10' (CODIGO = :OLD_CODIGO' +
+ ')'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_AlbaranCliente'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_DetallesAlbaranCliente_AlbaranCliente'
+ MasterDatasetName = 'AlbaranCliente'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'DetallesAlbaranCliente'
+ DetailFields = 'CODIGOALBARAN'
+ end
+ item
+ Name = 'FK_InformeDetallesAlbaranPago_InformeCabeceraAlbaranPago'
+ MasterDatasetName = 'InformeCabeceraAlbaranPago'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'InformeDetallesAlbaranPago'
+ DetailFields = 'CODIGOALBARAN'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert AlbaranCliente'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'AlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update AlbaranCliente'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'AlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete DetallesAlbaranCliente'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'DetallesAlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert DetallesAlbaranCliente'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'DetallesAlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update DetallesAlbaranCliente'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'DetallesAlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete AlbaranCliente'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'AlbaranCliente'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 48
+ Top = 24
+ end
+ object bpAlbaranes: TDABusinessProcessor
+ Schema = schAlbaranesCliente
+ InsertCommandName = 'Insert_AlbaranCliente'
+ UpdateCommandName = 'Update_AlbaranCliente'
+ RefreshDatasetName = 'AlbaranCliente_RefreshDataset'
+ ReferencedDataset = 'AlbaranCliente'
+ ProcessorOptions = [poAutoGenerateDelete, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 184
+ Top = 24
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 200
+ Top = 128
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 128
+ end
+ object DADataCabecera: TDADataSource
+ DataTable = tbl_AlbaranPago
+ Left = 120
+ Top = 176
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_DetallesAlbaranPago
+ Left = 200
+ 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 = 38708.696339131940000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure Band4OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto comentario'#39';'
+ ' MemoCampo2.Style := '#39'Concepto comentario'#39';'
+ ' MemoCampo3.Style := '#39'Concepto comentario'#39';'
+ ' MemoCampo4.Style := '#39'Concepto comentario'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'A'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' end;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSum' +
+ 'mary1.Height - 1;'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 128
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ 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>
+ end
+ object tbl_AlbaranPago: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 120
+ Top = 232
+ end
+ object tbl_DetallesAlbaranPago: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 200
+ Top = 232
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 72
+ end
+end
diff --git a/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas
new file mode 100644
index 0000000..77f619a
--- /dev/null
+++ b/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas
@@ -0,0 +1,163 @@
+unit srvAlbaranesCliente_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDAInterfaces, frxClass, DB, frxDBSet,
+ uDACDSDataTable, uDABINAdapter;
+
+type
+ { TsrvAlbaranesCliente }
+ TsrvAlbaranesCliente = class(TDARemoteService, IsrvAlbaranesCliente)
+ bpAlbaranes: TDABusinessProcessor;
+ frxDBDetalles: TfrxDBDataset;
+ frxDBCabecera: TfrxDBDataset;
+ DADataCabecera: TDADataSource;
+ DADataDetalles: TDADataSource;
+ tbl_AlbaranPago: TDACDSDataTable;
+ tbl_DetallesAlbaranPago: TDACDSDataTable;
+ DABINAdapter: TDABINAdapter;
+ schAlbaranesCliente: TDASchema;
+ frxReport1: TfrxReport;
+ private
+ protected
+ function GetNextAutoinc: Integer;
+ function ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function DarNuevaReferencia: String;
+ function PuedoEliminarAlbaran(const CodigoAlbaran: Integer): Boolean;
+ function DarSumaImportes(const FechaIni: DateTime; const FechaFin: DateTime): TstImportes;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, Forms, Dialogs,
+ schAlbaranesClienteClient_Intf;
+
+procedure Create_srvAlbaranesCliente(out anInstance : IUnknown);
+begin
+ anInstance := TsrvAlbaranesCliente.Create(NIL);
+end;
+
+{ TsrvAlbaranesCliente }
+
+function TsrvAlbaranesCliente.DarSumaImportes(const FechaIni,
+ FechaFin: DateTime): TstImportes;
+var
+ dsSuma: IDADataset;
+ AImportes : TstImportes;
+begin
+ Connection.BeginTransaction;
+ AImportes := TstImportes.Create;
+ dsSuma := schAlbaranesCliente.NewDataset(Connection, nme_DarSumaImportes, ['FECHAINI', 'FECHAFIN'], [FechaIni, FechaFin]);
+ try
+ dsSuma.Open;
+ if dsSuma.RecordCount > 0 then
+ with AImportes do
+ begin
+ BaseImponible := dsSuma.FieldByName(fld_DarSumaImportesBASEIMPONIBLE).AsCurrency;
+ ImporteIVA := dsSuma.FieldByName(fld_DarSumaImportesIMPORTEIVA).AsCurrency;
+ ImporteTotal := dsSuma.FieldByName(fld_DarSumaImportesIMPORTETOTAL).AsCurrency;
+ end;
+ Result := AImportes;
+ finally
+ dsSuma.Close;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+function TsrvAlbaranesCliente.DarNuevaReferencia: String;
+var
+ dsReferencia: IDADataset;
+begin
+ dsReferencia := schAlbaranesCliente.NewDataset(Connection, 'DarReferenciaAlbaran');
+ dsReferencia.Active := True;
+ Result := dsReferencia.FieldByName('REFERENCIA').AsString;
+end;
+
+function TsrvAlbaranesCliente.ExisteAlbaranDePresupuesto(
+ const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean;
+var
+ ADataSet : IDADataset;
+begin
+ Result := False;
+ ADataSet := schAlbaranesCliente.NewDataset(Connection, nme_AlbaranDePresupuesto);
+ ADataSet.ParamByName('CODIGOPRESUPUESTO').AsInteger := CodigoPresupuesto;
+ ADataSet.Open;
+ if ADataSet.RecordCount > 0 then
+ begin
+ CodigoAlbaran := ADataSet.FieldByName(fld_AlbaranDePresupuestoCODIGO).AsInteger;
+ Result := True;
+ end;
+ ADataSet.Close;
+end;
+
+function TsrvAlbaranesCliente.GenerateReport(const Codigo: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schAlbaranesCliente.NewDataset(Connection, 'InformeCabeceraAlbaranPago', ['CODIGO'], [Codigo]);
+ dsDetail := schAlbaranesCliente.NewDataset(Connection, 'InformeDetallesAlbaranPago', ['CODIGOALBARAN'], [Codigo]);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_AlbaranPago, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_DetallesAlbaranPago, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfAlbaran.fr3', True);
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvAlbaranesCliente.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_ALBARANESCLIENTE');
+end;
+
+function TsrvAlbaranesCliente.PuedoEliminarAlbaran(
+ const CodigoAlbaran: Integer): Boolean;
+var
+ dsAlbaran: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsAlbaran := schAlbaranesCliente.NewCommand(Connection, 'Delete_AlbaranCliente', ['OLD_CODIGO'], [CodigoAlbaran]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Almacenes/Cliente/Almacenes.bdsproj b/Modulos/Almacenes/Cliente/Almacenes.bdsproj
new file mode 100644
index 0000000..e0477e2
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/Almacenes.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Almacenes.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Modulos/Almacenes/Cliente/Almacenes.cfg b/Modulos/Almacenes/Cliente/Almacenes.cfg
new file mode 100644
index 0000000..5ba1fcf
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/Almacenes.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Almacenes/Cliente/Almacenes.dcp b/Modulos/Almacenes/Cliente/Almacenes.dcp
new file mode 100644
index 0000000..dacc4ea
Binary files /dev/null and b/Modulos/Almacenes/Cliente/Almacenes.dcp differ
diff --git a/Modulos/Almacenes/Cliente/Almacenes.dof b/Modulos/Almacenes/Cliente/Almacenes.dof
new file mode 100644
index 0000000..e9a4708
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/Almacenes.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Almacenes/Cliente/Almacenes.dpk b/Modulos/Almacenes/Cliente/Almacenes.dpk
new file mode 100644
index 0000000..239543f
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/Almacenes.dpk
@@ -0,0 +1,82 @@
+package Almacenes;
+
+{$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 OFF}
+
+requires
+ vcl,
+ rtl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PNG_D7,
+ PngComponentsD7,
+ dbrtl,
+ vcldb,
+ dsnap,
+ adortl,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ vclactnband,
+ designide,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ BaseD7,
+ Usuarios,
+ dxPSCoreD7,
+ dxComnD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ frx7,
+ fs7,
+ fqb70,
+ bdertl;
+
+contains
+ uPluginControllerAlmacenes in 'uPluginControllerAlmacenes.pas' {ModuleAlmacenes: TModuleController},
+ uViewAlmacen in 'uViewAlmacen.pas' {frViewAlmacen: TFrame},
+ uEditorAlmacen in 'uEditorAlmacen.pas' {fEditorAlmacen: TCustomEditor},
+ uDataModuleAlmacenes in 'uDataModuleAlmacenes.pas' {dmAlmacenes: TDAClientDataModule},
+ uEditorAlmacenes in 'uEditorAlmacenes.pas' {fEditorAlmacenes: TCustomEditor},
+ uViewAlmacenes in 'uViewAlmacenes.pas' {frViewAlmacenes: TFrame},
+ uListaAlmacenes in 'uListaAlmacenes.pas' {fListaAlmacenes},
+ uBizAlmacenes in '..\Reglas\uBizAlmacenes.pas';
+
+end.
diff --git a/Modulos/Almacenes/Cliente/Almacenes.drc b/Modulos/Almacenes/Cliente/Almacenes.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/Almacenes.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Almacenes/Cliente/Almacenes.res b/Modulos/Almacenes/Cliente/Almacenes.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Almacenes/Cliente/Almacenes.res differ
diff --git a/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.ddp b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.dfm b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.dfm
new file mode 100644
index 0000000..2b412c9
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.dfm
@@ -0,0 +1,323 @@
+object dmAlmacenes: TdmAlmacenes
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 328
+ Top = 337
+ Height = 208
+ Width = 313
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvAlmacenes'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Almacenes: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ALMACENES'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOALMACEN_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tel'#233'fono'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'M'#243'vil'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fax'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Persona de contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'ALMACENES'
+ IndexDefs = <>
+ Left = 152
+ Top = 24
+ end
+ object ds_Almacenes: TDADataSource
+ DataTable = tbl_Almacenes
+ Left = 224
+ Top = 24
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.pas b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.pas
new file mode 100644
index 0000000..b2dfa0e
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uDataModuleAlmacenes.pas
@@ -0,0 +1,136 @@
+unit uDataModuleAlmacenes;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizAlmacenes;
+
+type
+ TdmAlmacenes = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Almacenes: TDACDSDataTable;
+ ds_Almacenes: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetItems: IBizAlmacen;
+ function GetItem(Codigo : Integer): IBizAlmacen;
+ procedure Preview;
+ function PuedoEliminarAlmacen(Codigo : Integer) : Boolean;
+ end;
+
+var
+ dmAlmacenes: TdmAlmacenes;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schAlmacenesClient_Intf, uDataModuleBase, uDBSelectionList;
+
+const
+ MAX_RECORDS = 100;
+
+
+procedure TdmAlmacenes.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmAlmacenes.GetItems: IBizAlmacen;
+var
+ dtAlmacenes: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtAlmacenes := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Almacenes, dtAlmacenes);
+ dtAlmacenes.BusinessRulesID := 'BizAlmacen';
+ Result := (dtAlmacenes as IBizAlmacen);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmAlmacenes.Preview;
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+{ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvContactos).GenerateReport;
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+}
+end;
+
+{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+function TdmAlmacenes.GetItem(Codigo: Integer): IBizAlmacen;
+var
+ AAlmacen: IBizAlmacen;
+begin
+ AAlmacen := GetItems;
+ with AAlmacen.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_ALMACENESCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := AAlmacen;
+end;
+
+function TdmAlmacenes.PuedoEliminarAlmacen(Codigo: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvAlmacenes).PuedoEliminarAlmacen(Codigo);
+end;
+
+initialization
+ dmAlmacenes := TdmAlmacenes.Create(nil);
+
+finalization
+ FreeAndNil(dmAlmacenes);
+
+end.
+
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacen.ddp b/Modulos/Almacenes/Cliente/uEditorAlmacen.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uEditorAlmacen.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacen.dfm b/Modulos/Almacenes/Cliente/uEditorAlmacen.dfm
new file mode 100644
index 0000000..98f60a4
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uEditorAlmacen.dfm
@@ -0,0 +1,126 @@
+inherited fEditorAlmacen: TfEditorAlmacen
+ Left = 374
+ Top = 273
+ HorzScrollBar.Visible = False
+ VertScrollBar.Range = 0
+ VertScrollBar.Visible = False
+ BorderStyle = bsDialog
+ Caption = 'Ficha de almac'#233'n'
+ ClientHeight = 463
+ ClientWidth = 634
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 634
+ Caption = 'Almac'#233'n'
+ inherited Image1: TImage
+ Left = 607
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000
+ 00001008060000001FF3FF610000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB51930000022E4944415478DA8D93CF6BD3
+ 6018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83DC87619781A
+ 1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5A31DD8CCBA
+ FEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B02C0B8220E0
+ F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A62368DCCAB69B0
+ B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A4D51F83987
+ 99EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127A8B90C3ECD
+ 3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D7480C3F974
+ 12AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D129D9D413ED4
+ 154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC1F80655A30
+ 8C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D13866EC344
+ 33F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2AADB02DAEF
+ 9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D352AD17564
+ 3E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE3AB2F96C01
+ E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A312B24AB058
+ 2C2110946907282C61BA3588442221B882C343E75C50A30093B10484D849EAD5
+ 3AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2C791891C71
+ 618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C6DF9256E86
+ 59FD02D3B7960923D6946A0000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 634
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 634
+ Height = 368
+ inherited pagGeneral: TTabSheet
+ Constraints.MinHeight = 140
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 444
+ Width = 634
+ end
+ inherited EditorActionList: TActionList
+ Top = 128
+ end
+ inherited SmallImages: TPngImageList
+ Top = 112
+ end
+ inherited dsDataTable: TDADataSource [6]
+ OnDataChange = dsDataTableDataChange
+ Left = 168
+ Top = 120
+ end
+ inherited LargeImages: TPngImageList [7]
+ Top = 112
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacen.pas b/Modulos/Almacenes/Cliente/uEditorAlmacen.pas
new file mode 100644
index 0000000..72a4555
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uEditorAlmacen.pas
@@ -0,0 +1,150 @@
+unit uEditorAlmacen;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ uViewAlmacen, uBizAlmacenes, JvNavigationPane, ActnList,
+ uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
+ TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
+ TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+
+ uViewAlmacenes;
+
+type
+ IEditorAlmacen = interface(IEditorDBItem)
+ ['{BADE8E8B-B0BC-4759-B2EE-4B4082827BE0}']
+ function GetAlmacen: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ end;
+
+ TfEditorAlmacen = class(TfEditorDBItem, IEditorAlmacen)
+
+ procedure FormShow(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure actEliminarExecute(Sender: TObject);
+ private
+ FAlmacen: IBizAlmacen;
+ FViewAlmacen : IViewAlmacen;
+ protected
+ function GetAlmacen: IBizAlmacen; virtual;
+ procedure SetAlmacen(const Value: IBizAlmacen); virtual;
+
+ function GetViewAlmacen: IViewAlmacen;
+ procedure SetViewAlmacen(const Value: IViewAlmacen);
+ property ViewAlmacen: IViewAlmacen read GetViewAlmacen write
+ SetViewAlmacen;
+ public
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uCustomEditor, uDataModuleAlmacenes, uDataModuleBase, uEditorUtils;
+
+function ShowEditorAlmacen (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorAlmacen;
+begin
+ AEditor := TfEditorAlmacen.Create(Application);
+ try
+ AEditor.Almacen := (ABizObject as IBizAlmacen);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+******************************* TfEditorAlmacen *******************************
+}
+function TfEditorAlmacen.GetAlmacen: IBizAlmacen;
+begin
+ Result := FAlmacen;
+end;
+
+function TfEditorAlmacen.GetViewAlmacen: IViewAlmacen;
+begin
+ Result := FViewAlmacen;
+end;
+
+procedure TfEditorAlmacen.SetAlmacen(const Value: IBizAlmacen);
+begin
+ FAlmacen := Value;
+ dsDataTable.DataTable := FAlmacen.DataTable;
+
+ if Assigned(FViewAlmacen) and Assigned(Almacen) then
+ FViewAlmacen.Almacen := Almacen;
+end;
+
+procedure TfEditorAlmacen.SetViewAlmacen(const Value: IViewAlmacen);
+begin
+ FViewAlmacen := Value;
+
+ if Assigned(FViewAlmacen) and Assigned(Almacen) then
+ FViewAlmacen.Almacen := Almacen;
+end;
+
+procedure TfEditorAlmacen.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewAlmacen) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Almacen) then
+ raise Exception.Create('No hay ningún almacén asignado');
+
+ Almacen.DataTable.Active := True;
+ FViewAlmacen.ShowEmbedded(pagGeneral);
+ FViewAlmacen.SetFocus;
+end;
+
+destructor TfEditorAlmacen.Destroy;
+begin
+ FViewAlmacen := NIL;
+ FAlmacen := NIL;
+ inherited;
+end;
+
+constructor TfEditorAlmacen.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewAlmacen := CreateView(TfrViewAlmacen) as IViewAlmacen;
+end;
+
+procedure TfEditorAlmacen.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(FAlmacen) and (not (FAlmacen.DataTable.Fetching) or
+ not (FAlmacen.DataTable.Opening) or not (FAlmacen.DataTable.Closing)) then
+ begin
+ if Length(FAlmacen.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo almacén'
+ else
+ JvNavPanelHeader.Caption := 'Almacén - ' + FAlmacen.Nombre;
+ Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorAlmacen.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este almacén?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+initialization
+ RegisterEditor(IBizAlmacen, ShowEditorAlmacen, etItem);
+
+end.
+
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacenes.ddp b/Modulos/Almacenes/Cliente/uEditorAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uEditorAlmacenes.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacenes.dfm b/Modulos/Almacenes/Cliente/uEditorAlmacenes.dfm
new file mode 100644
index 0000000..d95ebcb
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uEditorAlmacenes.dfm
@@ -0,0 +1,1414 @@
+inherited fEditorAlmacenes: TfEditorAlmacenes
+ Left = 213
+ Top = 191
+ Caption = 'Lista de almacenes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de almacenes'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000001D44944415478DAB5D4BD4B02
+ 7118C0F1E737D552D0105843616F838519166551345443A32D2E0DD15863FF41
+ 6B2141353544144A2004114144431695841445D00BE950E7905618742F2257CF
+ D9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F98205AF5D7C
+ 611296C3FE33961802189F5909C13B1383EFF427B05FB94738B40976BB0DC6E7
+ 56FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F10DA9D798A5
+ 785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC55B1B9A41E0
+ 0510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B070A81D97E52
+ D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C360369B95223C27
+ C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C460EBF1CD6
+ 01751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D088473AD3C8
+ 0ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3008D6C3DD4
+ 1A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3DF9962C0056
+ 2315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371FC0E388ECD
+ 03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B9C733EB03A
+ 5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ inherited tbxEditFiltro: TTBXEditItem
+ EditOptions = [tboUseEditWhenVertical]
+ end
+ inherited TBXItem37: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 885
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 885
+ inherited bSeleccionar: TButton
+ Left = 550
+ end
+ inherited bCancelar: TButton
+ Left = 629
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ end
+ inherited actDuplicar: TAction
+ Visible = False
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 610000000970485973000017120000171201679FD252000002704944415478DA
+ 8593DB4B545114C6BF333AFB8CCD3853A11686162811410F1118241524984951
+ 0F864F520F3DE8D3FC0DD183145949E12814D1850A9CA2871294A8208BC1862E
+ 2814836578BF4D9A8D9EBD679A4E6B9D33C7697AB0058BBD38ECEFB7D7FA1647
+ 936F607AF6410305D7FA17E07C773946A646D1DE0E0483583334F30E4C554145
+ 6508E6700B18903C9CAD7BA64E63B0FF39829D8FF0333E83C5D971CA49DCB874
+ 16F1AD0DD0D46CC814BD2D6008078BB8764097CFB45AE2C5D9090B30333A8CBB
+ 1D17D070A20E5DEF7DD481692239D769B2D8F4B7D86D2D85ACD311FF989BC4D2
+ FC34BE4F8FE1E69573387AE4100A7D5E5C1BD0A13973AB93B65014374329B2E4
+ 5D76CEA1A9562416E2B8DF7511C7EA6BE05D57004DD36C007BC09718A0EB5669
+ 01F4EE2CA0F92A01A9D3EABD7B50B2A908C29D0F97CB9501AC3142AC27826432
+ 052525FA9EF4A3627B19021B0210C24D10373AA21EDB44769CB7C0663AE16C26
+ 7AAF0FD248E2D58BB728DF560AFF7A1FDC04D0751DD73FFAB21EFCBD3AAE9DCD
+ BC7E590F432A44238328DD528242BF176E9D3AD0056E7FDA687BD0D60BD4D59E
+ 4265E52D0B104D3442190AD5C58FF13456439E280C7E88A1A828001F01841010
+ 1E81075F37DB1EB435692603D2E9DF48A914E48AB2440641944C522AC43E7F43
+ 61C00B9FB7003A89798487136559406D4D1389E832CD2B0D099911328481E363
+ D3F014084A0F3CD4FEB3E59D0887C3DA2AE06075235D94D68B2B7C2A06290BC4
+ 677C7E0179F92E7A596020AFCA12DBFF420650B5FB784ECB9CD2B0C5067D5B4E
+ 2CF3750CF9F7AF8A7300BB76D459C6392F33C8C87490FE95A65392F8408E3807
+ 10910DF85FFC2BE6F80376357B8923C9356C0000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000002694944415478DA
+ B594CB6B134118C0BFB9743D6841A48A1E5A1FF1502A5AA555A3584544BDE829
+ 1E04C58B87E4A247FF84EAA168AD90A017C17A908882082A8A50A15AAD448B0F
+ D0F8A8252D4A1A2D096477670DE37C3B997D249B6636E007C37C330BBFDF3CBE
+ 59C21803F305615A9411E061E75F7972C233AE7E6B25080A60943073031F4492
+ C0BE240005F4909B4B59CB029A4FB1B64709400906423197A28BA7072137F72B
+ 347C64D22062073C50823D6B4F08733169F7083F9BBA0385D96F502E2EF0F607
+ F4D2028CDDBE09EBD7AD8223E792F6BC5EFAEDFB3E742F0BE9749A10E3393067
+ D5C704B8AD230EA6C94F25E3AE6646BFAA0CBF3E320885AE9810B01B42605F28
+ 17689A18A2404BBB82A9A51794E1AB97AF84F7ED0355419323CAFF5801F3B9EF
+ A1E0183E01C2B162B08AF0B29D1D552B2BF3704609BEB1732D509302A57FFD02
+ 59FBDED2C45C56D6A5F39D4DE1DB36F5D870D3B4EC3EB36497E788F83BC05A8F
+ 6F276C78585C78FCB2D845EA8C9B378A81683F58D472E0D84F903EFF1D600C9D
+ 24ECF0C1534DEBBB52A9701007EA149E3C18879ECD117E2C964F3246B7B426F0
+ C211F4ECE924F4F675DB70AFE471A93BBCA0168EA097E36F21BA672BE8BAE193
+ DC9F8F841304C1B17FF3FA23EC3BB0838FA94F7277AE4B5DD0088E731FDE656D
+ 81789CAEE4D6F41A35C162705C69F6D3B423F04A463F773417D4C2CB6543801D
+ 9105B3B99F3E81945C9B5AB6B8C0811862B5A65CB5078E2D9F2FD409AEBCD26C
+ 38E681025538CE178B259FC00B0F14ECDF7B5C198E7760188623A885070A76EF
+ 8C29C331A420081E28E8EF3DAA0C9702F9E70C7A3F758209230661A311BC4EF0
+ 3FE21F497E40FE838101750000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uEditorAlmacenes.pas b/Modulos/Almacenes/Cliente/uEditorAlmacenes.pas
new file mode 100644
index 0000000..f0fd1cb
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uEditorAlmacenes.pas
@@ -0,0 +1,170 @@
+unit uEditorAlmacenes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uViewAlmacenes, uBizAlmacenes, ActnList, DBActns, uViewGrid,
+ Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
+ TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
+ JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
+ uViewBarraSeleccion, pngimage, JvComponentBase;
+
+type
+ IEditorAlmacenes = interface(IEditorGrid)
+ ['{D757531B-1392-46E9-9EDA-2B0A2AFE5DCC}']
+ function GetAlmacenes: IBizAlmacen;
+ procedure SetAlmacenes(const Value: IBizAlmacen);
+ property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
+
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+ TfEditorAlmacenes = class(TfEditorGrid, IEditorAlmacenes)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ private
+ FAlmacenes: IBizAlmacen;
+ protected
+ function GetAlmacenes: IBizAlmacen; virtual;
+ procedure SetAlmacenes(const Value: IBizAlmacen); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ function GetSelectionBarVisible: Boolean; virtual;
+ procedure SetSelectionBarVisible(const Value: Boolean); virtual;
+ public
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uCustomEditor, uDataModuleAlmacenes,
+ uEditorAlmacen, uEditorDBBase, uEditorUtils,
+ cxGrid, cxGridCustomTableView, uDBSelectionList, uListaAlmacenes;
+
+{$R *.dfm}
+
+function ShowEditorAlmacenes (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfListaAlmacenes;
+begin
+ AEditor := TfListaAlmacenes.Create(Application);
+ try
+ AEditor.Almacenes := (ABizObject as IBizAlmacen);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+****************************** TfEditorAlmacenes *******************************
+}
+procedure TfEditorAlmacenes.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Almacenes) then
+ raise Exception.Create('No hay ningún Almacen asignado');
+
+ Almacenes.DataTable.Active := True;
+end;
+
+function TfEditorAlmacenes.GetAlmacenes: IBizAlmacen;
+begin
+ Result := FAlmacenes;
+end;
+
+procedure TfEditorAlmacenes.SetAlmacenes(const Value: IBizAlmacen);
+begin
+ FAlmacenes := Value;
+ dsDataTable.DataTable := FAlmacenes.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewAlmacenes).Almacenes := Almacenes;
+end;
+
+procedure TfEditorAlmacenes.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Almacenes.Insert;
+ Almacenes.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAlmacenes.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Almacenes.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAlmacenes.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Almacenes) then
+ (ViewGrid as IViewAlmacenes).Almacenes := Almacenes;
+end;
+
+destructor TfEditorAlmacenes.Destroy;
+begin
+ FAlmacenes := NIL;
+ inherited;
+end;
+
+function TfEditorAlmacenes.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorAlmacenes.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorAlmacenes.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+constructor TfEditorAlmacenes.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewAlmacenes) as IViewAlmacenes;
+end;
+
+procedure TfEditorAlmacenes.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este almacén?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizAlmacen, ShowEditorAlmacenes, etItems);
+
+end.
+
diff --git a/Modulos/Almacenes/Cliente/uListaAlmacenes.ddp b/Modulos/Almacenes/Cliente/uListaAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uListaAlmacenes.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uListaAlmacenes.dfm b/Modulos/Almacenes/Cliente/uListaAlmacenes.dfm
new file mode 100644
index 0000000..66f8ea4
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uListaAlmacenes.dfm
@@ -0,0 +1,104 @@
+object fListaAlmacenes: TfListaAlmacenes
+ Left = 356
+ Top = 461
+ Width = 363
+ Height = 150
+ ActiveControl = cxAlmacenes
+ Caption = 'fListaAlmacenes'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 21
+ Top = 42
+ Width = 100
+ Height = 13
+ Caption = 'Nombre del almac'#233'n:'
+ end
+ object Label5: TLabel
+ Left = 9
+ Top = 9
+ Width = 84
+ Height = 13
+ Caption = 'Elegir almac'#233'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 108
+ Top = 9
+ Width = 237
+ Height = 9
+ Shape = bsBottomLine
+ end
+ object cxAlmacenes: TcxLookupComboBox
+ Left = 128
+ Top = 38
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ SortOrder = soAscending
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.AnsiSort = True
+ Properties.ListOptions.GridLines = glNone
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 217
+ end
+ object pnlSeleccion: TPanel
+ Left = 0
+ Top = 79
+ Width = 355
+ Height = 37
+ Align = alBottom
+ BevelOuter = bvNone
+ ParentBackground = True
+ TabOrder = 1
+ DesignSize = (
+ 355
+ 37)
+ object bSeleccionar: TButton
+ Left = 192
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Caption = '&Seleccionar'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ OnClick = bSeleccionarClick
+ end
+ object bCancelar: TButton
+ Left = 273
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 84
+ Top = 68
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uListaAlmacenes.pas b/Modulos/Almacenes/Cliente/uListaAlmacenes.pas
new file mode 100644
index 0000000..17fd6f0
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uListaAlmacenes.pas
@@ -0,0 +1,79 @@
+unit uListaAlmacenes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
+ cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase,
+ uViewBarraSeleccion, uBizAlmacenes, ExtCtrls, StdCtrls,
+ Grids, DBGrids;
+
+type
+ TfListaAlmacenes = class(TForm)
+ DADataSource: TDADataSource;
+ Label1: TLabel;
+ Label5: TLabel;
+ Bevel1: TBevel;
+ cxAlmacenes: TcxLookupComboBox;
+ pnlSeleccion: TPanel;
+ bSeleccionar: TButton;
+ bCancelar: TButton;
+ procedure bSeleccionarClick(Sender: TObject);
+ private
+ FAlmacenes: IBizAlmacen;
+ function GetAlmacenes: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ public
+ property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacen;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ fListaAlmacenes: TfListaAlmacenes;
+
+implementation
+{$R *.dfm}
+
+uses uDataModuleAlmacenes, schAlmacenesClient_Intf;
+
+{ TfListaAlmacenes }
+
+constructor TfListaAlmacenes.Create(AOwner: TComponent);
+begin
+ inherited;
+end;
+
+destructor TfListaAlmacenes.Destroy;
+begin
+ FAlmacenes := Nil;
+ inherited;
+end;
+
+function TfListaAlmacenes.GetAlmacenes: IBizAlmacen;
+begin
+ Result := FAlmacenes;
+end;
+
+procedure TfListaAlmacenes.SetAlmacen(const Value: IBizAlmacen);
+begin
+ FAlmacenes := Value;
+ if Assigned(FAlmacenes) then
+ begin
+ DADataSource.DataTable := FAlmacenes.DataTable;
+ FAlmacenes.DataTable.Active := True;
+ cxAlmacenes.ItemIndex := 0;
+ end
+ else
+ DADataSource.DataTable := Nil;
+end;
+
+procedure TfListaAlmacenes.bSeleccionarClick(Sender: TObject);
+begin
+ FAlmacenes.First;
+ FAlmacenes.Locate(fld_ALMACENESNOMBRE, cxAlmacenes.Text);
+end;
+
+end.
diff --git a/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.ddp b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.dfm b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.dfm
new file mode 100644
index 0000000..43f8432
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.dfm
@@ -0,0 +1,140 @@
+object ModuleAlmacenes: TModuleAlmacenes
+ OldCreateOrder = True
+ Description = 'Almacenes'
+ ModuleMenu = MainMenu
+ ModuleName = 'Almacenes'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 527
+ Top = 373
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001D44944415478DA
+ B5D4BD4B027118C0F1E737D552D0105843616F838519166551345443A32D2E0D
+ D15863FF416B2141353544144A2004114144431695841445D00BE950E7905618
+ 742F2257CFD9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F9
+ 8205AF5D7C611296C3FE33961802189F5909C13B1383EFF427B05FB94738B409
+ 76BB0DC6E756FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F1
+ 0DA9D798A5785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC5
+ 5B1B9A41E00510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B07
+ 0A81D97E52D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C36036
+ 9B95223C27C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C
+ 460EBF1CD601751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D0
+ 88473AD3C80ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3
+ 008D6C3DD41A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3D
+ F9962C00562315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371
+ FC0E388ECD03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B
+ 9C733EB03A5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE42
+ 6082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actAlmacenes: TAction
+ Category = 'Log'#237'stica'
+ Caption = 'Almacenes'
+ ImageIndex = 0
+ OnExecute = actAlmacenesExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 100
+ Caption = '&Log'#237'stica'
+ GroupIndex = 1
+ ImageIndex = 0
+ OnClick = actAlmacenesExecute
+ object Almacenes1: TMenuItem
+ Tag = 100
+ Action = actAlmacenes
+ end
+ object N1: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000022E4944415478DA
+ 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
+ C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
+ A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
+ 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
+ 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
+ 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
+ A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
+ 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
+ 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
+ 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
+ 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
+ AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
+ 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
+ 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
+ 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
+ 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
+ C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
+ 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
+ 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
+ E5D4DB2B04511800F06FB659D7CD2D892816B984258992242129E5924BDEE491
+ 47FF81571E9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC39
+ 63C7EEEC65CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2
+ FAD2709B5EB8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FB
+ AB986B9619D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3
+ 368FB0AE8E5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2D
+ A0D150E4E0402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0
+ B13C701C87DBA58555282E2B045A4B83D691AE685040578C6339585DDC808292
+ 3C0CC9D13F83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB7
+ 7D08593919222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A7
+ 4EE2D4814A18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F2031
+ 29016FA11C9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE
+ 21818F0F5688D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7
+ C53196FD5D1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F
+ 186ADFDFDE1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA
+ 0D53044B0DADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048
+ F8C2FC82A1889083DF93D867F65E51168D0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.pas b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.pas
new file mode 100644
index 0000000..18e2727
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uPluginControllerAlmacenes.pas
@@ -0,0 +1,73 @@
+unit uPluginControllerAlmacenes;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCAlmacenes = interface(IInterface)
+ ['{A0E73296-EAE8-4528-93EB-953484D484EB}']
+ end;
+
+ TModuleAlmacenes = class(TModuleController, IMCAlmacenes)
+ actAlmacenes: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ Almacenes1: TMenuItem;
+ SmallImages: TPngImageList;
+ N1: TMenuItem;
+ procedure actAlmacenesExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleAlmacenes, uEditorAlmacenes,
+ uBizAlmacenes;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleAlmacenes.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleAlmacenes.actAlmacenesExecute(Sender: TObject);
+var
+ aObj: IEditorAlmacenes;
+ AAlmacenes : IBizAlmacen;
+begin
+ AAlmacenes := dmAlmacenes.GetItems;
+ aObj := TfEditorAlmacenes.Create(Application);
+ try
+ with aObj do
+ begin
+ Almacenes := AAlmacenes;
+ ShowEmbedded;
+ end;
+ finally
+ AAlmacenes := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleAlmacenes);
+
+finalization
+ UnRegisterModuleClass(TModuleAlmacenes);
+
+end.
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacen.ddp b/Modulos/Almacenes/Cliente/uViewAlmacen.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uViewAlmacen.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacen.dfm b/Modulos/Almacenes/Cliente/uViewAlmacen.dfm
new file mode 100644
index 0000000..a4e958a
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uViewAlmacen.dfm
@@ -0,0 +1,218 @@
+inherited frViewAlmacen: TfrViewAlmacen
+ Width = 600
+ Height = 245
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 245
+ Constraints.MinWidth = 600
+ OnResize = FrameResize
+ object pnlGeneral: TPanel
+ Left = 0
+ Top = 0
+ Width = 313
+ Height = 84
+ BevelOuter = bvNone
+ Constraints.MinWidth = 300
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 0
+ DesignSize = (
+ 313
+ 84)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 165
+ Height = 13
+ Caption = 'Datos generales del almac'#233'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 176
+ Top = 8
+ Width = 129
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 54
+ Height = 26
+ Caption = 'Persona de'#13#10'contacto:'
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 41
+ Height = 13
+ Caption = 'Nombre:'
+ end
+ object eNombre: TcxDBTextEdit
+ Left = 93
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'NOMBRE'
+ DataBinding.DataSource = DADataSource
+ Style.Color = 14745599
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 204
+ end
+ object ePersonaContacto: TcxDBTextEdit
+ Left = 93
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'PERSONACONTACTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 204
+ end
+ end
+ inline frViewDireccion: TfrViewDireccion
+ Left = 0
+ Top = 100
+ Width = 601
+ Height = 140
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 127
+ Caption = 'Direcci'#243'n del almac'#233'n'
+ end
+ inherited Bevel1: TBevel
+ Left = 144
+ Width = 445
+ end
+ inherited eCalle: TcxDBTextEdit
+ Left = 92
+ Width = 495
+ end
+ inherited ePoblacion: TcxDBTextEdit
+ Left = 92
+ Width = 495
+ end
+ inherited eProvincia: TcxDBTextEdit
+ Left = 92
+ Width = 495
+ end
+ inherited eCodigoPostal: TcxDBTextEdit
+ Left = 92
+ Width = 495
+ end
+ end
+ object Panel1: TPanel
+ Left = 313
+ Top = 0
+ Width = 288
+ Height = 113
+ BevelOuter = bvNone
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 1
+ DesignSize = (
+ 288
+ 113)
+ object Label3: TLabel
+ Left = 8
+ Top = 8
+ Width = 129
+ Height = 13
+ Caption = 'Tel'#233'fonos de contacto'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel2: TBevel
+ Left = 144
+ Top = 8
+ Width = 134
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblTelefono: TLabel
+ Left = 22
+ Top = 32
+ Width = 46
+ Height = 13
+ Caption = 'Tel'#233'fono:'
+ end
+ object lblMovil: TLabel
+ Left = 22
+ Top = 56
+ Width = 28
+ Height = 13
+ Caption = 'M'#243'vil:'
+ end
+ object lblFax: TLabel
+ Left = 22
+ Top = 80
+ Width = 75
+ Height = 13
+ Caption = 'N'#250'mero de fax:'
+ end
+ object eTlfTelefono: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ DataBinding.DataField = 'TELEFONO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 173
+ end
+ object eTlfMovil: TcxDBTextEdit
+ Left = 100
+ Top = 52
+ DataBinding.DataField = 'MOVIL'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 173
+ end
+ object eFax: TcxDBTextEdit
+ Left = 100
+ Top = 76
+ DataBinding.DataField = 'FAX'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 173
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 336
+ Top = 64
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacen.pas b/Modulos/Almacenes/Cliente/uViewAlmacen.pas
new file mode 100644
index 0000000..764b25d
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uViewAlmacen.pas
@@ -0,0 +1,107 @@
+unit uViewAlmacen;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
+ DBCtrls, Grids, DBGrids, uBizAlmacenes, Mask, ComCtrls, uCustomView,
+ uViewDireccion, uViewTelefonos, uViewInternet, uViewCategorias,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit;
+
+type
+ IViewAlmacen = interface(IViewBase)
+ ['{A9189F38-9832-4919-9B98-56F345C2AACA}']
+ function GetAlmacen: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ end;
+
+ TfrViewAlmacen = class(TfrViewBase, IViewAlmacen)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ frViewDireccion: TfrViewDireccion;
+ Label1: TLabel;
+ Label2: TLabel;
+ Label5: TLabel;
+ pnlGeneral: TPanel;
+ eNombre: TcxDBTextEdit;
+ ePersonaContacto: TcxDBTextEdit;
+ Panel1: TPanel;
+ Label3: TLabel;
+ Bevel2: TBevel;
+ lblTelefono: TLabel;
+ eTlfTelefono: TcxDBTextEdit;
+ lblMovil: TLabel;
+ eTlfMovil: TcxDBTextEdit;
+ lblFax: TLabel;
+ eFax: TcxDBTextEdit;
+ procedure FrameResize(Sender: TObject);
+ private
+ FAlmacen: IBizAlmacen;
+ protected
+ function GetAlmacen: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ public
+ constructor Create(AOwner : TComponent); override;
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ end;
+
+implementation
+
+uses uDataModuleAlmacenes;
+
+{$R *.dfm}
+
+{ TfrViewAlmacenes }
+
+{
+******************************* TfrViewAlmacenes ********************************
+}
+constructor TfrViewAlmacen.Create(AOwner : TComponent);
+begin
+ inherited;
+end;
+
+procedure TfrViewAlmacen.FrameResize(Sender: TObject);
+var
+ CalcWidth: Integer;
+begin
+ { CalcWidth := Round(Width / (1.0 + WidthRatio));
+
+ DisableAlign;
+ try
+ pnlGeneral.Width := CalcWidth;
+ frViewDireccion.Width := CalcWidth;
+ frViewTelefonos.Left := pnlGeneral.Width + pnlGeneral.Left;
+ frViewTelefonos.Width := CalcWidth;
+ finally
+ EnableAlign;
+ end;}
+end;
+
+function TfrViewAlmacen.GetAlmacen: IBizAlmacen;
+begin
+ Result := FAlmacen;
+end;
+
+procedure TfrViewAlmacen.SetAlmacen(const Value: IBizAlmacen);
+begin
+ FAlmacen := Value;
+ if Assigned(FAlmacen) then
+ DADataSource.DataTable := FAlmacen.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDireccion.DADataSource.DataTable := DADataSource.DataTable;
+end;
+
+initialization
+ RegisterClass(TfrViewAlmacen);
+
+finalization
+ UnRegisterClass(TfrViewAlmacen);
+
+end.
+
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacenes.ddp b/Modulos/Almacenes/Cliente/uViewAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Cliente/uViewAlmacenes.ddp differ
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacenes.dfm b/Modulos/Almacenes/Cliente/uViewAlmacenes.dfm
new file mode 100644
index 0000000..ba445d2
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uViewAlmacenes.dfm
@@ -0,0 +1,73 @@
+inherited frViewAlmacenes: TfrViewAlmacenes
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGrid1ViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ SortIndex = 0
+ SortOrder = soAscending
+ Width = 304
+ end
+ object cxGrid1ViewPERSONACONTACTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CALLE'
+ Width = 118
+ end
+ object cxGrid1ViewTELEFONO: TcxGridDBColumn
+ DataBinding.FieldName = 'TELEFONO'
+ BestFitMaxWidth = 64
+ Width = 118
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000022E4944415478DA
+ 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
+ C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
+ A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
+ 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
+ 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
+ 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
+ A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
+ 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
+ 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
+ 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
+ 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
+ AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
+ 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
+ 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
+ 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
+ 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
+ C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
+ 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 160
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Almacenes/Cliente/uViewAlmacenes.pas b/Modulos/Almacenes/Cliente/uViewAlmacenes.pas
new file mode 100644
index 0000000..25d1efc
--- /dev/null
+++ b/Modulos/Almacenes/Cliente/uViewAlmacenes.pas
@@ -0,0 +1,82 @@
+unit uViewAlmacenes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, uBizAlmacenes, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk;
+
+type
+ IViewAlmacenes = interface(IViewGrid)
+ ['{B88935A5-527C-4CF5-84A6-AA197FB71674}']
+ function GetAlmacenes: IBizAlmacen;
+ procedure SetAlmacenes(const Value: IBizAlmacen);
+ property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
+ end;
+
+ TfrViewAlmacenes = class(TfrViewGrid, IViewAlmacenes)
+ cxGrid1ViewPERSONACONTACTO: TcxGridDBColumn;
+ cxGrid1ViewNOMBRE: TcxGridDBColumn;
+ cxGrid1ViewTELEFONO: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ PngImageList: TPngImageList;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ protected
+ FAlmacenes: IBizAlmacen;
+ function GetAlmacenes: IBizAlmacen; virtual;
+ procedure SetAlmacenes(const Value: IBizAlmacen); virtual;
+ public
+ property DataSet: IBizAlmacen read GetAlmacenes write SetAlmacenes;
+ end;
+
+var
+ frViewAlmacenes: TfrViewAlmacenes;
+
+implementation
+
+uses uDataModuleAlmacenes;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewAlmacenes *******************************
+}
+function TfrViewAlmacenes.GetAlmacenes: IBizAlmacen;
+begin
+ Result := FAlmacenes;
+end;
+
+procedure TfrViewAlmacenes.SetAlmacenes(const Value: IBizAlmacen);
+begin
+ FAlmacenes := Value;
+ if Assigned(FAlmacenes) then
+ DADataSource.DataTable := FAlmacenes.DataTable;
+end;
+
+
+procedure TfrViewAlmacenes.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+end.
diff --git a/Modulos/Almacenes/Reglas/schAlmacenesClient_Intf.pas b/Modulos/Almacenes/Reglas/schAlmacenesClient_Intf.pas
new file mode 100644
index 0000000..9aa82af
--- /dev/null
+++ b/Modulos/Almacenes/Reglas/schAlmacenesClient_Intf.pas
@@ -0,0 +1,317 @@
+unit schAlmacenesClient_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_ALMACENES = '{E40FF005-6127-4C15-B90B-62D1944091F3}';
+
+ { Data table names }
+ nme_ALMACENES = 'ALMACENES';
+
+ { ALMACENES fields }
+ fld_ALMACENESCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_ALMACENESCODIGO = 'CODIGO';
+ fld_ALMACENESFECHAALTA = 'FECHAALTA';
+ fld_ALMACENESUSUARIO = 'USUARIO';
+ fld_ALMACENESNOMBRE = 'NOMBRE';
+ fld_ALMACENESCALLE = 'CALLE';
+ fld_ALMACENESPROVINCIA = 'PROVINCIA';
+ fld_ALMACENESPOBLACION = 'POBLACION';
+ fld_ALMACENESCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_ALMACENESTELEFONO = 'TELEFONO';
+ fld_ALMACENESMOVIL = 'MOVIL';
+ fld_ALMACENESFAX = 'FAX';
+ fld_ALMACENESPERSONACONTACTO = 'PERSONACONTACTO';
+ fld_ALMACENESOBSERVACIONES = 'OBSERVACIONES';
+
+ { ALMACENES field indexes }
+ idx_ALMACENESCODIGOEMPRESA = 0;
+ idx_ALMACENESCODIGO = 1;
+ idx_ALMACENESFECHAALTA = 2;
+ idx_ALMACENESUSUARIO = 3;
+ idx_ALMACENESNOMBRE = 4;
+ idx_ALMACENESCALLE = 5;
+ idx_ALMACENESPROVINCIA = 6;
+ idx_ALMACENESPOBLACION = 7;
+ idx_ALMACENESCODIGOPOSTAL = 8;
+ idx_ALMACENESTELEFONO = 9;
+ idx_ALMACENESMOVIL = 10;
+ idx_ALMACENESFAX = 11;
+ idx_ALMACENESPERSONACONTACTO = 12;
+ idx_ALMACENESOBSERVACIONES = 13;
+
+type
+ { IALMACENES }
+ IALMACENES = interface(IDAStronglyTypedDataTable)
+ ['{3E2C271E-51D7-4838-98EC-BB629026C37C}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetTELEFONOValue: String;
+ procedure SetTELEFONOValue(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+ function GetFAXValue: String;
+ procedure SetFAXValue(const aValue: String);
+ function GetPERSONACONTACTOValue: String;
+ procedure SetPERSONACONTACTOValue(const aValue: String);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ end;
+
+ { TALMACENESDataTableRules }
+ TALMACENESDataTableRules = class(TDADataTableRules, IALMACENES)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetTELEFONOValue: String; virtual;
+ procedure SetTELEFONOValue(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TALMACENESDataTableRules }
+constructor TALMACENESDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TALMACENESDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TALMACENESDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_ALMACENESCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TALMACENESDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ALMACENESCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TALMACENESDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_ALMACENESCODIGO].AsInteger;
+end;
+
+procedure TALMACENESDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ALMACENESCODIGO].AsInteger := aValue;
+end;
+
+function TALMACENESDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_ALMACENESFECHAALTA].AsDateTime;
+end;
+
+procedure TALMACENESDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_ALMACENESFECHAALTA].AsDateTime := aValue;
+end;
+
+function TALMACENESDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESUSUARIO].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESUSUARIO].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESNOMBRE].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESNOMBRE].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESCALLE].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESCALLE].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESPROVINCIA].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESPROVINCIA].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESPOBLACION].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESPOBLACION].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESCODIGOPOSTAL].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetTELEFONOValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESTELEFONO].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetTELEFONOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESTELEFONO].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESMOVIL].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESMOVIL].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetFAXValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESFAX].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetFAXValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESFAX].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetPERSONACONTACTOValue: String;
+begin
+ result := DataTable.Fields[idx_ALMACENESPERSONACONTACTO].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ALMACENESPERSONACONTACTO].AsString := aValue;
+end;
+
+function TALMACENESDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_ALMACENESOBSERVACIONES].AsString;
+end;
+
+procedure TALMACENESDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_ALMACENESOBSERVACIONES].AsString := aValue.Text;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_ALMACENES, TALMACENESDataTableRules);
+
+end.
diff --git a/Modulos/Almacenes/Reglas/schAlmacenesServer_Intf.pas b/Modulos/Almacenes/Reglas/schAlmacenesServer_Intf.pas
new file mode 100644
index 0000000..deacbac
--- /dev/null
+++ b/Modulos/Almacenes/Reglas/schAlmacenesServer_Intf.pas
@@ -0,0 +1,367 @@
+unit schAlmacenesServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schAlmacenesClient_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_ALMACENESDelta = '{4FFAA3A8-AB4A-4DD2-A296-B9114795E2AE}';
+
+type
+ { IALMACENESDelta }
+ IALMACENESDelta = interface(IALMACENES)
+ ['{4FFAA3A8-AB4A-4DD2-A296-B9114795E2AE}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldTELEFONOValue : String;
+ function GetOldMOVILValue : String;
+ function GetOldFAXValue : String;
+ function GetOldPERSONACONTACTOValue : String;
+ function GetOldOBSERVACIONESValue : IROStrings;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldTELEFONO : String read GetOldTELEFONOValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property OldFAX : String read GetOldFAXValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ end;
+
+ { TALMACENESBusinessProcessorRules }
+ TALMACENESBusinessProcessorRules = class(TDABusinessProcessorRules, IALMACENES, IALMACENESDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetTELEFONOValue: String; virtual;
+ function GetOldTELEFONOValue: String; virtual;
+ procedure SetTELEFONOValue(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ function GetOldFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ function GetOldPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue;
+ property OldTELEFONO : String read GetOldTELEFONOValue;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property FAX : String read GetFAXValue write SetFAXValue;
+ property OldFAX : String read GetOldFAXValue;
+ property PERSONACONTACTO : String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TALMACENESBusinessProcessorRules }
+constructor TALMACENESBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TALMACENESBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TALMACENESBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGOEMPRESA];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESCODIGOEMPRESA];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGOEMPRESA] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGO];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESCODIGO];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGO] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESFECHAALTA];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESFECHAALTA];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESFECHAALTA] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESUSUARIO];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESUSUARIO];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESUSUARIO] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESNOMBRE];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESNOMBRE];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESNOMBRE] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCALLE];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESCALLE];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCALLE] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPROVINCIA];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESPROVINCIA];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPROVINCIA] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPOBLACION];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESPOBLACION];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPOBLACION] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGOPOSTAL];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESCODIGOPOSTAL];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESCODIGOPOSTAL] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetTELEFONOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESTELEFONO];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldTELEFONOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESTELEFONO];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetTELEFONOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESTELEFONO] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESMOVIL];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESMOVIL];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESMOVIL] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESFAX];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESFAX];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetFAXValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESFAX] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPERSONACONTACTO];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESPERSONACONTACTO];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESPERSONACONTACTO] := aValue;
+end;
+
+function TALMACENESBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESOBSERVACIONES];
+end;
+
+function TALMACENESBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ALMACENESOBSERVACIONES];
+end;
+
+procedure TALMACENESBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ALMACENESOBSERVACIONES] := aValue.Text;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_ALMACENESDelta, TALMACENESBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Almacenes/Reglas/uBizAlmacenes.pas b/Modulos/Almacenes/Reglas/uBizAlmacenes.pas
new file mode 100644
index 0000000..1fd649a
--- /dev/null
+++ b/Modulos/Almacenes/Reglas/uBizAlmacenes.pas
@@ -0,0 +1,161 @@
+unit uBizAlmacenes;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schAlmacenesClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls;
+
+type
+
+ IBizAlmacen = interface(IALMACENES)
+ ['{D9479C4B-52EA-4DB6-9F8F-4B8B758EF80A}']
+ procedure Show;
+ procedure ShowAll;
+ procedure Preview;
+ function ShowForSelect : TModalResult;
+ end;
+
+ TBizAlmacenDataTableRules = class(TALMACENESDataTableRules, IBizAlmacen,
+ IApplyUpdateFailedException, ISelectedRowList)
+ private
+ FSelectedRows : TSelectedRowList;
+ procedure ShowToSelect;
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+ procedure ShowAll; virtual;
+ procedure Preview; virtual;
+ function ShowForSelect : TModalResult; virtual;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ procedure ValidarAlmacen (const AAlmacen : IBizAlmacen);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
+ uEditorUtils, uDataModuleAlmacenes, Variants;
+
+
+procedure ValidarAlmacen (const AAlmacen : IBizAlmacen);
+begin
+//
+end;
+
+
+{ TBizAlmacenDataTableRules }
+
+{
+************************** TBizAlmacenDataTableRules **************************
+}
+
+procedure TBizAlmacenDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+end;
+
+procedure TBizAlmacenDataTableRules.Show;
+begin
+ ShowEditor(IBizAlmacen, Self, etItem);
+end;
+
+procedure TBizAlmacenDataTableRules.Preview;
+begin
+// dmContactos.Preview;
+end;
+
+procedure TBizAlmacenDataTableRules.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este almacén porque tiene articulos o está asociado al destino de algún pedido', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+function TBizAlmacenDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizAlmacenDataTableRules.ShowToSelect;
+begin
+//
+end;
+
+constructor TBizAlmacenDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizAlmacenDataTableRules.Destroy;
+begin
+ FSelectedRows.Free;
+ inherited;
+end;
+
+procedure TBizAlmacenDataTableRules.ShowAll;
+begin
+// ShowEditor(IBizProveedor, Self, etItems);
+end;
+
+function TBizAlmacenDataTableRules.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizAlmacen, Self, etItems);
+end;
+
+procedure TBizAlmacenDataTableRules.BeforeApplyUpdates(
+ Sender: TDADataTable; const Delta: IDADelta);
+var
+ i: Integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarAlmacen(Self);
+// ctDelete :
+ end;
+end;
+
+procedure TBizAlmacenDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('Nombre', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar al menos el nombre', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizAlmacenDataTableRules.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmAlmacenes.PuedoEliminarAlmacen(CODIGO) then
+ raise Exception.Create('No se puede borrar este almacén porque tiene articulos o está asociado al destino de algún pedido');
+end;
+
+initialization
+ RegisterDataTableRules('BizAlmacen', TBizAlmacenDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.ddp b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.ddp differ
diff --git a/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm
new file mode 100644
index 0000000..5f0a4cc
--- /dev/null
+++ b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm
@@ -0,0 +1,273 @@
+object srvAlmacenes: TsrvAlmacenes
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schAlmacenes
+ ServiceAdapter = DABINAdapter
+ Left = 200
+ Top = 200
+ Height = 300
+ Width = 300
+ object schAlmacenes: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALMACENES'
+ SQL =
+ 'SELECT '#10' CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, NOMBRE, '#10 +
+ ' CALLE, PROVINCIA, POBLACION, CODIGOPOSTAL, TELEFONO, '#10' MO' +
+ 'VIL, FAX, PERSONACONTACTO, OBSERVACIONES'#10' FROM'#10' ALMACENES'#10'OR' +
+ 'DER BY NOMBRE'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'TELEFONO'
+ TableField = 'TELEFONO'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end
+ item
+ DatasetField = 'FAX'
+ TableField = 'FAX'
+ end
+ item
+ DatasetField = 'PERSONACONTACTO'
+ TableField = 'PERSONACONTACTO'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end>
+ end>
+ Name = 'ALMACENES'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ALMACENES'
+ DictionaryEntry = 'CODIGOALMACEN_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TELEFONO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ALMACENES'
+ SQL = 'DELETE '#10' FROM'#10' ALMACENES'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Almacenes'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 40
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas
new file mode 100644
index 0000000..2d18e3e
--- /dev/null
+++ b/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas
@@ -0,0 +1,69 @@
+unit srvAlmacenes_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvAlmacenes }
+ TsrvAlmacenes = class(TDARemoteService, IsrvAlmacenes)
+ schAlmacenes: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ { IsrvAlmacenes methods }
+ function GenerateReport: Binary;
+ function PuedoEliminarAlmacen(const Codigo: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, uDAInterfaces;
+
+procedure Create_srvAlmacenes(out anInstance : IUnknown);
+begin
+ anInstance := TsrvAlmacenes.Create(NIL);
+end;
+
+{ srvAlmacenes }
+function TsrvAlmacenes.GenerateReport: Binary;
+begin
+//
+end;
+
+function TsrvAlmacenes.PuedoEliminarAlmacen(
+ const Codigo: Integer): Boolean;
+var
+ dsData: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsData := schAlmacenes.NewCommand(Connection, 'Delete_Almacenes', ['OLD_CODIGO'], [Codigo]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvAlmacenes', Create_srvAlmacenes, TsrvAlmacenes_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Articulos/Cliente/Articulos.bdsproj b/Modulos/Articulos/Cliente/Articulos.bdsproj
new file mode 100644
index 0000000..d64e3d8
--- /dev/null
+++ b/Modulos/Articulos/Cliente/Articulos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Articulos.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ 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/Modulos/Articulos/Cliente/Articulos.cfg b/Modulos/Articulos/Cliente/Articulos.cfg
new file mode 100644
index 0000000..3b5f0f5
--- /dev/null
+++ b/Modulos/Articulos/Cliente/Articulos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Articulos/Cliente/Articulos.dcp b/Modulos/Articulos/Cliente/Articulos.dcp
new file mode 100644
index 0000000..21e4b78
Binary files /dev/null and b/Modulos/Articulos/Cliente/Articulos.dcp differ
diff --git a/Modulos/Articulos/Cliente/Articulos.dof b/Modulos/Articulos/Cliente/Articulos.dof
new file mode 100644
index 0000000..8a816a4
--- /dev/null
+++ b/Modulos/Articulos/Cliente/Articulos.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Montajes\Cliente;..\..\Documentos asociados
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Articulos/Cliente/Articulos.dpk b/Modulos/Articulos/Cliente/Articulos.dpk
new file mode 100644
index 0000000..a7a567d
--- /dev/null
+++ b/Modulos/Articulos/Cliente/Articulos.dpk
@@ -0,0 +1,88 @@
+package Articulos;
+
+{$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 OFF}
+
+requires
+ vcl,
+ rtl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PNG_D7,
+ PngComponentsD7,
+ dbrtl,
+ vcldb,
+ dsnap,
+ adortl,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ vclactnband,
+ designide,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ BaseD7,
+ Usuarios,
+ dxPSCoreD7,
+ dxComnD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ frx7,
+ fs7,
+ tee,
+ fqb70,
+ bdertl,
+ Almacenes,
+ PedidosProveedor,
+ Montajes_Intf;
+
+contains
+ uPluginControllerArticulos in 'uPluginControllerArticulos.pas' {ModuleArticulos: TModuleController},
+ uDataModuleArticulos in 'uDataModuleArticulos.pas' {dmArticulos: TDAClientDataModule},
+ uViewArticulosAlmacen in 'uViewArticulosAlmacen.pas' {frViewArticulosAlmacen: TFrame},
+ uEditorArticulosAlmacen in 'uEditorArticulosAlmacen.pas' {fEditorArticulosAlmacen: TCustomEditor},
+ uViewListaArticulos in 'uViewListaArticulos.pas' {frViewListaArticulos: TFrame},
+ uEditorEntradaArticulos in 'uEditorEntradaArticulos.pas' {fEditorEntradaArticulos: TCustomEditor},
+ uBizArticulos in '..\Reglas\uBizArticulos.pas',
+ uEditorSituacionPedido in 'uEditorSituacionPedido.pas' {fEditorSituacionPedido},
+ schArticulosServer_Intf in '..\Reglas\schArticulosServer_Intf.pas',
+ schArticulosClient_Intf in '..\Reglas\schArticulosClient_Intf.pas';
+
+end.
diff --git a/Modulos/Articulos/Cliente/Articulos.drc b/Modulos/Articulos/Cliente/Articulos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Articulos/Cliente/Articulos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Articulos/Cliente/Articulos.res b/Modulos/Articulos/Cliente/Articulos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Articulos/Cliente/Articulos.res differ
diff --git a/Modulos/Articulos/Cliente/uDataModuleArticulos.ddp b/Modulos/Articulos/Cliente/uDataModuleArticulos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uDataModuleArticulos.ddp differ
diff --git a/Modulos/Articulos/Cliente/uDataModuleArticulos.dfm b/Modulos/Articulos/Cliente/uDataModuleArticulos.dfm
new file mode 100644
index 0000000..a0feb6c
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uDataModuleArticulos.dfm
@@ -0,0 +1,263 @@
+object dmArticulos: TdmArticulos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 328
+ Top = 337
+ Height = 197
+ Width = 369
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvArticulos'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Articulos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOALMACEN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = True
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPEDIDO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAMONTAJE'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cliente'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Almac'#233'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'ARTICULOS'
+ IndexDefs = <>
+ Left = 168
+ Top = 24
+ end
+ object ds_Articulos: TDADataSource
+ DataTable = tbl_Articulos
+ Left = 248
+ Top = 24
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uDataModuleArticulos.pas b/Modulos/Articulos/Cliente/uDataModuleArticulos.pas
new file mode 100644
index 0000000..0b727e3
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uDataModuleArticulos.pas
@@ -0,0 +1,176 @@
+unit uDataModuleArticulos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizArticulos;
+
+type
+ TdmArticulos = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Articulos: TDACDSDataTable;
+ ds_Articulos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetDataTableItems: TDACDSDataTable;
+ function GetItems: IBizArticulosAlmacen;
+ function GetItemsLibres: IBizArticulosAlmacen;
+ function GetItem(Codigo : Integer): IBizArticulosAlmacen;
+ function GetNextAutoinc : integer;
+ procedure Preview;
+ end;
+
+var
+ dmArticulos: TdmArticulos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview, uBizMontajes,
+ Dialogs, schArticulosClient_Intf, uDataModuleBase, uDBSelectionList;
+
+const
+ MAX_RECORDS = 100;
+
+
+procedure TdmArticulos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+procedure TdmArticulos.Preview;
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+{ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvContactos).GenerateReport;
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+}
+end;
+
+{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+function TdmArticulos.GetItems: IBizArticulosAlmacen;
+var
+ AArticulos : IBizArticulosAlmacen;
+begin
+ AArticulos := (GetDataTableItems as IBizArticulosAlmacen);
+ with AArticulos.DataTable.Where do
+ begin
+ Clear;
+ OpenBraket;
+ AddText('MONTAJES.SITUACION not in (''' + SITUACION_PENDIENTEPAGO + ''', ''' + SITUACION_PAGADO + ''')', False);
+// AddText('MONTAJES.FECHAFIN is null', False);
+ CloseBraket;
+ end;
+
+ Result := AArticulos;
+end;
+
+function TdmArticulos.GetItem(Codigo: Integer): IBizArticulosAlmacen;
+var
+ AArticuloAlmacen: IBizArticulosAlmacen;
+begin
+ AArticuloAlmacen := GetItems;
+ with AArticuloAlmacen.DataTable do
+ begin
+ if Active then
+ Active := False;
+ Where.Clear;
+ Where.OpenBraket;
+ Where.AddText('ARTICULOS.' + fld_ARTICULOSCODIGO + ' = ' + IntToStr(Codigo), False);
+ Where.CloseBraket;
+ end;
+ Result := AArticuloAlmacen;
+end;
+
+function TdmArticulos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvArticulos).GetNextAutoinc;
+end;
+
+function TdmArticulos.GetDataTableItems: TDACDSDataTable;
+var
+ dtArticulos: TDACDSDataTable;
+ ACursor: TCursor;
+
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtArticulos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Articulos, dtArticulos);
+ dtArticulos.BusinessRulesID := 'BizArticulosAlmacen';
+ Result := dtArticulos;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmArticulos.GetItemsLibres: IBizArticulosAlmacen;
+var
+ AArticulos : IBizArticulosAlmacen;
+begin
+ AArticulos := GetItems;
+ with AArticulos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText('ARTICULOS.CODIGOMONTAJE is null', False);
+ CloseBraket;
+ end;
+
+ Result := AArticulos;
+end;
+
+initialization
+ dmArticulos := TdmArticulos.Create(nil);
+
+finalization
+ FreeAndNil(dmArticulos);
+
+end.
+
diff --git a/Modulos/Articulos/Cliente/uDataModuleLogistica.ddp b/Modulos/Articulos/Cliente/uDataModuleLogistica.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uDataModuleLogistica.ddp differ
diff --git a/Modulos/Articulos/Cliente/uDataModuleLogistica.dfm b/Modulos/Articulos/Cliente/uDataModuleLogistica.dfm
new file mode 100644
index 0000000..34fcb86
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uDataModuleLogistica.dfm
@@ -0,0 +1,502 @@
+object dmLogistica: TdmLogistica
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 328
+ Top = 337
+ Height = 498
+ Width = 531
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvLogistica'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Almacenes: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ALMACENES'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ DictionaryEntry = 'CODIGOALMACEN_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tel'#233'fono'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'M'#243'vil'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'N'#250'mero de fax'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Persona de contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ALMACENES'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'ALMACENES'
+ IndexDefs = <>
+ Left = 248
+ Top = 184
+ end
+ object ds_Almacenes: TDADataSource
+ DataTable = tbl_Almacenes
+ Left = 352
+ Top = 192
+ end
+ object tbl_Articulos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ARTICULOS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. art'#237'culo'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ DictionaryEntry = 'CODIGOARTICULO_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOALMACEN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOOBRA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. obra'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = True
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'ARTICULOS'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'ARTICULOS'
+ IndexDefs = <>
+ Left = 240
+ Top = 104
+ end
+ object ds_Articulos: TDADataSource
+ DataTable = tbl_Articulos
+ Left = 352
+ Top = 96
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uDataModuleLogistica.pas b/Modulos/Articulos/Cliente/uDataModuleLogistica.pas
new file mode 100644
index 0000000..de475a3
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uDataModuleLogistica.pas
@@ -0,0 +1,176 @@
+unit uDataModuleLogistica;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizLogistica;
+
+type
+ TdmLogistica = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Almacenes: TDACDSDataTable;
+ ds_Almacenes: TDADataSource;
+ tbl_Articulos: TDACDSDataTable;
+ ds_Articulos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetItemsAlmacenes: IBizAlmacen;
+ function GetItemsArticulos: IBizArticulosAlmacen;
+ function GetItemAlmacen(Codigo : Integer): IBizAlmacen;
+ function GetItemArticulo(Codigo : Integer): IBizArticulosAlmacen;
+
+
+
+ function GetNextAutoinc : integer;
+// function GetCliente(Codigo : Integer): IBizCliente; overload;
+ procedure Preview;
+ end;
+
+var
+ dmLogistica: TdmLogistica;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schLogisticaClient_Intf, uDataModuleBase, uDBSelectionList;
+
+const
+ MAX_RECORDS = 100;
+
+
+procedure TdmLogistica.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmLogistica.GetItemsAlmacenes: IBizAlmacen;
+var
+ dtAlmacenes: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtAlmacenes := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Almacenes, dtAlmacenes);
+ dtAlmacenes.BusinessRulesID := 'BizAlmacen';
+ Result := (dtAlmacenes as IBizAlmacen);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmLogistica.Preview;
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+{ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvContactos).GenerateReport;
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+}
+end;
+
+{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+function TdmLogistica.GetNextAutoinc: integer;
+begin
+// Result := (RORemoteService as IsrvContactos).GetNextAutoinc;
+end;
+
+function TdmLogistica.GetItemAlmacen(Codigo: Integer): IBizAlmacen;
+var
+ AAlmacen: IBizAlmacen;
+begin
+ AAlmacen := GetItemsAlmacenes;
+ with AAlmacen.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_ALMACENESCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := AAlmacen;
+end;
+
+function TdmLogistica.GetItemsArticulos: IBizArticulosAlmacen;
+var
+ dtArticulos: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtArticulos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Articulos, dtArticulos);
+ dtArticulos.BusinessRulesID := 'BizArticulosAlmacen';
+ Result := (dtArticulos as IBizArticulosAlmacen);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmLogistica.GetItemArticulo(Codigo: Integer): IBizArticulosAlmacen;
+var
+ AArticuloAlmacen: IBizArticulosAlmacen;
+begin
+ AArticuloAlmacen := GetItemsArticulos;
+ with AArticuloAlmacen.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_ARTICULOSCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := AArticuloAlmacen;
+end;
+
+initialization
+ dmLogistica := TdmLogistica.Create(nil);
+
+finalization
+ FreeAndNil(dmLogistica);
+
+end.
+
diff --git a/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.ddp b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.ddp differ
diff --git a/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.dfm b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.dfm
new file mode 100644
index 0000000..cb962fc
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.dfm
@@ -0,0 +1,1692 @@
+inherited fEditorArticulosAlmacen: TfEditorArticulosAlmacen
+ Left = 162
+ Top = 243
+ Caption = 'Inventario de art'#237'culos en almacenes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Inventario de art'#237'culos en almacenes'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF
+ 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301
+ BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A
+ 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741
+ EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD
+ 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D
+ 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C
+ D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361
+ F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38
+ 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3
+ 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6
+ C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1
+ BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805
+ 00F0E629EF34B079A30000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ object TBXSeparatorItem84: TTBXSeparatorItem [6]
+ end
+ object TBXItem54: TTBXItem [7]
+ Action = actTrasladar
+ DisplayMode = nbdmImageAndText
+ end
+ object TBXSeparatorItem16: TTBXSeparatorItem [8]
+ end
+ object TBXItem55: TTBXItem [9]
+ Action = actRecibirPedido
+ DisplayMode = nbdmImageAndText
+ end
+ object TBXSeparatorItem17: TTBXSeparatorItem [10]
+ end
+ object TBXItem56: TTBXItem [11]
+ Action = actLiberar
+ DisplayMode = nbdmImageAndText
+ end
+ object TBXItem57: TTBXItem [12]
+ Action = actReservar
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 655
+ inherited TBXItem37: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 885
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 885
+ inherited bSeleccionar: TButton
+ Left = 536
+ end
+ inherited bCancelar: TButton
+ Left = 615
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ inherited actCancelar: TAction
+ OnExecute = frViewBarraSeleccionactCancelarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ Caption = '&Entrada'
+ ImageIndex = 21
+ OnExecute = actNuevoExecute
+ end
+ inherited actModificar: TAction
+ Visible = False
+ end
+ inherited actEliminar: TAction
+ Caption = 'Salida'
+ ImageIndex = 22
+ end
+ inherited actDuplicar: TAction
+ Visible = False
+ end
+ inherited actAnchoAuto: TAction
+ ImageIndex = 27
+ end
+ object actRecibirPedido: TAction
+ Category = 'Logistica'
+ Caption = 'Recibir pedido'
+ ImageIndex = 24
+ OnExecute = actRecibirPedidoExecute
+ end
+ object actTrasladar: TAction
+ Category = 'Logistica'
+ Caption = 'Trasladar'
+ ImageIndex = 23
+ OnExecute = actTrasladarExecute
+ OnUpdate = actTrasladarUpdate
+ end
+ object actReservar: TAction
+ Category = 'Logistica'
+ Caption = 'Reservar'
+ ImageIndex = 25
+ OnExecute = actReservarExecute
+ OnUpdate = actReservarUpdate
+ end
+ object actLiberar: TAction
+ Category = 'Logistica'
+ Caption = 'Liberar'
+ ImageIndex = 26
+ OnExecute = actLiberarExecute
+ OnUpdate = actLiberarUpdate
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F54944415478DA
+ 6364C002AE56C8FC67201230E23240B9A106C2F9F18381E1C11D86799D1B1892
+ E6638AE13700AA70F6256F06E6EDA91003D0C4701B50510256C870E32AC3EC5F
+ 651003A6638AE1362022006C0B0C800D28C714C369C0C1871404222901CB88AE
+ 089B66ED8E278CB8029691185BB296430DA82014880633FEFF38C180610BDC80
+ 080281689C7EFDFFD99307197E2CB882620BCC006C01CB08D204E3E4C5AA30BC
+ FBF88DA1B07A39C3E42279B82D200370C602C8009046100069BEF7E42D985EBA
+ EC08C334CD16B038410340CE0681DC4C3786BB8FDF306CDB728E81E142065151
+ 8C1188609A48CDD80D20413308000018D5C3DDD8008BA70000000049454E44AE
+ 426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F64944415478DA
+ 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A
+ 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3
+ 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788
+ F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97
+ DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3
+ B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E
+ BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E
+ C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44
+ AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000013A4944415478DA
+ 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB
+ 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3
+ F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788
+ F8C360D00422474704C3648D169C81C8A837EDFFFF4B598CA8064003B1B0EF21
+ 8381990343F227179C81689872EDFF855307186086800DD8A33D1BACB9BB359A
+ 4158809B61D2C25B708D20C3E6F2ED81F3F3E2D518DE7EF8CA505ABD94A1BF48
+ 9E81F1FFFFFF0C20678547DA320801352BC908830D01019041E7E768816D0569
+ 040190E67B4FDE32BC03D22B971F861800760AD010376F630665395186E9D377
+ 80C540DE81190072360864667A30DC7DF49A61D7D6B3606FC00D801902A29103
+ 0923D4D1D4A018005340C8009458403780540000D999FD8911DCCCCA00000000
+ 49454E44AE426082}
+ Name = 'PngImage23'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D000001BD4944415478DA
+ 63FCFFFF3F03258011D980BE9612BCA615D5F43012342037D71F43E3D7774F18
+ 0C6D0B18EE3F7989DD80E9FD4DC140F69AEF5F3F31A01B00D27C6A511543FAEC
+ 6F0C0F9EBEC269C0FFA4747E86A97D8FE106FCFEFE89E117107F7DF384E1EAB6
+ 69A41900D2FCF5ED53207ECCF0FBDB6786FB2737820D282BCE866BCC2AAA67C4
+ 6A40468A235C3388FEF6EE1983D9443FB8C61F277E33CC9BF911B701B1816A0C
+ 171FBC63B87DEB17C4A6F9220C160EEA0C2FD6453148042D633871E026C3B4C4
+ 3760F15707E2310DD033146160F8FE9EC1D6E02D0323D00E75FBCD70DB2F6C30
+ 61F05854043604047AF4B37FA018F0E9E33F861D5BFF337898DE62E0E7F9C3F0
+ FFDF5F867FBF7E32FCF9FD83E1DF1F20FEFD9341283D98A1AED48FA1A97B13C8
+ 002714030EEFFF0EB6DDCEF02DC3FFFFFF18FEFDFC01D5FC13A8F90758330AB8
+ 9CCD0837202482176E3B2FC70F86FF7F7F31FCF985B01966C89FAF9F1996ADBA
+ F503A8DDAB6409C37EB801AA6A6C60DB6D749F8335FCFDF38BE12FD480FF6003
+ 7E01BDF38BE1F1F51B0C07CFFFBE03D4AC8A120BDA4A9F19D8DEEC6160F97815
+ 6FE6016A86DB8E62C0B773F5C4643E14CD1899891C000039F251E625517D8200
+ 00000049454E44AE426082}
+ Name = 'PngImage24'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001A94944415478DA
+ 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817
+ 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F
+ BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969
+ F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4
+ 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F
+ 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57
+ A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2
+ FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834
+ 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236
+ 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27
+ A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1
+ C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3
+ ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8
+ 98EC0F53DC14659A0322CE0000000049454E44AE426082}
+ Name = 'PngImage25'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001A44944415478DA
+ 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB
+ 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3
+ F5AB0CD37F95430C980511D38AD361F8C0AF0A54C9C0C0CCCCC0C0FEEE36C3E3
+ 4BD98CA80644F9836D8101B00195FE0CF6A53A0CF31666A2D8D8BEE237C38609
+ 550C9F1FF732C20D38F01033C0D6FFAA66983C3593E1C0C5DF0C2571E56017FC
+ 07E290F24EB0FCBE25F50C4FCF7730E20CC4EEAF0B18B6CF7261080F2B62B87C
+ 7402C2C926C7FF3BC99C63B8FFFA29C3BDA36D8C3803B1EBCB02861DB35D18A2
+ 638B18CEEF9BC0C88003E00CC4DC7B6B09A68BFF672C19B10662E1142186AB1B
+ CD091AA0EDD98F3D1041B6830CD870EC0FC3AF3FFF19EE9F39C270EF54038392
+ 590303A7B225C38F9FFF19162EBDC4C0F0EB1803E3FFFF98291914502003561D
+ FACDF0EBF77F86C3B35DE172CA413B18BEFFFAC7B06AF515C2062CD9FB0BEC02
+ 103EBFD81DAEF907106FDA788DB001B3B7FF046B7E767603C39B1BD319582563
+ 1838B522C006ECDB7503BF01044310047019003644AF97A0216C6C5C4E003148
+ 0E65624E21D60000000049454E44AE426082}
+ Name = 'PngImage26'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage27'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000001914944415478DA
+ 63FCFFFF3F032D0123CD2DC02571B542C61948EDC1A3D78590BC56FBE3BDF82C
+ F8AFDC50C3C0CE9E8E21F7F3E74C8679892D0C49F3F1CB672E7BCC88D702A00B
+ C08AE1E0C70F20FECE307B970103F3F654900184E449B000A4F9C33B8801A79C
+ 302DC02E4FA40530CD60037E32CCBE15846A016E79222CF83811A1F9C307880B
+ 5FA5202CC02F4F84050FEB119A6141F0AB0C61017E794682A968F62A79ACF220
+ 0340A9089F3C210B9C0F3EC49DCEEDE5195C08C9E3CD07840031F904AB0F88C9
+ C1DA1D4FF612994FB05A40D06559CB9F3012994FD02C3098F1FFAA470B032197
+ 6158406C3E304EBFFEFFECC9830CFFCFA7E375198A0584F201C8509400761264
+ E86CDFC0F0E304034E97A15840281F802CC88B554109A919AB8E311C3F749DE1
+ C78667585D06B380503E41B1E0DAD3B70C2F3F7F6778F3E53758C1DB7BCF2196
+ 4C3882E132A80504F309381FC02CD87FE30986E1938BE4B1BA0C640131790554
+ 5B32C22216062CED34C1864FD36CC1E932503E20DA02F4640AA62F64909DC309
+ 5B4025C3E116D0BA550100E46DEBE08B969D720000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000019B4944415478DA
+ 63FCFFFF3F032D0123C8826B95B2CE40F61E3CEA5C08C96B773CD98B2E08321B
+ 66C17FE5861A0676F6740C9D3F7FCE649897D8C290341FBF7CD6F2278C782DD0
+ 6A7F0C560C073F7E00F17786D9BB0C1898B7A732642EC32F4F9A0520CD1FDE41
+ 0C38E58469011679E22D8069061BF09361F6AD20540B70C81367C1C78908CD1F
+ 3E405CF82A0561011E79E22C78588FD00C0B825F65080BF0C813B400948A66AF
+ 92C79A0641068052113E794216381F7C883B9DDBCB33B81092A7381F60732121
+ 40523E005970B54286608E47F60949F9006A01493E25291FC02CC0E5530E0F41
+ 86699A842C2090CE312C40F2A9757F12C3D9930719182E64E0B180403A47B100
+ 68B875B93B6A0438093274B66F805B42523E40B100EA53EBF64886BC581514B5
+ 33561D63387EE83AD81292F2012875C02D80FAD47A7A36D8826B4FDF32BCFCFC
+ 9DE1CD97DF60F56FEF3D075BF2FF7C3A23C41646E292382C15C17CBAE0A802D8
+ 82FD379E60188EE203122C40F1E95CBEDD908885024B3B4DB8E1287140AC0578
+ 81C10C48E58E2D1551CD0224C3512CA025A0B90500E54149EFB4C64472000000
+ 0049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001A44944415478DA
+ 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A
+ 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C
+ 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433
+ A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10
+ 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB
+ E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E447F3C130C90786
+ 29D7184ED42CC5990F18F5A6FDFF7F298B11B70578D2F95CBE3D600D27B227E3
+ CC074007FCBF70EA0003B22544E58385471419F2E2D518262DBC85221E6F731F
+ 2C870C9C9D85187ADBD7C12D8159E00C4CE77BB0190E7239C8F0AB4FDE3068CB
+ 88C0C593B267314CD66881CB2383E92B8E309C3E7C0D6C0923BE1A0D14A6F3A6
+ A6810D7FF9F93B58ECCDE75F0C6FEF3D871B000A169803406A40F2200053C348
+ A8CA0459E211EF0CD70403E816ECBBFE18C370823E40B6C4D4560BAC0919C02C
+ 00452C0CC0D4A1C40131006409CC5052D4106D01CC00421660CD07B404001FE5
+ 4BB30B8819120000000049454E44AE426082}
+ Name = 'PngImage23'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F8000000097048597300000B1300000B1301009A9C18000002E14944415478DA
+ B5946B4814611486DF15C3122BB444ED8F901A921678438824C140D3CD322BD0
+ 2828BB295678234249A8ED87844461A969125844264A60E18F42A2D032B520FF
+ C836EB6AEDEAEE9A3BB2E67AD99969BED976749A1DD92C0F0C73E6CC37EFF3CE
+ 39DF8C8AE338AC66A8960206CBB6A4F0A757CBACDF1B7DD3F8FA5F005C84A602
+ 3E3E05B2857373F7D0705C83C216A3EA9F00BC43414C0CBB1D98B5A3B63306DE
+ 2FCFFC67002F1EA0DE8C358E4964A5C6624F5C30E2B60762477880C71001507B
+ EB5A369FB72619EB200288737A122167A33165A6C1B21C36F8AD85971710B9D5
+ 1F17737622373D7C5910D17601B82C358789FBF54E005D2D88C3CA1F342DC022
+ 6B8EC23ECB203323163D031446862DB85BBE1B27D4912A8F00A7CE6D84B6B2CA
+ 09D0972F8A933399C1FC65F46B7DD1F96E04599909E8EEA760B5D0787E3B0D09
+ 51412A8F016417D53E0975EB880CF94560033E7E99C0A103F16869EF45727C08
+ 52437BC53505C5952A45C00CA5C7E3EB4F157B7AACE208DA74E75156DD83C307
+ 1385560D53663CD424637F74236ACAAA50FA08CA00E569B1589FE42BA4ECEF5D
+ 575EACE6DBA483D16485C9F003B46D5EA8339FF33D03580D34DA3BA4ADBDD41C
+ 842B4519E23501B8628CDF69C6510B6E641BC45A7ED1559522A0A97E0A3151DE
+ 880DD349EAFE398928294CC3E09011B69F738BE2DF2CD057B7F02FEB80B6FB2D
+ DE7C5AF85AD2CC45B805B8DCE7658EBAE99603FEB9BB507A619F00D1EA4DD053
+ 2618EEB40AF7A64606F1ACC33CCB2F4DE7015D6E014AEE8900E75800C738B0E9
+ 640AC2B6054BC4596601D487F7827B7ED8116E67A0E47EA938C91902C94BC744
+ 5D9B286EFB3E24BAE7015D7200C3A0A9715AE6DE9D38C9C13A447172ADEBEB13
+ DDCB77D1693F58C76D32F79E8A4F8F5112F77240DE3A343DB04BDCFF8DB8D960
+ 95B89701C8CF4E74CF7F58E441978033778A0A07A9B3CEFAF4F8B04B5CE25E06
+ 2085044E8395C69FEE65809981CA158BF321732F01AC66AC3AE0176A11A2EF01
+ B8EA320000000049454E44AE426082}
+ Name = 'PngImage24'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001FE4944415478DA
+ 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A
+ 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C
+ 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433
+ A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10
+ 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB
+ E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63
+ A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15
+ 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0
+ 053A5EFD0CFD451AF0480606D9FFC808533C1610990F38427CC8B480887C0032
+ 9C58008A7092F20128EC27379A3038EA3313341C163F300B9C81E97C0FBE740E
+ CA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC162408FFF626058B2EC
+ 3C50D1318805C4025018832CD87A0A61F8833347181E9CAE6350306D62E050B2
+ 041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10B81B6CF88F9FFF
+ 18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D57C8B760FE9E3F
+ 0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65F8F38F81E1D8DE
+ ABE459004A45B9F56788D340AA05604BF47A89D600CA6C004568670C5BA5F9FB
+ 0000000049454E44AE426082}
+ Name = 'PngImage25'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002054944415478DA
+ 63FCFFFF3F032D0123C8822BA552254076371E75A584E475BA9FF5E0B3E0BF6A
+ 4B0D033B7B1686829F3FA731CC8E6D61485D8C5F3E67D53346BC16005D00560C
+ 07DFBF3330FCF8CE307D872103CBB654900184E449B000A4F9C33B303DFDA433
+ A605D8E589B400A6F93D10FFF8C930FD6630AA05B8E589B0E0432F42F3870F10
+ 17BE4A4558805F9E080B1E542334835D0834E05739C202FCF2F82D00A5A2E9CB
+ E5B1A6419001A054844F9E900525071EE24EE70EF20CA584E469920F184D8E63
+ A8FF7FC69211AB05A4E6030E6B43862B1BCC510C6F5DF18F61F9A2890CFF2F15
+ 33E2B780403E8019BEFFE25F86DCCA49700B22E3F2C134B22564E5030E172BB0
+ 053A5EFD0CFD451AF0480606D97F2799730CFBEEFDC0610191F98023C407AB05
+ 782399D87C00329C58008A7092F20128EC27379A3038EA3313341C163F300B9C
+ 81E97C0FBE740ECA07B9F7D6828366F73906865F7FFE83F14F10FD1B8AC16240
+ 8FFF626058B2EC3C50D1318805C4025024822CD87A0A61F8833347181E9CAE63
+ 50306D62E050B2041BFEFDD77F86B56B2E906FC1FA63FFE02E3F36C7192EAF10
+ B81B6CF88F9FFF18B66EBE44BE052B0EFD4509964B4B5D510CFFF1FB1FC3DE1D
+ 57C8B760FE9E3F0CBF7E410C7F7E6E3DC3BB9BD3189825621938B4A28196FC65
+ F8F38F81E1D8DEABE459004A45B9F56788D340AA05604BF47A89D600CACD00E4
+ E9610CDEDF75F30000000049454E44AE426082}
+ Name = 'PngImage26'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+ inherited GridPopupMenu: TPopupMenu
+ inherited Nuevo1: TMenuItem [3]
+ end
+ object rasladar1: TMenuItem [4]
+ Action = actTrasladar
+ end
+ inherited N1: TMenuItem [5]
+ end
+ object Liberar1: TMenuItem [6]
+ Action = actLiberar
+ end
+ object Reservar1: TMenuItem [7]
+ Action = actReservar
+ end
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.pas b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.pas
new file mode 100644
index 0000000..7750c3a
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorArticulosAlmacen.pas
@@ -0,0 +1,289 @@
+unit uEditorArticulosAlmacen;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ uCustomEditor, uEditorGrid, uBizArticulos, ImgList,
+ PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
+ TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
+ uViewArticulosAlmacen, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
+ uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
+ uViewBase, uViewBarraSeleccion, JvComponentBase;
+
+type
+ IEditorArticulosAlmacen = interface(IEditorGrid)
+ ['{24939779-BF07-43C4-AA66-FD59CD2A0692}']
+ function GetArticulosAlmacen: IBizArticulosAlmacen;
+ procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+ property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
+ SetArticulosAlmacen;
+ end;
+
+ TfEditorArticulosAlmacen = class(TfEditorGrid, IEditorArticulosAlmacen)
+ actRecibirPedido: TAction;
+ actTrasladar: TAction;
+ actReservar: TAction;
+ actLiberar: TAction;
+ TBXSeparatorItem16: TTBXSeparatorItem;
+ TBXSeparatorItem17: TTBXSeparatorItem;
+ rasladar1: TMenuItem;
+ Liberar1: TMenuItem;
+ Reservar1: TMenuItem;
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
+ procedure actRecibirPedidoExecute(Sender: TObject);
+ procedure actTrasladarExecute(Sender: TObject);
+ procedure actReservarExecute(Sender: TObject);
+ procedure actLiberarExecute(Sender: TObject);
+ procedure actTrasladarUpdate(Sender: TObject);
+ procedure actReservarUpdate(Sender: TObject);
+ procedure actLiberarUpdate(Sender: TObject);
+ procedure frViewBarraSeleccionactCancelarExecute(Sender: TObject);
+ private
+ FArticulosAlmacen: IBizArticulosAlmacen;
+ protected
+ function GetArticulosAlmacen: IBizArticulosAlmacen;
+ function GetSelectionBarVisible: Boolean;
+ procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
+ SetArticulosAlmacen;
+ property SelectionBarVisible: Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+var
+ fEditorArticulosAlmacen : TfEditorArticulosAlmacen;
+
+implementation
+
+uses uDataModuleArticulos, uEditorUtils, uDBSelectionList, uDataModulePedidosProveedor,
+uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
+
+{$R *.DFM}
+
+function ShowEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorArticulosAlmacen;
+begin
+ AEditor := TfEditorArticulosAlmacen.Create(Application);
+ try
+ AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorArticulosAlmacen;
+begin
+ AEditor := TfEditorArticulosAlmacen.Create(Application);
+ try
+ AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorArticulosAlmacen }
+
+{
+***************************** TfEditorArticulosAlmacen *****************************
+}
+constructor TfEditorArticulosAlmacen.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewArticulosAlmacen) as IViewArticulosAlmacen;
+end;
+
+destructor TfEditorArticulosAlmacen.Destroy;
+begin
+ FArticulosAlmacen := NIL;
+ inherited;
+end;
+
+procedure TfEditorArticulosAlmacen.actEliminarExecute(Sender: TObject);
+var
+ aAux : ISelectedRowList;
+ aPregunta : String;
+begin
+ aPregunta := '¿Desea realizar la salida del almacén de este artículo?';
+ if Supports(ArticulosAlmacen, ISelectedRowList, aAux) then
+ if (aAux.SelectedRows.Count > 1) then
+ aPregunta := '¿Desea realizar la salida del almacén de los artículos que ha seleccionado?';
+
+ if (Application.MessageBox(PAnsiChar(aPregunta), 'Confirmación', MB_YESNO) = IDYES) then
+ begin
+ //inherited;
+ ArticulosAlmacen.Eliminar;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorArticulosAlmacen.actModificarExecute(Sender: TObject);
+begin
+// inherited;
+end;
+
+procedure TfEditorArticulosAlmacen.actNuevoExecute(Sender: TObject);
+begin
+ ArticulosAlmacen.RecibirArticulos(ViewGrid.Grid.ActiveLevel.Tag);
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorArticulosAlmacen.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+procedure TfEditorArticulosAlmacen.frViewBarraSeleccionbCancelarClick(Sender:
+ TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+function TfEditorArticulosAlmacen.GetArticulosAlmacen: IBizArticulosAlmacen;
+begin
+ Result := FArticulosAlmacen;
+end;
+
+function TfEditorArticulosAlmacen.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorArticulosAlmacen.SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+begin
+ FArticulosAlmacen := Value;
+ dsDataTable.DataTable := FArticulosAlmacen.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen;
+end;
+
+procedure TfEditorArticulosAlmacen.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorArticulosAlmacen.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(ArticulosAlmacen) then
+ (ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen;
+
+ ViewGrid.OnDblClick := Nil;
+end;
+
+procedure TfEditorArticulosAlmacen.actRecibirPedidoExecute(Sender: TObject);
+var
+ APedido: IBizPedidosProveedor;
+begin
+ inherited;
+ APedido := dmPedidos.GetItemsPendientesRecepcion;
+
+ try
+ if APedido.ShowForSelect = mrOK then
+ begin
+ ArticulosAlmacen.RecibirArticulos(APedido, ViewGrid.Grid.ActiveLevel.Tag);
+ end;
+ finally
+ APedido := NIL;
+ end;
+end;
+
+procedure TfEditorArticulosAlmacen.actTrasladarExecute(Sender: TObject);
+begin
+ ArticulosAlmacen.Trasladar;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorArticulosAlmacen.actReservarExecute(Sender: TObject);
+var
+ AMontaje: IBizMontaje;
+begin
+ inherited;
+ AMontaje := dmMontajes.GetItemsPendientes(sitPendientes);
+
+ try
+ if AMontaje.ShowForSelect = mrOK then
+ begin
+ ArticulosAlmacen.Reservar(AMontaje);
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+ end;
+ finally
+ AMontaje := NIL;
+ end;
+end;
+
+procedure TfEditorArticulosAlmacen.actLiberarExecute(Sender: TObject);
+begin
+ if (MessageDlg('¿Está seguro que desea liberar los artículos seleccionados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ ArticulosAlmacen.Liberar;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorArticulosAlmacen.actTrasladarUpdate(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 TfEditorArticulosAlmacen.actReservarUpdate(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 TfEditorArticulosAlmacen.actLiberarUpdate(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 TfEditorArticulosAlmacen.frViewBarraSeleccionactCancelarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+initialization
+ RegisterEditor(IBizArticulosAlmacen, ShowEditorArticulosAlmacen, etItems);
+ RegisterEditor(IBizArticulosAlmacen, ShowSelectEditorArticulosAlmacen, etSelectItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Articulos/Cliente/uEditorEntradaArticulos.ddp b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.ddp differ
diff --git a/Modulos/Articulos/Cliente/uEditorEntradaArticulos.dfm b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.dfm
new file mode 100644
index 0000000..0fe9313
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.dfm
@@ -0,0 +1,89 @@
+inherited fEditorEntradaArticulos: TfEditorEntradaArticulos
+ Left = 387
+ Top = 196
+ Caption = 'Entrada de art'#237'culos en almac'#233'n'
+ OnClose = CustomEditorClose
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Entrada de art'#237'culos en almac'#233'n'
+ end
+ inherited pgPaginas: TPageControl
+ inherited pagGeneral: TTabSheet
+ inline frViewListaArticulos: TfrViewListaArticulos
+ Left = 0
+ Top = 117
+ Width = 658
+ Height = 242
+ 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 = 658
+ Height = 217
+ inherited cxGridView: TcxGridDBTableView
+ OptionsCustomize.ColumnSorting = True
+ inherited cxGridViewCODIGOALMACEN: TcxGridDBColumn
+ Caption = 'Almac'#233'n de destino'
+ Properties.ListOptions.GridLines = glNone
+ SortIndex = 0
+ SortOrder = soAscending
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Caption = 'Cantidad'
+ end
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 658
+ end
+ end
+ inline frViewDatosPedido: TfrViewDatosPedido
+ Left = 0
+ Top = 0
+ Width = 658
+ Height = 117
+ Align = alTop
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ Visible = False
+ ReadOnly = False
+ inherited GroupBox1: TGroupBox
+ Left = 7
+ Top = 4
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ Visible = False
+ end
+ inherited actModificar: TAction
+ Visible = False
+ end
+ inherited actEliminar: TAction
+ Visible = False
+ end
+ inherited actPrevisualizar: TAction
+ Visible = False
+ end
+ inherited actImprimir: TAction
+ Visible = False
+ end
+ inherited actRefrescar: TAction
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uEditorEntradaArticulos.pas b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.pas
new file mode 100644
index 0000000..17f2e11
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorEntradaArticulos.pas
@@ -0,0 +1,100 @@
+unit uEditorEntradaArticulos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView,
+ uViewBase, uViewContenido, uViewListaArticulos, uBizArticulos,
+ uEditorItem, pngimage, uViewDetallesNormales, uViewDatosPedido;
+
+type
+ TfEditorEntradaArticulos = class(TfEditorDBItem)
+ frViewListaArticulos: TfrViewListaArticulos;
+ frViewDatosPedido: TfrViewDatosPedido;
+ procedure actGuardarExecute(Sender: TObject);
+ procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
+ private
+ FHayCambios: Boolean;
+ FArticulos: IBizArticulosAlmacen;
+ function GetArticulos: IBizArticulosAlmacen;
+ procedure SetArticulos(const Value: IBizArticulosAlmacen);
+ public
+ property Articulos: IBizArticulosAlmacen read GetArticulos write SetArticulos;
+ constructor Create(AOwner: TComponent); override;
+
+ end;
+
+var
+ fEditorEntradaArticulos: TfEditorEntradaArticulos;
+
+implementation
+{$R *.dfm}
+
+uses uEditorUtils;
+
+function ShowEditorEntradaArticulos (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorEntradaArticulos;
+begin
+ AEditor := TfEditorEntradaArticulos.Create(Application);
+ try
+ AEditor.Articulos := (ABizObject as IBizArticulosAlmacen);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorRecibirPedido }
+
+function TfEditorEntradaArticulos.GetArticulos: IBizArticulosAlmacen;
+begin
+ Result := FArticulos;
+end;
+
+procedure TfEditorEntradaArticulos.SetArticulos(const Value: IBizArticulosAlmacen);
+begin
+ FArticulos := Value;
+
+ if Assigned(FArticulos) then
+ dsDataTable.DataTable := FArticulos.DataTable
+ else
+ dsDataTable.DataTable := NIL;
+
+ frViewListaArticulos.DADataSource.DataTable := dsDataTable.DataTable;
+ if FArticulos.CodigoAlmacenEntrada = -1 then
+ FArticulos.CodigoAlmacenEntrada := frViewListaArticulos.Almacenes.CODIGO;
+
+ frViewDatosPedido.Pedido := FArticulos.Pedido;
+end;
+
+procedure TfEditorEntradaArticulos.actGuardarExecute(Sender: TObject);
+begin
+ Articulos.GuardarArticulosUnitarios;
+ FHayCambios:= True;
+end;
+
+procedure TfEditorEntradaArticulos.CustomEditorClose(Sender: TObject;
+ var Action: TCloseAction);
+begin
+ inherited;
+ if FHayCambios
+ then ModalResult := mrOK
+ else ModalResult := mrCancel;
+end;
+
+constructor TfEditorEntradaArticulos.Create(AOwner: TComponent);
+begin
+ inherited;
+ FHayCambios:= False;
+end;
+
+initialization
+ RegisterEditor(IBizArticulosAlmacen, ShowEditorEntradaArticulos, etItem);
+
+
+end.
diff --git a/Modulos/Articulos/Cliente/uEditorSituacionPedido.ddp b/Modulos/Articulos/Cliente/uEditorSituacionPedido.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uEditorSituacionPedido.ddp differ
diff --git a/Modulos/Articulos/Cliente/uEditorSituacionPedido.dfm b/Modulos/Articulos/Cliente/uEditorSituacionPedido.dfm
new file mode 100644
index 0000000..34e8dde
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorSituacionPedido.dfm
@@ -0,0 +1,94 @@
+object fEditorSituacionPedido: TfEditorSituacionPedido
+ Left = 497
+ Top = 344
+ BorderStyle = bsDialog
+ Caption = 'Nueva situaci'#243'n del pedido'
+ ClientHeight = 136
+ ClientWidth = 322
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ DesignSize = (
+ 322
+ 136)
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Bevel1: TBevel
+ Left = 177
+ Top = 8
+ Width = 136
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 162
+ Height = 13
+ Caption = 'El pedido pasar'#225' a situaci'#243'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object rdxSituacion1: TRadioButton
+ Left = 46
+ Top = 39
+ Width = 211
+ Height = 16
+ Caption = 'El pedido se ha recibido totalmente'
+ Checked = True
+ TabOrder = 0
+ TabStop = True
+ end
+ object rdxSituacion2: TRadioButton
+ Left = 46
+ Top = 67
+ Width = 219
+ Height = 17
+ Caption = 'El pedido se ha recibido parcialmente'
+ TabOrder = 1
+ end
+ object pnlSeleccion: TPanel
+ Left = 0
+ Top = 99
+ Width = 322
+ Height = 37
+ Align = alBottom
+ BevelOuter = bvNone
+ ParentBackground = True
+ TabOrder = 2
+ DesignSize = (
+ 322
+ 37)
+ object bSeleccionar: TButton
+ Left = 159
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Caption = '&Aceptar'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ object bCancelar: TButton
+ Left = 240
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uEditorSituacionPedido.pas b/Modulos/Articulos/Cliente/uEditorSituacionPedido.pas
new file mode 100644
index 0000000..7ee4859
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uEditorSituacionPedido.pas
@@ -0,0 +1,31 @@
+unit uEditorSituacionPedido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uCustomView, uViewBase, uViewBarraSeleccion, StdCtrls, ExtCtrls;
+
+type
+ TfEditorSituacionPedido = class(TForm)
+ rdxSituacion1: TRadioButton;
+ rdxSituacion2: TRadioButton;
+ Bevel1: TBevel;
+ Label5: TLabel;
+ pnlSeleccion: TPanel;
+ bSeleccionar: TButton;
+ bCancelar: TButton;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fEditorSituacionPedido: TfEditorSituacionPedido;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Articulos/Cliente/uPluginControllerArticulos.ddp b/Modulos/Articulos/Cliente/uPluginControllerArticulos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uPluginControllerArticulos.ddp differ
diff --git a/Modulos/Articulos/Cliente/uPluginControllerArticulos.dfm b/Modulos/Articulos/Cliente/uPluginControllerArticulos.dfm
new file mode 100644
index 0000000..4848c37
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uPluginControllerArticulos.dfm
@@ -0,0 +1,192 @@
+object ModuleArticulos: TModuleArticulos
+ OldCreateOrder = True
+ Description = 'Art'#237'culos de almac'#233'n'
+ ModuleMenu = MainMenu
+ ModuleName = 'Art'#237'culos de almac'#233'n'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 691
+ Top = 507
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000015E4944415478DA
+ 63FCFFFF3F032D0123CC822BA552CE406A0F1EB52E84E475BA9FEDC567C17FD5
+ 961A0676F62C0C9D3F7F4E63981DDBC290BA18BF7CCEAA678C782D00BA00AC18
+ 0EBE7F6760F8F19D61FA0E4306966DA9200308C993600148F38777607AFA4967
+ 4C0BB0CB1369014CF37B20FEF19361FACD60540B70CB1361C1875E84E60F1F20
+ 2E7C958AB000BF3C11163CA8466806BB1068C0AF728405F8E5F15B004A45D397
+ CB634D83200340A9089F3C210B9C0F3CC49DCE1DE4195C08C9539C0FB0B99010
+ 20351F50D1023CE99C88620504C041466A3E8059803338D18394D47CC088E118
+ 64F0F91303C397CF0CD30F58C1D5939A0F705B00359CE133D082B3EED82D2094
+ 0F705A806438D8073743B05A40301FC0D2398A056886337CFDC230FD4902A605
+ A400B8056F3A300C67F8F29561FA876C2A5970B38481E1D72F14C319BE7D4189
+ 33B22DC0175FC87146AE0578E30B39CEC8B2801440730B007C5C13EF8DA2E719
+ 0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001D44944415478DA
+ B5D4BD4B027118C0F1E737D552D0105843616F838519166551345443A32D2E0D
+ D15863FF416B2141353544144A2004114144431695841445D00BE950E7905618
+ 742F2257CFD9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F9
+ 8205AF5D7C611296C3FE33961802189F5909C13B1383EFF427B05FB94738B409
+ 76BB0DC6E756FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F1
+ 0DA9D798A5785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC5
+ 5B1B9A41E00510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B07
+ 0A81D97E52D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C36036
+ 9B95223C27C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C
+ 460EBF1CD601751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D0
+ 88473AD3C80ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3
+ 008D6C3DD41A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3D
+ F9962C00562315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371
+ FC0E388ECD03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B
+ 9C733EB03A5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actArticulos: TAction
+ Category = 'Log'#237'stica'
+ Caption = 'Inventarios'
+ ImageIndex = 0
+ OnExecute = actArticulosExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Logistica1: TMenuItem
+ Tag = 200
+ Caption = '&Log'#237'stica'
+ GroupIndex = 1
+ ImageIndex = 1
+ object Articulos1: TMenuItem
+ Tag = 1000
+ Action = actArticulos
+ end
+ object N1: TMenuItem
+ Tag = 1001
+ Caption = '-'
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001004944415478DA
+ 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB
+ 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3
+ F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788
+ F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8
+ 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C
+ D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E
+ 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B
+ 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F
+ 63F70000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000022E4944415478DA
+ 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
+ C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
+ A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
+ 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
+ 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
+ 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
+ A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
+ 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
+ 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
+ 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
+ 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
+ AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
+ 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
+ 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
+ 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
+ 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
+ C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
+ 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000001374944415478DA
+ 63FCFFFF3F033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FF
+ AA2D350CECEC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC6489485409781
+ 35A180CF9F1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CE
+ BA63B710BB1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902
+ AA85F8D59060E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F
+ 148318BE015DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A62
+ 2D743EF0107FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC
+ 450E5E72333ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E76
+ 0B892857C9CAF8582D24B25C2527E397022DE921270A302C2415901A0554B190
+ 9428A086854495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E
+ 44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD2520000020F4944415478DA
+ E5D4DB2B04511800F06FB659D7CD2D892816B984258992242129E5924BDEE491
+ 47FF81571E9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC39
+ 63C7EEEC65CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2
+ FAD2709B5EB8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FB
+ AB986B9619D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3
+ 368FB0AE8E5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2D
+ A0D150E4E0402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0
+ B13C701C87DBA58555282E2B045A4B83D691AE685040578C6339585DDC808292
+ 3C0CC9D13F83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB7
+ 7D08593919222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A7
+ 4EE2D4814A18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F2031
+ 29016FA11C9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE
+ 21818F0F5688D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7
+ C53196FD5D1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F
+ 186ADFDFDE1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA
+ 0D53044B0DADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048
+ F8C2FC82A1889083DF93D867F65E51168D0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uPluginControllerArticulos.pas b/Modulos/Articulos/Cliente/uPluginControllerArticulos.pas
new file mode 100644
index 0000000..29a421d
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uPluginControllerArticulos.pas
@@ -0,0 +1,73 @@
+unit uPluginControllerArticulos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCArticulos = interface(IInterface)
+ ['{A0E73296-EAE8-4528-93EB-953484D484EB}']
+ end;
+
+ TModuleArticulos = class(TModuleController, IMCArticulos)
+ Logistica1: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ actArticulos: TAction;
+ Articulos1: TMenuItem;
+ N1: TMenuItem;
+ procedure actArticulosExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleArticulos, uEditorAlmacenes,
+ uBizArticulos, uEditorArticulosAlmacen;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleArticulos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleArticulos.actArticulosExecute(Sender: TObject);
+var
+ aObj: IEditorArticulosAlmacen;
+ AArticulosAlmacen : IBizArticulosAlmacen;
+begin
+ AArticulosAlmacen := dmArticulos.GetItems;
+ aObj := TfEditorArticulosAlmacen.Create(Application);
+ try
+ with aObj do
+ begin
+ ArticulosAlmacen := AArticulosAlmacen;
+ ShowEmbedded;
+ end;
+ finally
+ AArticulosAlmacen := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleArticulos);
+
+finalization
+ UnRegisterModuleClass(TModuleArticulos);
+
+end.
diff --git a/Modulos/Articulos/Cliente/uViewArticulosAlmacen.ddp b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.ddp differ
diff --git a/Modulos/Articulos/Cliente/uViewArticulosAlmacen.dfm b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.dfm
new file mode 100644
index 0000000..08a9502
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.dfm
@@ -0,0 +1,173 @@
+inherited frViewArticulosAlmacen: TfrViewArticulosAlmacen
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 art'#237'culos'
+ Kind = skCount
+ Column = cxGridViewDESCRIPCION
+ end>
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewICONO: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIAMONTAJE'
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Width = 30
+ IsCaptionAssigned = True
+ end
+ object cxGridViewCODIGOALMACEN: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOALMACEN'
+ Visible = False
+ Width = 62
+ end
+ object cxGridViewCODIGOPEDIDO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPEDIDO'
+ Visible = False
+ Width = 61
+ end
+ object cxGridViewCODIGOMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOMONTAJE'
+ PropertiesClassName = 'TcxButtonEditProperties'
+ Properties.Buttons = <
+ item
+ Default = True
+ Kind = bkEllipsis
+ end>
+ Visible = False
+ Width = 64
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ Width = 257
+ end
+ object cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn
+ Caption = 'Reservado para'
+ DataBinding.FieldName = 'REFERENCIAMONTAJE'
+ Width = 74
+ end
+ object cxGridViewCLIENTE: TcxGridDBColumn
+ Caption = 'Cliente del montaje'
+ DataBinding.FieldName = 'CLIENTE'
+ end
+ object cxGridViewALMACEN: TcxGridDBColumn
+ DataBinding.FieldName = 'ALMACEN'
+ Width = 80
+ end
+ end
+ object cxGridDBTableView1: TcxGridDBTableView [1]
+ NavigatorButtons.ConfirmDelete = False
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Tag = -1
+ Caption = 'Todos los almacenes'
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited dxLayoutControl1Group_Root: TdxLayoutGroup
+ inherited dxLayoutControl1Group1: TdxLayoutGroup
+ Visible = False
+ end
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ inherited cxStyleEven: TcxStyle
+ AssignedValues = [svFont]
+ Font.Name = 'Tahoma'
+ end
+ inherited cxStyleOdd: TcxStyle
+ AssignedValues = [svColor, svFont]
+ Font.Name = 'Tahoma'
+ end
+ inherited cxStyleSelection: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Font.Name = 'Tahoma'
+ end
+ object cxStyleArticuloReservado: TcxStyle
+ AssignedValues = [svFont, svTextColor]
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ TextColor = clHighlight
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001004944415478DA
+ 63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB
+ 3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3
+ F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788
+ F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8
+ 0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C
+ D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E
+ 0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B
+ 3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F
+ 63F70000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001A94944415478DA
+ 8D925D28836114C7FF4FBEE246B9734BBB61B990C89512492925F9B6BB5D0817
+ 98968FF21186250AADB69285D2848DB2A5AC854D44CBB7D096C495A4D078278F
+ BDCF986C5EAF53E7E2391FBF739E7F871C2AE229FE6952F52D098E111E20E969
+ F7BF3C1EC07D099DCA04F95468ACCEF017E0B350B35F80F015B91F10141306B4
+ 35B1429C1E43C329FD00AD3F962493E22156E2AB04C2C280A8FB0B5C1FD4929F
+ 808A4236E5CB18A0A51059CD524CE86B7E4C54CD7A611C69C5E3F51009006C57
+ A1822D726D181DAF816DDF0B854CC936A03E2F560EB0BC75BA0337CE7E2228A2
+ FA7912666D0E4A4B1A71681FF95E396D8B5695A7C2BED00597BD8F088A38F834
+ 098B2E0795D58D705A4301DBCBDD38B7F5124111EB5DF3A277417733C9AF2236
+ 8CC5E1D894210A48CE1FFE5D447E3A0F303ADEC0BD51B87737E1DAE944427A27
+ A21333F1F24AA19F3900380708A5A197CCFF930718D6BDE0BC141BBADC402EB1
+ C8020FF70EC3DC9138607A8D631BF0EE9CCA0B34BFF87CC974220ED0995F59F3
+ ED9E1177671A44C457213AA98C01ACAB677F034415E44D08C0202943A290C8C8
+ 98EC0F53DC14659A0322CE0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uViewArticulosAlmacen.pas b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.pas
new file mode 100644
index 0000000..d2dac7a
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uViewArticulosAlmacen.pas
@@ -0,0 +1,213 @@
+unit uViewArticulosAlmacen;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles,
+ cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
+ cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
+ cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage,
+ cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, uBizArticulos,
+ cxDBLookupComboBox, cxButtonEdit, uViewFiltroBase;
+
+type
+ IViewArticulosAlmacen = interface(IViewGrid)
+ ['{DDB60E80-F34F-42D7-AD44-10AEF3068078}']
+ function GetArticulosAlmacen: IBizArticulosAlmacen;
+ procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+ property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
+ SetArticulosAlmacen;
+ end;
+
+ TfrViewArticulosAlmacen = class(TfrViewGrid, IViewArticulosAlmacen)
+ cxGridDBTableView1: TcxGridDBTableView;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewCODIGOALMACEN: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
+ cxGridViewCODIGOPEDIDO: TcxGridDBColumn;
+ PngImageList: TPngImageList;
+ cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn;
+ cxGridViewALMACEN: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ cxStyleArticuloReservado: TcxStyle;
+ cxGridViewCLIENTE: TcxGridDBColumn;
+ procedure SelectionChanged(Sender: TcxCustomGridTableView); override;
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
+ TcxGridLevel);
+ procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView;
+ ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var
+ ADone: Boolean);
+ procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
+ ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
+ AStyle: TcxStyle);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroAlmacen;
+
+ protected
+ FNivelFiltrado : TcxFilterCriteriaItemList;
+ FArticulosAlmacen: IBizArticulosAlmacen;
+ function GetArticulosAlmacen: IBizArticulosAlmacen;
+ procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
+ SetArticulosAlmacen;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ frViewArticulosAlmacen: TfrViewArticulosAlmacen;
+
+implementation
+
+uses uDataModuleArticulos, schArticulosClient_Intf, uDBSelectionList,
+uBizAlmacenes, uDataModuleAlmacenes;
+
+{$R *.dfm}
+
+constructor TfrViewArticulosAlmacen.Create(AOwner: TComponent);
+begin
+ inherited;
+ Self.MultiSelection := True;
+end;
+
+procedure TfrViewArticulosAlmacen.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+begin
+ inherited;
+ RefrescarFiltro;
+end;
+
+procedure TfrViewArticulosAlmacen.cxGridViewCODIGOCustomDrawCell(Sender:
+ TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
+ TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R: TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ if Length(AViewInfo.Text) = 0 then
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0)
+ else
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 1);
+ ADone := True;
+end;
+
+procedure TfrViewArticulosAlmacen.cxGridViewStylesGetContentStyle(Sender:
+ TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
+ TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol: Integer;
+ AMontaje: string;
+begin
+ inherited;
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_ARTICULOSREFERENCIAMONTAJE).Index;
+ AMontaje := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if (Length(AMontaje) > 0) then
+ AStyle := cxStyleArticuloReservado;
+ end;
+end;
+
+destructor TfrViewArticulosAlmacen.Destroy;
+begin
+ inherited;
+end;
+
+function TfrViewArticulosAlmacen.GetArticulosAlmacen: IBizArticulosAlmacen;
+begin
+ Result := FArticulosAlmacen;
+end;
+
+procedure TfrViewArticulosAlmacen.SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
+var
+ Nivel: TcxGridLevel;
+ i: Integer;
+ AAlmacenes: IBizAlmacen;
+
+begin
+ FArticulosAlmacen := Value;
+ if Assigned(FArticulosAlmacen) then
+ begin
+ DADataSource.DataTable := FArticulosAlmacen.DataTable;
+
+ try
+ AAlmacenes := dmAlmacenes.GetItems;
+ AAlmacenes.DataTable.Active := True;
+ AAlmacenes.First;
+ while not AAlmacenes.EOF do
+ begin
+ Nivel := cxGrid.Levels.Add;
+ Nivel.Caption := AAlmacenes.NOMBRE;
+ Nivel.Tag := AAlmacenes.CODIGO;
+ AAlmacenes.Next;
+ end;
+ finally
+ AAlmacenes := Nil;
+ end;
+ end;
+end;
+
+procedure TfrViewArticulosAlmacen.SelectionChanged(Sender: TcxCustomGridTableView);
+var
+ ABookmark : Pointer;
+ i, pos: Integer;
+
+begin
+ inherited;
+
+ pos := (Sender as TcxGridDBTableView).GetColumnByFieldName('CODIGO').Index;
+ if FArticulosAlmacen <> NIL then
+ begin
+ FArticulosAlmacen.DataTable.DisableControls;
+ ABookmark := FArticulosAlmacen.DataTable.GetBookMark;
+ (FArticulosAlmacen as ISelectedRowList).SelectedRows.Clear;
+ for i:=0 to Sender.Controller.SelectedRecordCount-1 do
+ begin
+ FArticulosAlmacen.DataTable.Locate('CODIGO', Sender.Controller.SelectedRecords[i].Values[pos],[]);
+ (FArticulosAlmacen as ISelectedRowList).SelectedRows.CurrentRowSelected := True;
+ end;
+ (FArticulosAlmacen as ISelectedRowList).SelectedRows.Count;
+ FArticulosAlmacen.DataTable.GotoBookmark(ABookmark);
+ FArticulosAlmacen.DataTable.FreeBookmark(ABookmark);
+ FArticulosAlmacen.DataTable.EnableControls;
+ end;
+end;
+
+procedure TfrViewArticulosAlmacen.AnadirFiltroAlmacen;
+var
+ CodigoAlmacen: String;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag);
+ if CodigoAlmacen <> '-1' then
+ FFiltro.AddItem(cxGridViewCODIGOALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen);
+end;
+
+procedure TfrViewArticulosAlmacen.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroAlmacen;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+end.
diff --git a/Modulos/Articulos/Cliente/uViewDatosPedido.ddp b/Modulos/Articulos/Cliente/uViewDatosPedido.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uViewDatosPedido.ddp differ
diff --git a/Modulos/Articulos/Cliente/uViewListaArticulos.ddp b/Modulos/Articulos/Cliente/uViewListaArticulos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Cliente/uViewListaArticulos.ddp differ
diff --git a/Modulos/Articulos/Cliente/uViewListaArticulos.dfm b/Modulos/Articulos/Cliente/uViewListaArticulos.dfm
new file mode 100644
index 0000000..ee1d986
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uViewListaArticulos.dfm
@@ -0,0 +1,60 @@
+inherited frViewListaArticulos: TfrViewListaArticulos
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost]
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewCODIGOALMACEN: TcxGridDBColumn
+ Caption = 'Almac'#233'n destino'
+ DataBinding.FieldName = 'CODIGOALMACEN'
+ PropertiesClassName = 'TcxLookupComboBoxProperties'
+ Properties.ImmediatePost = True
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ SortOrder = soAscending
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.AnsiSort = True
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSourceAlmacenes
+ Width = 225
+ end
+ object cxGridViewCODIGOMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOMONTAJE'
+ Visible = False
+ end
+ object cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIAMONTAJE'
+ Visible = False
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ HeaderAlignmentHorz = taRightJustify
+ Width = 200
+ end
+ end
+ end
+ inherited ActionListContenido: TActionList
+ inherited actSubir: TAction
+ Visible = False
+ end
+ inherited actBajar: TAction
+ Visible = False
+ end
+ end
+ object DADataSourceAlmacenes: TDADataSource
+ DataTable = dmPresupuestos.tbl_DetallesPresupuestos
+ Left = 8
+ Top = 208
+ end
+end
diff --git a/Modulos/Articulos/Cliente/uViewListaArticulos.pas b/Modulos/Articulos/Cliente/uViewListaArticulos.pas
new file mode 100644
index 0000000..49a0cf8
--- /dev/null
+++ b/Modulos/Articulos/Cliente/uViewListaArticulos.pas
@@ -0,0 +1,62 @@
+unit uViewListaArticulos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
+ uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses,
+ cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid, cxDBLookupComboBox, uBizArticulos, uBizAlmacenes,
+ uViewDetallesNormales, StdCtrls;
+
+type
+ TfrViewListaArticulos = class(TfrViewDetallesNormales)
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewCODIGOALMACEN: TcxGridDBColumn;
+ cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ DADataSourceAlmacenes: TDADataSource;
+ cxGridViewCANTIDAD: TcxGridDBColumn;
+ cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn;
+ private
+ FAlmacenes: IBizAlmacen;
+ function getAlmacenes: IBizAlmacen;
+ public
+ property Almacenes: IBizAlmacen read getAlmacenes;
+ constructor Create(AOwner : TComponent); override;
+ destructor destroy; override;
+ end;
+
+var
+ frViewListaArticulos: TfrViewListaArticulos;
+
+implementation
+
+uses uDataModuleArticulos, uDataModuleAlmacenes;
+{$R *.dfm}
+
+{ TfrViewListaArticulos }
+
+constructor TfrViewListaArticulos.Create(AOwner: TComponent);
+begin
+ inherited;
+ FAlmacenes := dmAlmacenes.GetItems;
+ DADataSourceAlmacenes.DataTable := FAlmacenes.DataTable;
+ DADataSourceAlmacenes.DataTable.Active := True;
+end;
+
+destructor TfrViewListaArticulos.destroy;
+begin
+ FAlmacenes := Nil;
+ inherited;
+end;
+
+function TfrViewListaArticulos.getAlmacenes: IBizAlmacen;
+begin
+ Result := FAlmacenes;
+end;
+
+end.
diff --git a/Modulos/Articulos/Reglas/schArticulosClient_Intf.pas b/Modulos/Articulos/Reglas/schArticulosClient_Intf.pas
new file mode 100644
index 0000000..372529f
--- /dev/null
+++ b/Modulos/Articulos/Reglas/schArticulosClient_Intf.pas
@@ -0,0 +1,484 @@
+unit schArticulosClient_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_ARTICULOS = '{5E5E80E8-DDC5-4E93-9501-219E5E37B69F}';
+ RID_Refresh_ARTICULOS = '{666A9B90-4226-4465-AFB7-F86AE114FB72}';
+
+ { Data table names }
+ nme_ARTICULOS = 'ARTICULOS';
+ nme_Refresh_ARTICULOS = 'Refresh_ARTICULOS';
+
+ { ARTICULOS fields }
+ fld_ARTICULOSCODIGO = 'CODIGO';
+ fld_ARTICULOSCODIGOALMACEN = 'CODIGOALMACEN';
+ fld_ARTICULOSCODIGOPEDIDO = 'CODIGOPEDIDO';
+ fld_ARTICULOSCANTIDAD = 'CANTIDAD';
+ fld_ARTICULOSCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_ARTICULOSDESCRIPCION = 'DESCRIPCION';
+ fld_ARTICULOSREFERENCIAPEDIDO = 'REFERENCIAPEDIDO';
+ fld_ARTICULOSREFERENCIAMONTAJE = 'REFERENCIAMONTAJE';
+ fld_ARTICULOSCLIENTE = 'CLIENTE';
+ fld_ARTICULOSALMACEN = 'ALMACEN';
+ fld_ARTICULOSSITUACION = 'SITUACION';
+
+ { ARTICULOS field indexes }
+ idx_ARTICULOSCODIGO = 0;
+ idx_ARTICULOSCODIGOALMACEN = 1;
+ idx_ARTICULOSCODIGOPEDIDO = 2;
+ idx_ARTICULOSCANTIDAD = 3;
+ idx_ARTICULOSCODIGOMONTAJE = 4;
+ idx_ARTICULOSDESCRIPCION = 5;
+ idx_ARTICULOSREFERENCIAPEDIDO = 6;
+ idx_ARTICULOSREFERENCIAMONTAJE = 7;
+ idx_ARTICULOSCLIENTE = 8;
+ idx_ARTICULOSALMACEN = 9;
+ idx_ARTICULOSSITUACION = 10;
+
+ { Refresh_ARTICULOS fields }
+ fld_Refresh_ARTICULOSCODIGO = 'CODIGO';
+ fld_Refresh_ARTICULOSCODIGOALMACEN = 'CODIGOALMACEN';
+ fld_Refresh_ARTICULOSCODIGOPEDIDO = 'CODIGOPEDIDO';
+ fld_Refresh_ARTICULOSCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_Refresh_ARTICULOSDESCRIPCION = 'DESCRIPCION';
+ fld_Refresh_ARTICULOSREFERENCIAPEDIDO = 'REFERENCIAPEDIDO';
+ fld_Refresh_ARTICULOSREFERENCIAMONTAJE = 'REFERENCIAMONTAJE';
+ fld_Refresh_ARTICULOSCLIENTE = 'CLIENTE';
+ fld_Refresh_ARTICULOSALMACEN = 'ALMACEN';
+ fld_Refresh_ARTICULOSSITUACION = 'SITUACION';
+
+ { Refresh_ARTICULOS field indexes }
+ idx_Refresh_ARTICULOSCODIGO = 0;
+ idx_Refresh_ARTICULOSCODIGOALMACEN = 1;
+ idx_Refresh_ARTICULOSCODIGOPEDIDO = 2;
+ idx_Refresh_ARTICULOSCODIGOMONTAJE = 3;
+ idx_Refresh_ARTICULOSDESCRIPCION = 4;
+ idx_Refresh_ARTICULOSREFERENCIAPEDIDO = 5;
+ idx_Refresh_ARTICULOSREFERENCIAMONTAJE = 6;
+ idx_Refresh_ARTICULOSCLIENTE = 7;
+ idx_Refresh_ARTICULOSALMACEN = 8;
+ idx_Refresh_ARTICULOSSITUACION = 9;
+
+type
+ { IARTICULOS }
+ IARTICULOS = interface(IDAStronglyTypedDataTable)
+ ['{26AD3DE8-2AF7-4110-B0C7-4894B1913FFE}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetCODIGOALMACENValue: Integer;
+ procedure SetCODIGOALMACENValue(const aValue: Integer);
+ function GetCODIGOPEDIDOValue: Integer;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetREFERENCIAPEDIDOValue: String;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String);
+ function GetREFERENCIAMONTAJEValue: String;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String);
+ function GetCLIENTEValue: String;
+ procedure SetCLIENTEValue(const aValue: String);
+ function GetALMACENValue: String;
+ procedure SetALMACENValue(const aValue: String);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property REFERENCIAPEDIDO: String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE: String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue;
+ property ALMACEN: String read GetALMACENValue write SetALMACENValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ end;
+
+ { TARTICULOSDataTableRules }
+ TARTICULOSDataTableRules = class(TDADataTableRules, IARTICULOS)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPEDIDOValue: String; virtual;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String); virtual;
+ function GetREFERENCIAMONTAJEValue: String; virtual;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String); virtual;
+ function GetCLIENTEValue: String; virtual;
+ procedure SetCLIENTEValue(const aValue: String); virtual;
+ function GetALMACENValue: String; virtual;
+ procedure SetALMACENValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property REFERENCIAPEDIDO: String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE: String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue;
+ property ALMACEN: String read GetALMACENValue write SetALMACENValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_ARTICULOS }
+ IRefresh_ARTICULOS = interface(IDAStronglyTypedDataTable)
+ ['{4A2E068E-6FE3-4536-AAE0-D24663E16D56}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetCODIGOALMACENValue: Integer;
+ procedure SetCODIGOALMACENValue(const aValue: Integer);
+ function GetCODIGOPEDIDOValue: Integer;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer);
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetREFERENCIAPEDIDOValue: String;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String);
+ function GetREFERENCIAMONTAJEValue: String;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String);
+ function GetCLIENTEValue: String;
+ procedure SetCLIENTEValue(const aValue: String);
+ function GetALMACENValue: String;
+ procedure SetALMACENValue(const aValue: String);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property REFERENCIAPEDIDO: String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE: String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue;
+ property ALMACEN: String read GetALMACENValue write SetALMACENValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ end;
+
+ { TRefresh_ARTICULOSDataTableRules }
+ TRefresh_ARTICULOSDataTableRules = class(TDADataTableRules, IRefresh_ARTICULOS)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPEDIDOValue: String; virtual;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String); virtual;
+ function GetREFERENCIAMONTAJEValue: String; virtual;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String); virtual;
+ function GetCLIENTEValue: String; virtual;
+ procedure SetCLIENTEValue(const aValue: String); virtual;
+ function GetALMACENValue: String; virtual;
+ procedure SetALMACENValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property REFERENCIAPEDIDO: String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE: String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property CLIENTE: String read GetCLIENTEValue write SetCLIENTEValue;
+ property ALMACEN: String read GetALMACENValue write SetALMACENValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TARTICULOSDataTableRules }
+constructor TARTICULOSDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TARTICULOSDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TARTICULOSDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCODIGO].AsInteger;
+end;
+
+procedure TARTICULOSDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ARTICULOSCODIGO].AsInteger := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCODIGOALMACEN].AsInteger;
+end;
+
+procedure TARTICULOSDataTableRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ARTICULOSCODIGOALMACEN].AsInteger := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCODIGOPEDIDO].AsInteger;
+end;
+
+procedure TARTICULOSDataTableRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ARTICULOSCODIGOPEDIDO].AsInteger := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCANTIDAD].AsInteger;
+end;
+
+procedure TARTICULOSDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ARTICULOSCANTIDAD].AsInteger := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TARTICULOSDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ARTICULOSCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSDESCRIPCION].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSDESCRIPCION].AsString := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetREFERENCIAPEDIDOValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSREFERENCIAPEDIDO].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetREFERENCIAPEDIDOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSREFERENCIAPEDIDO].AsString := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetREFERENCIAMONTAJEValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSREFERENCIAMONTAJE].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetREFERENCIAMONTAJEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSREFERENCIAMONTAJE].AsString := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetCLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSCLIENTE].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetCLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSCLIENTE].AsString := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetALMACENValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSALMACEN].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetALMACENValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSALMACEN].AsString := aValue;
+end;
+
+function TARTICULOSDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_ARTICULOSSITUACION].AsString;
+end;
+
+procedure TARTICULOSDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ARTICULOSSITUACION].AsString := aValue;
+end;
+
+
+{ TRefresh_ARTICULOSDataTableRules }
+constructor TRefresh_ARTICULOSDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TRefresh_ARTICULOSDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSCODIGO].AsInteger;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSCODIGO].AsInteger := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSCODIGOALMACEN].AsInteger;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSCODIGOALMACEN].AsInteger := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSCODIGOPEDIDO].AsInteger;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSCODIGOPEDIDO].AsInteger := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSDESCRIPCION].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSDESCRIPCION].AsString := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetREFERENCIAPEDIDOValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSREFERENCIAPEDIDO].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetREFERENCIAPEDIDOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSREFERENCIAPEDIDO].AsString := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetREFERENCIAMONTAJEValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSREFERENCIAMONTAJE].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetREFERENCIAMONTAJEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSREFERENCIAMONTAJE].AsString := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetCLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSCLIENTE].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetCLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSCLIENTE].AsString := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetALMACENValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSALMACEN].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetALMACENValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSALMACEN].AsString := aValue;
+end;
+
+function TRefresh_ARTICULOSDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_ARTICULOSSITUACION].AsString;
+end;
+
+procedure TRefresh_ARTICULOSDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_ARTICULOSSITUACION].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_ARTICULOS, TARTICULOSDataTableRules);
+ RegisterDataTableRules(RID_Refresh_ARTICULOS, TRefresh_ARTICULOSDataTableRules);
+
+end.
diff --git a/Modulos/Articulos/Reglas/schArticulosServer_Intf.pas b/Modulos/Articulos/Reglas/schArticulosServer_Intf.pas
new file mode 100644
index 0000000..24d3376
--- /dev/null
+++ b/Modulos/Articulos/Reglas/schArticulosServer_Intf.pas
@@ -0,0 +1,555 @@
+unit schArticulosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schArticulosClient_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_ARTICULOSDelta = '{C8AB35D3-820C-4756-B58D-5F78434DFB33}';
+ RID_Refresh_ARTICULOSDelta = '{01037450-9D82-4996-8DC2-9A3BECB84B04}';
+
+type
+ { IARTICULOSDelta }
+ IARTICULOSDelta = interface(IARTICULOS)
+ ['{C8AB35D3-820C-4756-B58D-5F78434DFB33}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldCODIGOALMACENValue : Integer;
+ function GetOldCODIGOPEDIDOValue : Integer;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldREFERENCIAPEDIDOValue : String;
+ function GetOldREFERENCIAMONTAJEValue : String;
+ function GetOldCLIENTEValue : String;
+ function GetOldALMACENValue : String;
+ function GetOldSITUACIONValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldREFERENCIAPEDIDO : String read GetOldREFERENCIAPEDIDOValue;
+ property OldREFERENCIAMONTAJE : String read GetOldREFERENCIAMONTAJEValue;
+ property OldCLIENTE : String read GetOldCLIENTEValue;
+ property OldALMACEN : String read GetOldALMACENValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ end;
+
+ { TARTICULOSBusinessProcessorRules }
+ TARTICULOSBusinessProcessorRules = class(TDABusinessProcessorRules, IARTICULOS, IARTICULOSDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ function GetOldCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ function GetOldCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPEDIDOValue: String; virtual;
+ function GetOldREFERENCIAPEDIDOValue: String; virtual;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String); virtual;
+ function GetREFERENCIAMONTAJEValue: String; virtual;
+ function GetOldREFERENCIAMONTAJEValue: String; virtual;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String); virtual;
+ function GetCLIENTEValue: String; virtual;
+ function GetOldCLIENTEValue: String; virtual;
+ procedure SetCLIENTEValue(const aValue: String); virtual;
+ function GetALMACENValue: String; virtual;
+ function GetOldALMACENValue: String; virtual;
+ procedure SetALMACENValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property CODIGOALMACEN : Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property CODIGOPEDIDO : Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property REFERENCIAPEDIDO : String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property OldREFERENCIAPEDIDO : String read GetOldREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE : String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property OldREFERENCIAMONTAJE : String read GetOldREFERENCIAMONTAJEValue;
+ property CLIENTE : String read GetCLIENTEValue write SetCLIENTEValue;
+ property OldCLIENTE : String read GetOldCLIENTEValue;
+ property ALMACEN : String read GetALMACENValue write SetALMACENValue;
+ property OldALMACEN : String read GetOldALMACENValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_ARTICULOSDelta }
+ IRefresh_ARTICULOSDelta = interface(IRefresh_ARTICULOS)
+ ['{01037450-9D82-4996-8DC2-9A3BECB84B04}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldCODIGOALMACENValue : Integer;
+ function GetOldCODIGOPEDIDOValue : Integer;
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldREFERENCIAPEDIDOValue : String;
+ function GetOldREFERENCIAMONTAJEValue : String;
+ function GetOldCLIENTEValue : String;
+ function GetOldALMACENValue : String;
+ function GetOldSITUACIONValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldREFERENCIAPEDIDO : String read GetOldREFERENCIAPEDIDOValue;
+ property OldREFERENCIAMONTAJE : String read GetOldREFERENCIAMONTAJEValue;
+ property OldCLIENTE : String read GetOldCLIENTEValue;
+ property OldALMACEN : String read GetOldALMACENValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ end;
+
+ { TRefresh_ARTICULOSBusinessProcessorRules }
+ TRefresh_ARTICULOSBusinessProcessorRules = class(TDABusinessProcessorRules, IRefresh_ARTICULOS, IRefresh_ARTICULOSDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ function GetOldCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ function GetOldCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetREFERENCIAPEDIDOValue: String; virtual;
+ function GetOldREFERENCIAPEDIDOValue: String; virtual;
+ procedure SetREFERENCIAPEDIDOValue(const aValue: String); virtual;
+ function GetREFERENCIAMONTAJEValue: String; virtual;
+ function GetOldREFERENCIAMONTAJEValue: String; virtual;
+ procedure SetREFERENCIAMONTAJEValue(const aValue: String); virtual;
+ function GetCLIENTEValue: String; virtual;
+ function GetOldCLIENTEValue: String; virtual;
+ procedure SetCLIENTEValue(const aValue: String); virtual;
+ function GetALMACENValue: String; virtual;
+ function GetOldALMACENValue: String; virtual;
+ procedure SetALMACENValue(const aValue: String); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property CODIGOALMACEN : Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property CODIGOPEDIDO : Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property REFERENCIAPEDIDO : String read GetREFERENCIAPEDIDOValue write SetREFERENCIAPEDIDOValue;
+ property OldREFERENCIAPEDIDO : String read GetOldREFERENCIAPEDIDOValue;
+ property REFERENCIAMONTAJE : String read GetREFERENCIAMONTAJEValue write SetREFERENCIAMONTAJEValue;
+ property OldREFERENCIAMONTAJE : String read GetOldREFERENCIAMONTAJEValue;
+ property CLIENTE : String read GetCLIENTEValue write SetCLIENTEValue;
+ property OldCLIENTE : String read GetOldCLIENTEValue;
+ property ALMACEN : String read GetALMACENValue write SetALMACENValue;
+ property OldALMACEN : String read GetOldALMACENValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TARTICULOSBusinessProcessorRules }
+constructor TARTICULOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TARTICULOSBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGO];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCODIGO];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGO] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOALMACEN];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCODIGOALMACEN];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOALMACEN] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOPEDIDO];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCODIGOPEDIDO];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOPEDIDO] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCANTIDAD];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCANTIDAD];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCANTIDAD] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOMONTAJE];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCODIGOMONTAJE];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCODIGOMONTAJE] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSDESCRIPCION];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSDESCRIPCION];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSDESCRIPCION] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetREFERENCIAPEDIDOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSREFERENCIAPEDIDO];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldREFERENCIAPEDIDOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSREFERENCIAPEDIDO];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetREFERENCIAPEDIDOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSREFERENCIAPEDIDO] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetREFERENCIAMONTAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSREFERENCIAMONTAJE];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldREFERENCIAMONTAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSREFERENCIAMONTAJE];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetREFERENCIAMONTAJEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSREFERENCIAMONTAJE] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetCLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCLIENTE];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldCLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSCLIENTE];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetCLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSCLIENTE] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSALMACEN];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSALMACEN];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetALMACENValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSALMACEN] := aValue;
+end;
+
+function TARTICULOSBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSSITUACION];
+end;
+
+function TARTICULOSBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ARTICULOSSITUACION];
+end;
+
+procedure TARTICULOSBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ARTICULOSSITUACION] := aValue;
+end;
+
+
+{ TRefresh_ARTICULOSBusinessProcessorRules }
+constructor TRefresh_ARTICULOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TRefresh_ARTICULOSBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGO];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSCODIGO];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGO] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOALMACEN];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSCODIGOALMACEN];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOALMACEN] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOPEDIDO];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSCODIGOPEDIDO];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOPEDIDO] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOMONTAJE];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSCODIGOMONTAJE];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCODIGOMONTAJE] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSDESCRIPCION];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSDESCRIPCION];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSDESCRIPCION] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetREFERENCIAPEDIDOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSREFERENCIAPEDIDO];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldREFERENCIAPEDIDOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSREFERENCIAPEDIDO];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetREFERENCIAPEDIDOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSREFERENCIAPEDIDO] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetREFERENCIAMONTAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSREFERENCIAMONTAJE];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldREFERENCIAMONTAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSREFERENCIAMONTAJE];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetREFERENCIAMONTAJEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSREFERENCIAMONTAJE] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetCLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCLIENTE];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldCLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSCLIENTE];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetCLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSCLIENTE] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSALMACEN];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSALMACEN];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetALMACENValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSALMACEN] := aValue;
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSSITUACION];
+end;
+
+function TRefresh_ARTICULOSBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_ARTICULOSSITUACION];
+end;
+
+procedure TRefresh_ARTICULOSBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_ARTICULOSSITUACION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_ARTICULOSDelta, TARTICULOSBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Refresh_ARTICULOSDelta, TRefresh_ARTICULOSBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Articulos/Reglas/uBizArticulos.pas b/Modulos/Articulos/Reglas/uBizArticulos.pas
new file mode 100644
index 0000000..e47706b
--- /dev/null
+++ b/Modulos/Articulos/Reglas/uBizArticulos.pas
@@ -0,0 +1,422 @@
+unit uBizArticulos;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schArticulosClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls,
+ uBizMontajes, uBizPedidosProveedor;
+
+type
+
+ IBizArticulosAlmacen = interface(IARTICULOS)
+ ['{97972D47-1503-4DDD-9B49-966A6E93EF5E}']
+ procedure RecibirArticulos(Const APedido: IBizPedidosProveedor; Const CodigoAlmacenDes: Integer); overload;
+ procedure RecibirArticulos(Const CodigoAlmacenDes: Integer); overload;
+ procedure GuardarArticulosUnitarios;
+ function Trasladar: Boolean;
+ function Liberar: Boolean;
+ function Reservar(Const AMontaje: IBizMontaje): Boolean; overload;
+ function Reservar(Const CodigoMontaje: Integer): Boolean; overload;
+ function Eliminar: Boolean;
+
+ function GetCodigoAlmacenEntrada: Integer;
+ procedure SetCodigoAlmacenEntrada(const Value: Integer);
+ property CodigoAlmacenEntrada: Integer read GetCodigoAlmacenEntrada write SetCodigoAlmacenEntrada;
+
+ function GetPedido : IBizPedidosProveedor;
+ procedure SetPedido (Const Value: IBizPedidosProveedor);
+ property Pedido: IBizPedidosProveedor read GetPedido write SetPedido;
+
+ function Show: TModalResult;
+ function ShowForSelect : TModalResult;
+// procedure ShowAll;
+// procedure Preview;
+
+ end;
+
+ TBizArticulosAlmacenDataTableRules = class(TARTICULOSDataTableRules, IBizArticulosAlmacen,
+ IApplyUpdateFailedException, ISelectedRowList)
+ private
+ FCodigoAlmacenEntrada : Integer;
+ FSelectedRows : TSelectedRowList;
+ FPedido : IBizPedidosProveedor;
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ protected
+ function GetPedido : IBizPedidosProveedor;
+ procedure SetPedido (Const Value: IBizPedidosProveedor);
+ function GetCodigoAlmacenEntrada: Integer;
+ procedure SetCodigoAlmacenEntrada(const Value: Integer);
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ public
+ property CodigoAlmacenEntrada: Integer read GetCodigoAlmacenEntrada write SetCodigoAlmacenEntrada;
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ function Show: TModalResult;
+ function ShowForSelect : TModalResult;
+ procedure RecibirArticulos(Const APedido: IBizPedidosProveedor; Const CodigoAlmacenDes: Integer); overload;
+ procedure RecibirArticulos(Const CodigoAlmacenDes: Integer); overload;
+ procedure GuardarArticulosUnitarios;
+ function Trasladar: Boolean;
+ function Liberar: Boolean;
+ function Reservar(Const AMontaje: IBizMontaje): Boolean; overload;
+ function Reservar(Const CodigoMontaje: Integer): Boolean; overload;
+ function Eliminar: Boolean;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ property Pedido: IBizPedidosProveedor read GetPedido write SetPedido;
+ end;
+
+implementation
+
+uses
+ Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
+ uEditorUtils, uDataModuleArticulos, Variants, uBizImportesDetalleBase,
+ uDataModuleAlmacenes, uBizAlmacenes, schPedidosProveedorClient_Intf,
+ uEditorSituacionPedido, Forms, wIndows, uDataModuleMontajes;
+
+
+{ TBizArticulosAlmacenDataTableRules }
+
+constructor TBizArticulosAlmacenDataTableRules.Create(
+ aDataTable: TDADataTable);
+begin
+ inherited;
+ FPedido := NIL;
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ CodigoAlmacenEntrada := -1;
+end;
+
+destructor TBizArticulosAlmacenDataTableRules.Destroy;
+begin
+ FPedido := NIL;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizArticulosAlmacenDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.RecibirArticulos(Const APedido: IBizPedidosProveedor; Const CodigoAlmacenDes: Integer);
+var
+ AArticulos: IBizArticulosAlmacen;
+ ADetalles: IBizDetallesPedidoProveedor;
+begin
+ try
+ if APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOALMACEN).IsNull then
+ begin
+ MessageBox(0, 'En el pedido que ha elegido no figura ningún almacén como destino.' + #10#13 +
+ 'Si desea recibir este pedido en algún almacén' + #10#13 +
+ 'modifique antes el pedido para indicarlo.', 'Atención', MB_ICONWARNING or MB_OK);
+
+ Exit;
+ end;
+
+ AArticulos := dmArticulos.GetItem(-1);
+ if not AArticulos.DataTable.Active then
+ AArticulos.DataTable.Active := True;
+
+ ADetalles := APedido.Detalles;
+ if Assigned(ADetalles) then
+ begin
+ ADetalles.First;
+ while not ADetalles.EOF do
+ begin
+ if (ADetalles.TIPO = TIPODETALLE_CONCEPTO)
+ and (Length(Trim(ADetalles.DESCRIPCION)) <> 0) then
+ begin
+ AArticulos.Insert;
+ if not APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOALMACEN).IsNull then
+ AArticulos.CODIGOALMACEN := APedido.CODIGOALMACEN;
+ if not APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGO).IsNull then
+ AArticulos.CODIGOPEDIDO := APedido.CODIGO;
+ if not APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOMONTAJE).IsNull then
+ AArticulos.CODIGOMONTAJE := APedido.CODIGOMONTAJE;
+ AArticulos.DESCRIPCION := ADetalles.DESCRIPCION;
+ AArticulos.CANTIDAD := ADetalles.CANTIDAD;
+ AArticulos.Post;
+ end;
+ ADetalles.Next;
+ end;
+ end;
+
+ if APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOALMACEN).IsNull
+ then
+ AArticulos.CodigoAlmacenEntrada := CodigoAlmacenDes
+ else
+ begin
+ AArticulos.CodigoAlmacenEntrada := APedido.CODIGOALMACEN;
+ AArticulos.Pedido := APedido;
+ end;
+
+ if AArticulos.show = mrOK then
+ begin
+ with TfEditorSituacionPedido.Create(Nil) do
+ try
+ if (ShowModal = mrOk) then
+ begin
+ if rdxSituacion1.checked
+ then APedido.CambiarSituacion(SITUACION_RECIBIDO)
+ else APedido.CambiarSituacion(SITUACION_PARCIAL);
+ end
+ else
+ showmessage('Pedido quedará con la misma situación con la que estaba antes de ser elegido');
+ finally
+ Free;
+ end;
+
+ Self.DataTable.Refresh;
+ end;
+ finally
+ AArticulos := Nil;
+ end;
+end;
+
+function TBizArticulosAlmacenDataTableRules.Show: TModalResult;
+begin
+ Result := ShowEditor(IBizArticulosAlmacen, Self, etItem);
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este artículo porque asociado a algo', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ DESCRIPCION := 'Escriba aquí la descripción del artículo';
+ CODIGO := dmArticulos.GetNextAutoinc;
+ if CodigoAlmacenEntrada <> -1 then
+ CODIGOALMACEN := CodigoAlmacenEntrada;
+ CANTIDAD := 1;
+end;
+
+function TBizArticulosAlmacenDataTableRules.Trasladar: Boolean;
+var
+ AAlmacen: IBizAlmacen;
+ AObj: TSelectedRowList;
+ i: Integer;
+begin
+ try
+ AAlmacen := dmAlmacenes.GetItems;
+ if AAlmacen.ShowForSelect = mrOk then
+ begin
+ AObj := Self.GetSelectedRows;
+ Self.DataTable.DisableControls;
+ for i:=0 to (AObj.Count -1) do
+ begin
+ Self.DataTable.GotoBookmark(AObj.Items[i]);
+ Self.Edit;
+ Self.CODIGOALMACEN := AAlmacen.CODIGO;
+ Self.Post;
+ end;
+ Self.DataTable.EnableControls;
+ Self.DataTable.ApplyUpdates;
+ end;
+ AAlmacen := Nil;
+ except
+ on E: EDAApplyUpdateFailed do
+ begin
+ Self.DataTable.CancelUpdates;
+ showmessage('Error en el traslado');
+ AAlmacen := Nil;
+ end;
+ end;
+end;
+
+function TBizArticulosAlmacenDataTableRules.Liberar: Boolean;
+var
+ AObj: TSelectedRowList;
+ i: Integer;
+begin
+ try
+ AObj := Self.GetSelectedRows;
+ Self.DataTable.DisableControls;
+ for i:=0 to (AObj.Count -1) do
+ begin
+ Self.DataTable.GotoBookmark(AObj.Items[i]);
+ Self.Edit;
+ Self.datatable.FieldByName(fld_ARTICULOSCODIGOMontaje).AsVariant := Null;
+ Self.Post;
+ end;
+ Self.DataTable.EnableControls;
+ Self.DataTable.ApplyUpdates;
+ except
+ on E: EDAApplyUpdateFailed do
+ begin
+ Self.DataTable.CancelUpdates;
+ showmessage('Error al liberar los artículos');
+ end;
+ end;
+end;
+
+function TBizArticulosAlmacenDataTableRules.Reservar(const AMontaje: IBizMontaje): Boolean;
+var
+ AObj: TSelectedRowList;
+ i: Integer;
+begin
+ try
+ AObj := Self.GetSelectedRows;
+ Self.DataTable.DisableControls;
+ for i:=0 to (AObj.Count -1) do
+ begin
+ Self.DataTable.GotoBookmark(AObj.Items[i]);
+ Self.Edit;
+ Self.CODIGOMontaje := AMontaje.CODIGO;
+ Self.Post;
+ end;
+ Self.DataTable.EnableControls;
+ Self.DataTable.ApplyUpdates;
+ except
+ on E: EDAApplyUpdateFailed do
+ begin
+ Self.DataTable.CancelUpdates;
+ showmessage('Error al reservar para la Montaje');
+ end;
+ end;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.RecibirArticulos(Const CodigoAlmacenDes: Integer);
+var
+ AArticulos: IBizArticulosAlmacen;
+begin
+ try
+ AArticulos := dmArticulos.GetItem(-1);
+ if not AArticulos.DataTable.Active then
+ AArticulos.DataTable.Active := True;
+
+ AArticulos.CodigoAlmacenEntrada := CodigoAlmacenDes;
+ AArticulos.Show;
+ Self.DataTable.Refresh;
+ finally
+ AArticulos := Nil;
+ end;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.GuardarArticulosUnitarios;
+var
+ AArticulosUnitarios: IBizArticulosAlmacen;
+ i: Integer;
+begin
+ AArticulosUnitarios := dmArticulos.getItem(-1);
+ if not AArticulosUnitarios.DataTable.Active then
+ AArticulosUnitarios.DataTable.Active := True;
+
+ Self.First;
+ while not Self.DataTable.EOF do
+ begin
+ for i:=0 to (Self.CANTIDAD - 1) do
+ begin
+ AArticulosUnitarios.Insert;
+ AArticulosUnitarios.CODIGOALMACEN := Self.CODIGOALMACEN;
+ if not Self.DataTable.FieldByName(fld_ARTICULOSCODIGOPEDIDO).IsNull then
+ AArticulosUnitarios.CODIGOPEDIDO := Self.CODIGOPEDIDO;
+ if not Self.DataTable.FieldByName(fld_ARTICULOSCODIGOMONTAJE).IsNull then
+ AArticulosUnitarios.CODIGOMONTAJE := Self.CODIGOMONTAJE;
+ AArticulosUnitarios.DESCRIPCION := Self.DESCRIPCION;
+ AArticulosUnitarios.Post;
+ end;
+ Self.Next;
+ end;
+
+ Self.DataTable.CancelUpdates;
+ AArticulosUnitarios.DataTable.ApplyUpdates;
+end;
+
+function TBizArticulosAlmacenDataTableRules.Eliminar: Boolean;
+var
+ AObj: TSelectedRowList;
+ i: Integer;
+begin
+ try
+ AObj := Self.GetSelectedRows;
+ Self.DataTable.DisableControls;
+ for i:=0 to (AObj.Count -1) do
+ begin
+ Self.DataTable.GotoBookmark(AObj.Items[i]);
+ Self.DataTable.Delete;
+ end;
+ Self.DataTable.EnableControls;
+ Self.DataTable.ApplyUpdates;
+
+// Self.SelectedRows.Clear;
+// Self.SelectedRows.CurrentRowSelected := True;
+
+ except
+ on E: EDAApplyUpdateFailed do
+ begin
+ Self.DataTable.CancelUpdates;
+ showmessage('Error al eliminar los artículos');
+ end;
+ end;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.OnPostError(
+ DataTable: TDADataTable; Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('almacén', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el almacén de destino', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+function TBizArticulosAlmacenDataTableRules.GetCodigoAlmacenEntrada: Integer;
+begin
+ Result := FCodigoAlmacenEntrada;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.SetCodigoAlmacenEntrada(
+ const Value: Integer);
+begin
+ FCodigoAlmacenEntrada := Value;
+end;
+
+function TBizArticulosAlmacenDataTableRules.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizArticulosAlmacen, Self, etSelectItems);
+end;
+
+function TBizArticulosAlmacenDataTableRules.Reservar(const CodigoMontaje: Integer): Boolean;
+var
+ AMontaje: IBizMontaje;
+begin
+ try
+ AMontaje := dmMontajes.GetItem(CodigoMontaje);
+ AMontaje.DataTable.Active := True;
+ Reservar(AMontaje);
+ finally
+ AMontaje := Nil;
+ end;
+end;
+
+function TBizArticulosAlmacenDataTableRules.GetPedido: IBizPedidosProveedor;
+begin
+ Result := FPedido;
+end;
+
+procedure TBizArticulosAlmacenDataTableRules.SetPedido(const Value: IBizPedidosProveedor);
+begin
+ FPedido := Value;
+end;
+
+initialization
+ RegisterDataTableRules('BizAlmacen', TBizAlmacenDataTableRules);
+ RegisterDataTableRules('BizArticulosAlmacen', TBizArticulosAlmacenDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Articulos/Servidor/srvArticulos_Impl.ddp b/Modulos/Articulos/Servidor/srvArticulos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Articulos/Servidor/srvArticulos_Impl.ddp differ
diff --git a/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
new file mode 100644
index 0000000..c910303
--- /dev/null
+++ b/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
@@ -0,0 +1,565 @@
+object srvArticulos: TsrvArticulos
+ OldCreateOrder = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schArticulos
+ ServiceAdapter = DABINAdapter
+ Left = 449
+ Top = 259
+ Height = 300
+ Width = 300
+ object schArticulos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ARTICULOS'
+ SQL =
+ 'SELECT'#10' ARTICULOS.CODIGO, ARTICULOS.CODIGOALMACEN, ARTICULOS.' +
+ 'DESCRIPCION, 0 as CANTIDAD,'#10' ARTICULOS.CODIGOPEDIDO, PEDIDOS.' +
+ 'REFERENCIA as REFERENCIAPEDIDO,'#10' ARTICULOS.CODIGOMONTAJE, MON' +
+ 'TAJES.REFERENCIA as REFERENCIAMONTAJE,'#10' CONTACTOS.NOMBRE AS C' +
+ 'LIENTE, ALMACENES.NOMBRE as ALMACEN,'#10' MONTAJES.SITUACION'#10'FROM' +
+ ' ARTICULOS'#10'LEFT JOIN ALMACENES ON (ARTICULOS.CODIGOALMACEN = ALM' +
+ 'ACENES.CODIGO)'#10'LEFT JOIN PEDIDOS ON (ARTICULOS.CODIGOPEDIDO = PE' +
+ 'DIDOS.CODIGO)'#10'LEFT JOIN MONTAJES ON (ARTICULOS.CODIGOMONTAJE = M' +
+ 'ONTAJES.CODIGO)'#10'LEFT JOIN CONTACTOS ON (MONTAJES.CODIGOCONTACTO ' +
+ '= CONTACTOS.CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'CODIGOALMACEN'
+ TableField = 'CODIGOALMACEN'
+ end
+ item
+ DatasetField = 'CODIGOPEDIDO'
+ TableField = 'CODIGOPEDIDO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOMONTAJE'
+ TableField = 'CODIGOMONTAJE'
+ end
+ item
+ DatasetField = 'REFERENCIAPEDIDO'
+ TableField = 'REFERENCIAPEDIDO'
+ end
+ item
+ DatasetField = 'REFERENCIAMONTAJE'
+ TableField = 'REFERENCIAMONTAJE'
+ end
+ item
+ DatasetField = 'ALMACEN'
+ TableField = 'ALMACEN'
+ end
+ item
+ DatasetField = 'CLIENTE'
+ TableField = 'CLIENTE'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end>
+ end>
+ Name = 'ARTICULOS'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOALMACEN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = True
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPEDIDO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAMONTAJE'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cliente'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Almac'#233'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ARTICULOS'
+ SQL =
+ 'SELECT'#10' ARTICULOS.CODIGO, ARTICULOS.CODIGOALMACEN, ARTICULOS.' +
+ 'DESCRIPCION,'#10' ARTICULOS.CODIGOPEDIDO, PEDIDOS.REFERENCIA as R' +
+ 'EFERENCIAPEDIDO,'#10' ARTICULOS.CODIGOMONTAJE, MONTAJES.REFERENCI' +
+ 'A as REFERENCIAMONTAJE,'#10' CONTACTOS.NOMBRE AS CLIENTE, ALMACEN' +
+ 'ES.NOMBRE as ALMACEN,'#10' MONTAJES.SITUACION'#10'FROM ARTICULOS'#10'LEFT' +
+ ' JOIN ALMACENES ON (ARTICULOS.CODIGOALMACEN = ALMACENES.CODIGO)'#10 +
+ 'LEFT JOIN PEDIDOS ON (ARTICULOS.CODIGOPEDIDO = PEDIDOS.CODIGO)'#10'L' +
+ 'EFT JOIN MONTAJES ON (ARTICULOS.CODIGOMONTAJE = MONTAJES.CODIGO)' +
+ #10'LEFT JOIN CONTACTOS ON (MONTAJES.CODIGOCONTACTO = CONTACTOS.COD' +
+ 'IGO)'#10'WHERE ARTICULOS.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'CODIGOALMACEN'
+ TableField = 'CODIGOALMACEN'
+ end
+ item
+ DatasetField = 'CODIGOPEDIDO'
+ TableField = 'CODIGOPEDIDO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOMONTAJE'
+ TableField = 'CODIGOMONTAJE'
+ end
+ item
+ DatasetField = 'REFERENCIAPEDIDO'
+ TableField = 'REFERENCIAPEDIDO'
+ end
+ item
+ DatasetField = 'REFERENCIAMONTAJE'
+ TableField = 'REFERENCIAMONTAJE'
+ end
+ item
+ DatasetField = 'ALMACEN'
+ TableField = 'ALMACEN'
+ end
+ item
+ DatasetField = 'CLIENTE'
+ TableField = 'CLIENTE'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end>
+ end>
+ Name = 'Refresh_ARTICULOS'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ARTICULOS'
+ DictionaryEntry = 'CODIGOARTICULO_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOALMACEN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAPEDIDO'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIAMONTAJE'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cliente'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ 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 = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ARTICULOS'
+ SQL =
+ 'INSERT'#10' INTO ARTICULOS'#10' (CODIGO, CODIGOALMACEN, CODIGOPEDIDO' +
+ ', DESCRIPCION, CODIGOMONTAJE)'#10' VALUES'#10' (:CODIGO, :CODIGOALMA' +
+ 'CEN, :CODIGOPEDIDO, :DESCRIPCION, :CODIGOMONTAJE)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_ARTICULOS'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ARTICULOS'
+ SQL = 'DELETE '#10' FROM'#10' ARTICULOS'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_ARTICULOS'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ARTICULOS'
+ SQL =
+ 'UPDATE ARTICULOS'#10' SET '#10' CODIGOALMACEN = :CODIGOALMACEN, '#10' ' +
+ ' CODIGOPEDIDO = :CODIGOPEDIDO, '#10' DESCRIPCION = :DESCRIPCION, ' +
+ #10' CODIGOMONTAJE = :CODIGOMONTAJE'#10' WHERE'#10' (CODIGO = :OLD_C' +
+ 'ODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_ARTICULOS'
+ end>
+ RelationShips = <>
+ UpdateRules = <
+ item
+ Name = 'Insert ARTICULOS'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'ARTICULOS'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update ARTICULOS'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'ARTICULOS'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete ARTICULOS'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'ARTICULOS'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 40
+ Top = 16
+ end
+ object bpArticulos: TDABusinessProcessor
+ Schema = schArticulos
+ InsertCommandName = 'Insert_ARTICULOS'
+ UpdateCommandName = 'Update_ARTICULOS'
+ RefreshDatasetName = 'Refresh_ARTICULOS'
+ ReferencedDataset = 'ARTICULOS'
+ ProcessorOptions = [poAutoGenerateDelete, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 184
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Modulos/Articulos/Servidor/srvArticulos_Impl.pas b/Modulos/Articulos/Servidor/srvArticulos_Impl.pas
new file mode 100644
index 0000000..431d5b6
--- /dev/null
+++ b/Modulos/Articulos/Servidor/srvArticulos_Impl.pas
@@ -0,0 +1,54 @@
+unit srvArticulos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvArticulos }
+ TsrvArticulos = class(TDARemoteService, IsrvArticulos)
+ bpArticulos: TDABusinessProcessor;
+ DABINAdapter: TDABINAdapter;
+ schArticulos: TDASchema;
+ private
+ protected
+ { IsrvArticulos methods }
+ function GetNextAutoinc: Integer;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer;
+
+procedure Create_srvArticulos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvArticulos.Create(NIL);
+end;
+
+{ srvArticulos }
+function TsrvArticulos.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_ARTICULOS');
+end;
+
+initialization
+ TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Asientos/Cliente/Asientos.bdsproj b/Modulos/Asientos/Cliente/Asientos.bdsproj
new file mode 100644
index 0000000..332cbb6
--- /dev/null
+++ b/Modulos/Asientos/Cliente/Asientos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Asientos.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente
+ 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
+
+
+ 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/Modulos/Asientos/Cliente/Asientos.cfg b/Modulos/Asientos/Cliente/Asientos.cfg
new file mode 100644
index 0000000..c3c8af2
--- /dev/null
+++ b/Modulos/Asientos/Cliente/Asientos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Asientos/Cliente/Asientos.dcp b/Modulos/Asientos/Cliente/Asientos.dcp
new file mode 100644
index 0000000..94a82f7
Binary files /dev/null and b/Modulos/Asientos/Cliente/Asientos.dcp differ
diff --git a/Modulos/Asientos/Cliente/Asientos.dof b/Modulos/Asientos/Cliente/Asientos.dof
new file mode 100644
index 0000000..4a772e5
--- /dev/null
+++ b/Modulos/Asientos/Cliente/Asientos.dof
@@ -0,0 +1,177 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Intervalos\Cliente
+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
+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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Asientos/Cliente/Asientos.dpk b/Modulos/Asientos/Cliente/Asientos.dpk
new file mode 100644
index 0000000..b111c0f
--- /dev/null
+++ b/Modulos/Asientos/Cliente/Asientos.dpk
@@ -0,0 +1,85 @@
+package Asientos;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ ccpack70,
+ designide,
+ vclactnband,
+ vclx,
+ cfpack,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ vcljpg,
+ JvCoreD7R,
+ JvSystemD7R,
+ PngComponentsD7,
+ PNG_D7,
+ dbrtl,
+ dsnap,
+ adortl,
+ vcldb,
+ BaseD7,
+ Usuarios,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ dxPSCoreD7,
+ dxComnD7,
+ cxDataD7,
+ cxEditorsVCLD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ Cuentas,
+ Intervalos,
+ dxLayoutControlD7;
+
+contains
+ uPluginControllerAsientos in 'uPluginControllerAsientos.pas' {ModuleAsientos: TModuleController},
+ uDataModuleAsientos in 'uDataModuleAsientos.pas' {dmAsientos: TDAClientDataModule},
+ uBizAsientos in '..\Reglas\uBizAsientos.pas',
+ uViewAsientos in 'uViewAsientos.pas' {frViewAsientos: TCustomView},
+ uEditorAsientos in 'uEditorAsientos.pas' {fEditorAsientos: TCustomEditor},
+ uViewAsiento in 'uViewAsiento.pas' {frViewAsiento: TCustomView},
+ uEditorAsiento in 'uEditorAsiento.pas' {fEditorAsiento: TCustomEditor},
+ uCerrarCaja in 'uCerrarCaja.pas' {frCerrarCaja},
+ schAsientosClient_Intf in '..\Reglas\schAsientosClient_Intf.pas',
+ schAsientosServer_Intf in '..\Reglas\schAsientosServer_Intf.pas';
+
+end.
diff --git a/Modulos/Asientos/Cliente/Asientos.drc b/Modulos/Asientos/Cliente/Asientos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Asientos/Cliente/Asientos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Asientos/Cliente/Asientos.res b/Modulos/Asientos/Cliente/Asientos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Asientos/Cliente/Asientos.res differ
diff --git a/Modulos/Asientos/Cliente/uCerrarCaja.ddp b/Modulos/Asientos/Cliente/uCerrarCaja.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uCerrarCaja.ddp differ
diff --git a/Modulos/Asientos/Cliente/uCerrarCaja.dfm b/Modulos/Asientos/Cliente/uCerrarCaja.dfm
new file mode 100644
index 0000000..56e41fc
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uCerrarCaja.dfm
@@ -0,0 +1,90 @@
+object frCerrarCaja: TfrCerrarCaja
+ Left = 489
+ Top = 479
+ BorderStyle = bsDialog
+ Caption = 'Cerrar caja'
+ ClientHeight = 144
+ ClientWidth = 313
+ 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 Label3: TLabel
+ Left = 37
+ Top = 43
+ Width = 77
+ Height = 13
+ Caption = 'Fecha de cierre:'
+ end
+ object Label2: TLabel
+ Left = 8
+ Top = 8
+ Width = 171
+ Height = 13
+ Caption = 'Por favor, indique la fecha de cierre:'
+ end
+ object Label1: TLabel
+ Left = 40
+ Top = 72
+ Width = 229
+ Height = 26
+ Caption =
+ 'Todos los asientos anterior a esa fecha de cierre'#13#10'no se podr'#225'n ' +
+ 'modificar.'
+ end
+ object eFechaCierre: TcxDateEdit
+ Left = 120
+ Top = 40
+ 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 = 154
+ end
+ object pnlSeleccion: TPanel
+ Left = 0
+ Top = 107
+ Width = 313
+ Height = 37
+ Align = alBottom
+ BevelOuter = bvNone
+ ParentBackground = True
+ TabOrder = 1
+ DesignSize = (
+ 313
+ 37)
+ object bAceptar: TButton
+ Left = 150
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Caption = '&Aceptar'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ object bCancelar: TButton
+ Left = 231
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uCerrarCaja.pas b/Modulos/Asientos/Cliente/uCerrarCaja.pas
new file mode 100644
index 0000000..aaf9da7
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uCerrarCaja.pas
@@ -0,0 +1,32 @@
+unit uCerrarCaja;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
+ cxDropDownEdit, cxCalendar, StdCtrls, ExtCtrls;
+
+type
+ TfrCerrarCaja = class(TForm)
+ Label3: TLabel;
+ eFechaCierre: TcxDateEdit;
+ pnlSeleccion: TPanel;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label2: TLabel;
+ Label1: TLabel;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frCerrarCaja: TfrCerrarCaja;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Asientos/Cliente/uDataModuleAsientos.ddp b/Modulos/Asientos/Cliente/uDataModuleAsientos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uDataModuleAsientos.ddp differ
diff --git a/Modulos/Asientos/Cliente/uDataModuleAsientos.dfm b/Modulos/Asientos/Cliente/uDataModuleAsientos.dfm
new file mode 100644
index 0000000..d754360
Binary files /dev/null and b/Modulos/Asientos/Cliente/uDataModuleAsientos.dfm differ
diff --git a/Modulos/Asientos/Cliente/uDataModuleAsientos.pas b/Modulos/Asientos/Cliente/uDataModuleAsientos.pas
new file mode 100644
index 0000000..302fb50
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uDataModuleAsientos.pas
@@ -0,0 +1,193 @@
+unit uDataModuleAsientos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizAsientos;
+
+type
+ TdmAsientos = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Asientos: TDACDSDataTable;
+ ds_Asientos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetItems: IBizAsiento;
+ function GetItem(Codigo:Integer): IBizAsiento;
+ procedure Preview;
+ function AsignarPunteado(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: TDateTime; const ValorPunteado: Integer): boolean;
+ function darPenultimoCierre(const CodigoCuenta: Integer): TDateTime;
+ function darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+ procedure anadirAsiento(pDatos: TDatosAsiento);
+ end;
+
+var
+ dmAsientos: TdmAsientos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schAsientosClient_Intf, uDataModuleBase, uDBSelectionList,
+ uDataModuleCuentas;
+
+procedure TdmAsientos.anadirAsiento(pDatos: TDatosAsiento);
+var
+ AAsiento: IBizAsiento;
+begin
+ try
+ AAsiento := GetItem(-1);
+ AAsiento.Cuenta.OnCuentaChanged := Nil;
+ AAsiento.Cuenta.LocalizarCuenta(pDatos.CodigoCuenta);
+ with AAsiento do
+ begin
+ DataTable.Active := True;
+ Insert;
+ CODIGOCUENTA := pDatos.CodigoCuenta;
+ FECHAASIENTO := pDatos.FechaAsiento;
+ CODIGOPAGO := pDatos.CodigoPago;
+ DESCRIPCION := pDatos.Descripcion;
+ IMPORTE := pDatos.Importe;
+ Post;
+ DataTable.ApplyUpdates;
+ AAsiento := NIL;
+ end;
+ except
+ on E:Exception do begin
+ AAsiento.DataTable.CancelUpdates;
+ AAsiento := NIL;
+ raise;
+ end;
+ end;
+end;
+
+function TdmAsientos.AsignarPunteado(const CodigoCuenta: Integer; const FechaIni: TDateTime; const FechaFin: TDateTime; const ValorPunteado: Integer): boolean;
+begin
+ Result := (RORemoteService as IsrvAsientos).AsignarPunteo(CodigoCuenta, FechaIni, FechaFin, ValorPunteado);
+end;
+
+procedure TdmAsientos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmAsientos.darPenultimoCierre(const CodigoCuenta: Integer): TDateTime;
+begin
+ Result := (RORemoteService as IsrvAsientos).darPenultimoCierre(CodigoCuenta);
+end;
+
+function TdmAsientos.darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni, FechaFin: DateTime): Currency;
+begin
+ Result := (RORemoteService as IsrvAsientos).darSumaAcumulada(CodigoCuenta, FechaIni, FechaFin);
+end;
+
+function TdmAsientos.GetItem(Codigo: Integer): IBizAsiento;
+var
+ AAsiento : IBizAsiento;
+begin
+ AAsiento:= GetItems;
+ with AAsiento.DataTable.Where do
+ AddText(fld_AsientosCODIGO + ' = ' + IntToStr(Codigo));
+ Result := AAsiento;
+end;
+
+function TdmAsientos.GetItems: IBizAsiento;
+var
+ dtAsientos: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtAsientos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Asientos, dtAsientos);
+ dtAsientos.BusinessRulesID := 'BizAsiento';
+ Result := (dtAsientos as IBizAsiento);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmAsientos.Preview;
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+{ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvContactos).GenerateReport;
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+}
+end;
+
+{function TdmCuentas.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+{function TdmAsientos.GetItem(Codigo: Integer): IBizCuenta;
+var
+ ACuenta: IBizCuenta;
+begin
+ ACuenta := GetItems;
+ with ACuenta.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_CuentasCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := ACuenta;
+end;
+
+{function TdmAsientos.PuedoEliminarCuenta(Codigo: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvCuentas).PuedoEliminarCuenta(Codigo);
+end;
+}
+
+
+initialization
+ dmAsientos := TdmAsientos.Create(nil);
+
+finalization
+ FreeAndNil(dmAsientos);
+
+end.
+
diff --git a/Modulos/Asientos/Cliente/uEditorAsiento.ddp b/Modulos/Asientos/Cliente/uEditorAsiento.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uEditorAsiento.ddp differ
diff --git a/Modulos/Asientos/Cliente/uEditorAsiento.dfm b/Modulos/Asientos/Cliente/uEditorAsiento.dfm
new file mode 100644
index 0000000..00a5c64
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uEditorAsiento.dfm
@@ -0,0 +1,160 @@
+inherited fEditorAsiento: TfEditorAsiento
+ Left = 468
+ Top = 411
+ Width = 638
+ Height = 382
+ HorzScrollBar.Visible = False
+ VertScrollBar.Visible = False
+ Caption = 'Ficha de cuenta'
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 630
+ Caption = 'Cuenta'
+ inherited Image1: TImage
+ Left = 603
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000002F14944415478DAB5960B4814
+ 411CC6BFBD67E74964266260986447A8216A6686585964929251529410598969
+ 709C65566A6826667948662565080549450749412F2AA21222148C42E8454660
+ 6698A9F7DADB6B678E3D1F3BA517F687657761E6FBFDBF6F66D8E5DC6E37FE67
+ 71D283E561D7A4A4ACD4686E2A632B6BCFA2E3EE396E14B0E99ADB92BF081B56
+ 453127F40F0CE3DB8F21747FEAA3EF86B02004CDD663CE2C7FE6F8D8B4BDE8E8
+ 35009D468E23E2F09F074B8E9E02F2DAECB2094D195AEFC4F6B606A8940AE4DF
+ 7630C5C9582F60C15CC80013ABBB1F303FB7A3719D1A09EB0BF1D4520FD30337
+ 4C495A1802D911F90420E570BAE0E45D48CE32E2D17533542A05D42A2575A250
+ 70BE015811995773E079012B379B70BFF5A428AC44F1638ED98C4F1191CE3BFB
+ 94687E654775328F355B0EE0CE951338FA4283DC382D22031CD069D532175302
+ 08821B56BB9376CEBB484402D2B71FC4AD966A3122A51891823AD1CD50CBA2F2
+ 39A28A650E11E442E68EC3B8D95C45058FBDD4FD5B44A473DE25D045B5890EDE
+ 8FE86944876287B131B714ADE72B50D73513654BACD4098968E2A2FF1190B922
+ D22B4EA2F144E4C2AF11078D247B4F392E9F29A7621AB547D01391721C243EBD
+ 800D58BBDC00E33D4166BB287A9042730A2B71A9FE08153AFD36801951439A0A
+ 8919FBD880D4A511B463A7E882DC6D0E1EED3F03F1E4831DF911DFB1D3781C4D
+ A74A70F1633052C2B588D7F7C18F3818B3E8C409392F4C404A5CB8579C444400
+ A473E9CADB5F83C69A626F1CE4D2EB343496B110725E9880A49830943D53CB6C
+ EF9ADF4B810525B5A8AF2AA2C22D3D21CC88A4F3C2042444857AF6BD20D0FB88
+ CD8181412BAEF686625BC817184BEB60AE34D1F7ADC13DD0FB69C48834E3169D
+ 3821E7850958BC30840A4B91586D4E7A275B9794A9DC4C0152912D4976911497
+ 0422DB9909201F8AE92A1980D46EFECDB4885F783DE87998084067FBB439404C
+ 2230F479F493F9D7C15203634B9C3C69DDC8E6B8C947311A78F7957E6FA73295
+ FBDFBF2DBF01AB269FECD6A6E3080000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 630
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 630
+ Height = 253
+ inherited pagGeneral: TTabSheet
+ Constraints.MinHeight = 140
+ inline frViewAsiento1: TfrViewAsiento
+ Left = 0
+ Top = 0
+ Width = 622
+ Height = 225
+ Align = alClient
+ AutoSize = True
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited dxLayoutControl1: TdxLayoutControl
+ Width = 622
+ Height = 225
+ inherited edtFecha: TcxDBDateEdit
+ Width = 150
+ end
+ inherited eDescripcion: TcxDBTextEdit
+ Width = 413
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Left = 372
+ Width = 150
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 329
+ Width = 630
+ end
+ inherited EditorActionList: TActionList
+ Top = 128
+ end
+ inherited SmallImages: TPngImageList
+ Top = 112
+ end
+ inherited dsDataTable: TDADataSource [6]
+ OnDataChange = dsDataTableDataChange
+ Left = 168
+ Top = 120
+ end
+ inherited LargeImages: TPngImageList [7]
+ Top = 112
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uEditorAsiento.pas b/Modulos/Asientos/Cliente/uEditorAsiento.pas
new file mode 100644
index 0000000..edbbfcc
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uEditorAsiento.pas
@@ -0,0 +1,151 @@
+unit uEditorAsiento;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ uViewAsiento, uBizAsientos, JvNavigationPane, ActnList,
+ uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
+ TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
+ TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+
+ uViewAsientos;
+
+type
+ IEditorAsiento = interface(IEditorDBItem)
+ ['{D61A23CA-1C89-4734-B52C-CFD5AB807F3E}']
+ function GetAsiento: IBizAsiento;
+ procedure SetAsiento(const Value: IBizAsiento);
+ property Asiento: IBizAsiento read GetAsiento write SetAsiento;
+ end;
+
+ TfEditorAsiento = class(TfEditorDBItem, IEditorAsiento)
+ frViewAsiento1: TfrViewAsiento;
+ procedure FormShow(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure actEliminarExecute(Sender: TObject);
+ private
+ FAsiento: IBizAsiento;
+ FViewAsiento : IViewAsiento;
+ protected
+ function GetAsiento: IBizAsiento; virtual;
+ procedure SetAsiento(const Value: IBizAsiento); virtual;
+
+ function GetViewAsiento: IViewAsiento;
+ procedure SetViewAsiento(const Value: IViewAsiento);
+ property ViewAsiento: IViewAsiento read GetViewAsiento write
+ SetViewAsiento;
+ public
+ property Asiento: IBizAsiento read GetAsiento write SetAsiento;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uCustomEditor, uDataModuleAsientos, uDataModuleBase, uEditorUtils;
+
+function ShowEditorAsiento (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorAsiento;
+begin
+ AEditor := TfEditorAsiento.Create(Application);
+ try
+ AEditor.Asiento := (ABizObject as IBizAsiento);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+******************************* TfEditorAsiento *******************************
+}
+function TfEditorAsiento.GetAsiento: IBizAsiento;
+begin
+ Result := FAsiento;
+end;
+
+function TfEditorAsiento.GetViewAsiento: IViewAsiento;
+begin
+ Result := FViewAsiento;
+end;
+
+procedure TfEditorAsiento.SetAsiento(const Value: IBizAsiento);
+begin
+ FAsiento := Value;
+ dsDataTable.DataTable := FAsiento.DataTable;
+
+ if Assigned(FViewAsiento) and Assigned(Asiento) then
+ FViewAsiento.Asiento := Asiento;
+end;
+
+procedure TfEditorAsiento.SetViewAsiento(const Value: IViewAsiento);
+begin
+ FViewAsiento := Value;
+
+ if Assigned(FViewAsiento) and Assigned(Asiento) then
+ FViewAsiento.Asiento := Asiento;
+end;
+
+procedure TfEditorAsiento.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewAsiento) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Asiento) then
+ raise Exception.Create('No hay ningún almacén asignado');
+
+ Asiento.DataTable.Active := True;
+ FViewAsiento.ShowEmbedded(pagGeneral);
+ FViewAsiento.SetFocus;
+end;
+
+destructor TfEditorAsiento.Destroy;
+begin
+ FViewAsiento := NIL;
+ FAsiento := NIL;
+ inherited;
+end;
+
+constructor TfEditorAsiento.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewAsiento := CreateView(TfrViewAsiento) as IViewAsiento;
+ ViewAsiento := frViewAsiento1;
+end;
+
+procedure TfEditorAsiento.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(FAsiento) and (not (FAsiento.DataTable.Fetching) or
+ not (FAsiento.DataTable.Opening) or not (FAsiento.DataTable.Closing)) then
+ begin
+ if Length(FAsiento.DESCRIPCION) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo asiento en ' + FAsiento.Cuenta.NOMBRE
+ else
+ JvNavPanelHeader.Caption := 'Asiento en ' + FAsiento.Cuenta.NOMBRE + ' - ' + FAsiento.DESCRIPCION;
+ Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorAsiento.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este asiento?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+initialization
+ RegisterEditor(IBizAsiento, ShowEditorAsiento, etItem);
+
+end.
+
diff --git a/Modulos/Asientos/Cliente/uEditorAsientos.ddp b/Modulos/Asientos/Cliente/uEditorAsientos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uEditorAsientos.ddp differ
diff --git a/Modulos/Asientos/Cliente/uEditorAsientos.dfm b/Modulos/Asientos/Cliente/uEditorAsientos.dfm
new file mode 100644
index 0000000..a47dd1f
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uEditorAsientos.dfm
@@ -0,0 +1,1514 @@
+inherited fEditorAsientos: TfEditorAsientos
+ Left = 186
+ Top = 225
+ Width = 910
+ Caption = 'fEditorAsientos'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 902
+ inherited Image1: TImage
+ Left = 875
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000002F14944415478DAB5960B4814
+ 411CC6BFBD67E74964266260986447A8216A6686585964929251529410598969
+ 709C65566A6826667948662565080549450749412F2AA21222148C42E8454660
+ 6698A9F7DADB6B678E3D1F3BA517F687657761E6FBFDBF6F66D8E5DC6E37FE67
+ 71D283E561D7A4A4ACD4686E2A632B6BCFA2E3EE396E14B0E99ADB92BF081B56
+ 453127F40F0CE3DB8F21747FEAA3EF86B02004CDD663CE2C7FE6F8D8B4BDE8E8
+ 35009D468E23E2F09F074B8E9E02F2DAECB2094D195AEFC4F6B606A8940AE4DF
+ 7630C5C9582F60C15CC80013ABBB1F303FB7A3719D1A09EB0BF1D4520FD30337
+ 4C495A1802D911F90420E570BAE0E45D48CE32E2D17533542A05D42A2575A250
+ 70BE015811995773E079012B379B70BFF5A428AC44F1638ED98C4F1191CE3BFB
+ 94687E654775328F355B0EE0CE951338FA4283DC382D22031CD069D532175302
+ 08821B56BB9376CEBB484402D2B71FC4AD966A3122A51891823AD1CD50CBA2F2
+ 39A28A650E11E442E68EC3B8D95C45058FBDD4FD5B44A473DE25D045B5890EDE
+ 8FE86944876287B131B714ADE72B50D73513654BACD4098968E2A2FF1190B922
+ D22B4EA2F144E4C2AF11078D247B4F392E9F29A7621AB547D01391721C243EBD
+ 800D58BBDC00E33D4166BB287A9042730A2B71A9FE08153AFD36801951439A0A
+ 8919FBD880D4A511B463A7E882DC6D0E1EED3F03F1E4831DF911DFB1D3781C4D
+ A74A70F1633052C2B588D7F7C18F3818B3E8C409392F4C404A5CB8579C444400
+ A473E9CADB5F83C69A626F1CE4D2EB343496B110725E9880A49830943D53CB6C
+ EF9ADF4B810525B5A8AF2AA2C22D3D21CC88A4F3C2042444857AF6BD20D0FB88
+ CD8181412BAEF686625BC817184BEB60AE34D1F7ADC13DD0FB69C48834E3169D
+ 3821E7850958BC30840A4B91586D4E7A275B9794A9DC4C0152912D4976911497
+ 0422DB9909201F8AE92A1980D46EFECDB4885F783DE87998084067FBB439404C
+ 2230F479F493F9D7C15203634B9C3C69DDC8E6B8C947311A78F7957E6FA73295
+ FBDFBF2DBF01AB269FECD6A6E3080000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 902
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem33: TTBXItem
+ Visible = False
+ end
+ object TBXItem36: TTBXItem [8]
+ Action = actPuntear
+ DisplayMode = nbdmImageAndText
+ end
+ object TBXItem39: TTBXItem [9]
+ Action = actCerrarCaja
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ object TBXSubmenuItem2: TTBXSubmenuItem [3]
+ Caption = '&Herramientas'
+ object TBXSeparatorItem16: TTBXSeparatorItem
+ end
+ object TBXItem38: TTBXItem
+ Action = actCerrarCaja
+ end
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 601
+ inherited TBXItem37: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 902
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 24
+ OnExecute = actNuevoExecute
+ OnUpdate = actNuevoUpdate
+ end
+ object actCerrarCaja: TAction
+ Category = 'Herramientas'
+ Caption = 'Cerrar caja'
+ ImageIndex = 23
+ OnExecute = actCerrarCajaExecute
+ OnUpdate = actCerrarCajaUpdate
+ end
+ object actPuntear: TAction
+ Category = 'Herramientas'
+ Caption = 'Puntear asiento'
+ ImageIndex = 22
+ OnExecute = actPuntearExecute
+ OnUpdate = actPuntearUpdate
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000DD4944415478DA
+ 63FCFFFF3F032580716819F062EFCEFF1F776F6650EF98C248B201771A4AFFFF
+ B873834167C966466471A20CB816EBF7FF1F501DBA66A20CB8EC63FDFF3F3333
+ 83DEC6438CD8E4F11A00B2F9C7F54B0C46671E30E2520337E0E59C89FF1F77D6
+ 3128CE59C7206CEFCC08F2F3BB7993192496EE6190B3B521C2804533FF3F28CB
+ 60E0D0D06110296966789212C82050D8C8A05E5E87533386176E6646FFFFB07E
+ 1903B3802003B3842C83E1818B78356318F0F2E2A5FF0FDCF5C16CA1991B1854
+ FDFD49330004AE64C7FF67770B224A33C158181A060000C2907AE143E74E3500
+ 00000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001C64944415478DA
+ 63FCFFFF3F03258091620340C49ADD17B19A12E2AACF884F0E64392343C0F2FF
+ 6BB2B518825DF43014ADDD7309ABB8BE4B1AC3255E2786FFEB2318F11A005278
+ 71CF2CE20D48DEF013AE688A271383857736C389AD531972B6FF838BCF0D60C7
+ EF823F7FFF317CFBF19BE1F7EFBF0C4E21050CFBD64C60E0E26465E064674571
+ C1CECA60868FBB3733E0744183C537069F9872862D4B3A191A4E70A1B8E04E43
+ 29C38F3B371874966C46B8C0DF51076CF3B7EF3F19BE03E99F7FFE3284A7D430
+ AC9CD3C2C0CDC1CAC0C5C10E76C9FD9460867FC0D0D7FD1A8DEA05574B7586C2
+ DD8880CA567BCD9098D7C4307F521DC3D45BA260B18239407F333333C47ED5C0
+ 0C036B0305B0CD5FBEFF62F8FAED17380C722A3A18A67454307073B13170B467
+ 31FCB87E89417ECF3570D8601860A4210DD7AC787A03C3E3CE3A06C539EB182E
+ B2CB31C8ED98C5F06EDE640689A57B181855B5C16183614053C714B8F377C519
+ 333C28CB60E0D0D06110296966789212C82050D8C810B6FB095C0D8A01D892EA
+ 0D89CD0C1FD62F6360161064609690653012ACC450033100077871E1E2FF07EE
+ FA60B6D0CC0D0C6A0101186AC179015F6EBC921DFF9FDD2D8841D5DF1FA74500
+ CD58EC9D16DF11E60000000049454E44AE426082}
+ Name = 'PngImage23'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000013A4944415478DA
+ 63FCFFFF3F03258091620340C4FABD97B19A12E8ACCB884F0E64392343C8AAFF
+ EB333519029C7430146DD87705ABB8914716C3795E4786FFAB4319F11A005278
+ 6EC734E20D48DFFC13AE68821B1383B57F3EC3D18D13190A76FD838BCFF465C7
+ EF823F7FFF317CFFF19BE1F79FBF0C2EE1250C7B56F6307072B03270B2B392E6
+ 825AB3EF0C7EF1550C9B16B631349FE224EC021F7B2DB0CDDF7EFC02D3BF802E
+ 8848AF675831B391810BE8022E0E36B84BB01AE06CAECA50B20F115099AA6F18
+ 920A5A19E64DA866987E5B04236C300CB0D49707DBFCF5FB2F30FEFDFB2F436E
+ 5537C3E4B652066E2E36062E4E36B84B406183618081BA145CF337200681A2BA
+ 3E86BEA62206561666144340618361405317667CE30328066055C12387607F79
+ 845509C4005C00D9E0356158D581F302A5B911006305C5E10A57158000000000
+ 49454E44AE426082}
+ Name = 'PngImage24'
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000003C14944415478DA
+ DD956B6C145514C7CFBD33B33BBBB3BBECDA076C312D4D8BB32D260514A8224D
+ 4B6A434552A97E8146A2A698E023061AA90D06121362216A8941340B7ED0F882
+ 98AA2D446A6137A6560D1A5B694B6D8DB12275B7BB9D7DCCBEE7E95D34C40F4B
+ 6D453EE8F93693B9FFDF39F7FCCF19A4EB3ADCCC40FF2F80BFBD1514DF15887D
+ E905F6AE3AE076B683EE28043D9D045015D0E222E8011F68420010C300A21900
+ 8A02A68CEFD034EDA9C480C7AA08815FF9232756FC5B001AB1EC72ECC83BAEC4
+ C4F5E9B18BA0C6A20201E4DF18203803C8C000E6381EB166776A62A4263D391E
+ C556FB3E643479F92EF7A51B038467015B6C778294DC93FCF6EB6DA9D1A1511D
+ E36386F28A13789143E68FBCF90F7B20464117C3E439550891803B33F55353FC
+ BB0B008ADC41B16C275DEA02C0185CAFBFB34040320EA0A9A046C280D3C90A2D
+ 1E3B1A7EEBD56A391236DB9E781E98DB2A5F9006FB0F485F7900885EE527030B
+ 00D80BC82115409648156A95323EFC6CECDCE996D4A58BC0ACAD49DBDB0EF6D3
+ A52547F570E2B3B4A7E76AA5A5DB1F5E0060517ED631342899625D8CBE167BDF
+ BD2974EA5DE01E6C01DBAE8E4FB1CDF108391AC8DA15936F0101386DD4FC0096
+ 47F75CBD226A6971AD1E12F686DD871BC4F3A729B4F856E09AB6BFC7D53474EA
+ 3A1AC19C15203B137F6A2D5DE6CC0DF0EDDEB149F14F2F895F18889A6A1B59CB
+ CE76BF9C4A793549DAAAFE76B93BF0F27E908301C1B2EDF14176F5BA03C692B2
+ 6164BB05B0CD3E3F807F6FEB88ECBB7C7B7CD03B6BAABBCFCA3DD636969C18A9
+ 8D7F7E7EA5F4F3649FE49F36E1BC2567D8751B76517905D3A6AA359A81AF0264
+ E60018C3354091D3911B103ED79B9126460DB3C70E93BE5260DED2AC52FC8A5E
+ B1EF0C23F6F537B20DF76253FD031EE2C44650248971160395BF98F48888E3EC
+ BDFFA155B2F68EDC80A420F4A47F1CAF0A767614C43C5F98A82207B075F74366
+ 6A0212DF0FA9B627F74D59363FF4912A045F24D986F44C0AB4ACBBB21A7FD1E1
+ 9B9B730352B3418734E3AB16FB7BBB421FBECD27872741A748768546A05DAB42
+ 96A696DDE655D5DD4A58485C4B374794D7D7E5060853BF645D5646066820F4C6
+ 2167F0F80790D6004CAE22B0B7EDD798E2E59B11466729987BC597D76FCC0D98
+ 99F603A2E80A6434BF14711FDA30D3F58A555669B0366F91ACAD6DC3640D3CA7
+ 25625E449A3057B8EEA9BE0EE08A8FBC412C59C3A5D19E9307239EBEAD74E56A
+ 30AE5CF303CE2BD8A12BCA18685A12FE262A6AD7CF09C85601D1B31F3F1D1BFA
+ A6DD70F746A097F1DD64929FD165655EBFBFEB026E46FCF701BF032AFB53EF33
+ 8209D90000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000004264944415478DA
+ B5967B50546518C69FB3B7B3376242B066030A6DC455113418146C2885A29466
+ 09AAB1098B61642C0DBB008A30850C625C9224D4092C3596312612A69C8471D0
+ 9C90C6F112CBBAC11FD28D21B918E2427B3DBBA773BECD75D6B31834D3FBD7F7
+ CDBCDFF37BBFE77DCF85625916FF6750B717ADA70DFF4ACA4C89A666935BF641
+ 3DFABA1AA93B00DD71B675EB1264242FF77BE0C6CDBF303A3185815FC6C87E71
+ C47CCC0F5221E4FE00BFF9D1C9B9E81B8B048CF914C58B43FD305A5F5511404E
+ BB5D70E0531DED3D78F1D42148C4226CFEDAE1579CCFF502163E0401E0EEE8BF
+ 01D474DBF1C906291E4BDD829E6FEA91D7C9227F0D0D6DB07F8BE604E0C3E174
+ C1C9B89090B60DE74ED4412A15412A11939B8844D4DC00FE2CAA7B9A82D3E946
+ D2F379E8FAB2961316E3DD3394DF62E664115FF99531311A2FDA5199C460DD0B
+ 6FA3E3780D4ACED3D81C47232AC801052D15DC625600B79B85D5EE2495332E8F
+ 45A91BF371B2A91212CE1E8F4562281552815573B6A83CD10E86036CC8DA81F6
+ A37B8960E905E57FB388AF9C71B949C5569B13D72C2A625149EC3474AF15A1A5
+ B11CD5864094C65BC84D14B4CCA7E9948B41474B1B96DAC631D167F005A4AF8D
+ F28AF3D658ED0E52B9D9E2804C2242664E31F4877613315AEA1154C865C42A1E
+ 22E15CB20DF4E1CF331D30F68FE2A453E30B78F6712DB69D720BAE5D107D8B40
+ 5F79FD7D1CA97B8F1313E32353904F8E8C659068376255F7015CBE7C15A5CEF5
+ 18085BE60B48591D09869F79AEA97CE53607839EC9607C3768C7D645E3C8CE2B
+ 43C3BE6234FCFC209E5848234E3D06959C6B32D760EADA554CEB0FC0F2C730F6
+ 39C2706C78A5B0074FC63EEA156718CE220EE0B1CB3345B9EFECC1C1AA22CE7B
+ 8FE7FC4DD41C40363C88A9837B6031F522F8433D8ADB7E80FEAC440858B32202
+ BBBE97092CCA5D3042806F14EEC5FE8A4222FED9EF1ACE73166B03AE63695321
+ 1C577AE07EAB1AE1CFA561FDA6225C1A8A10025645851321C6CD37DA0D8BD581
+ 49B315CD23E1C8D20C61FBAE2AD4961790FD266E1F1A24078ED6E0E6577AC875
+ 5908DC52088952459E17BF631A13A921C2B76DE1C7945FF3A33BCFD0856F8F7D
+ 8ED41733E08C7F0AD3941C9AFE7398AADA01366209943BAB21095B40A68B1F67
+ BF00FE4331539C4E0B83F944135C6E0AA32FBD89A6F30378C6D88950058BCEC8
+ 64B48EF84E9F00C04736639A1150529000B6793F260F37808E8D01AB5D01737B
+ 0BC499393068D6E1C28FE3DEDC23A65B9EC5DD00187A6604843E1080E2243912
+ CFD6C2DCDD0BDC47835AA6457D680EDA7E6260E32CF57DE32500D3BFDDF964E2
+ 5EF14F0195E92148371EC67069255C4A09E6ED2EC3CE89E5E8EC9FF27FAE7D23
+ 456136C115C0BF2CE31605637BC8101E69FB18D295ABA1CE78B911AA800A6D5C
+ F4AF331DA5E6FADB32F84573B6B9F752059DA2BB2E5207662D8E8F31DD2BFF6F
+ ECF7177993923BFF0000000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited GridPopupMenu: TPopupMenu
+ inherited Duplicar1: TMenuItem
+ Visible = False
+ end
+ object Cerrarcaja1: TMenuItem [6]
+ Action = actCerrarCaja
+ end
+ object N3: TMenuItem [7]
+ Caption = '-'
+ end
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uEditorAsientos.pas b/Modulos/Asientos/Cliente/uEditorAsientos.pas
new file mode 100644
index 0000000..8b8735a
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uEditorAsientos.pas
@@ -0,0 +1,191 @@
+unit uEditorAsientos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
+ JvNavigationPane, uBizAsientos, uViewGrid, JvComponentBase, pngimage;
+
+type
+ IEditorAsientos = interface(IEditorGrid)
+ ['{05667247-1AC6-4297-9B84-524A2AA3A04C}']
+ function GetAsientos: IBizAsiento;
+ procedure SetAsientos(const Value: IBizAsiento);
+ property Asientos: IBizAsiento read GetAsientos write SetAsientos;
+ end;
+
+ TfEditorAsientos = class(TfEditorGrid, IEditorAsientos)
+ actCerrarCaja: TAction;
+ N3: TMenuItem;
+ Cerrarcaja1: TMenuItem;
+ actPuntear: TAction;
+ TBXItem36: TTBXItem;
+ TBXSubmenuItem2: TTBXSubmenuItem;
+ TBXSeparatorItem16: TTBXSeparatorItem;
+ TBXItem38: TTBXItem;
+ TBXItem39: TTBXItem;
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actCerrarCajaExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actCerrarCajaUpdate(Sender: TObject);
+ procedure actNuevoUpdate(Sender: TObject);
+ procedure actPuntearExecute(Sender: TObject);
+ procedure actPuntearUpdate(Sender: TObject);
+ private
+ FAsientos: IBizAsiento;
+ protected
+ function GetAsientos: IBizAsiento; virtual;
+ procedure SetAsientos(const Value: IBizAsiento); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ property Asientos: IBizAsiento read GetAsientos write SetAsientos;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ fEditorAsientos: TfEditorAsientos;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorAsientos }
+
+uses uViewAsientos;
+
+constructor TfEditorAsientos.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewAsientos) as IViewAsientos;
+end;
+
+destructor TfEditorAsientos.Destroy;
+begin
+ FAsientos := NIL;
+ inherited;
+end;
+
+procedure TfEditorAsientos.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Asientos) then
+ raise Exception.Create('No hay ningún asiento asignado');
+
+ Asientos.DataTable.Active := True;
+end;
+
+function TfEditorAsientos.GetAsientos: IBizAsiento;
+begin
+ Result := FAsientos;
+end;
+
+procedure TfEditorAsientos.SetAsientos(const Value: IBizAsiento);
+begin
+ FAsientos := Value;
+ dsDataTable.DataTable := FAsientos.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewAsientos).Asientos := Asientos;
+end;
+
+procedure TfEditorAsientos.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Asientos) then
+ (ViewGrid as IViewAsientos).Asientos := Asientos;
+end;
+
+procedure TfEditorAsientos.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Asientos.Insert;
+ Asientos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAsientos.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Asientos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAsientos.actCerrarCajaExecute(Sender: TObject);
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ Asientos.cerrarCaja;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+
+ Screen.Cursor := ACursor;
+end;
+
+procedure TfEditorAsientos.actEliminarExecute(Sender: TObject);
+begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+
+ if Asientos.PUNTEADO = CTE_NOPUNTEADO
+ then inherited
+ else if (Asientos.TIPOASIENTO = CTE_CIERRE)
+ then Asientos.eliminarCierreCaja
+ else raise Exception.Create('No se puede borrar un asiento que esta punteado por un cierre de caja');
+
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAsientos.actCerrarCajaUpdate(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;
+
+procedure TfEditorAsientos.actNuevoUpdate(Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Asientos.Cuenta.RecordCount <> 0;
+end;
+
+procedure TfEditorAsientos.actPuntearExecute(Sender: TObject);
+begin
+ inherited;
+
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ Asientos.puntearAsiento;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorAsientos.actPuntearUpdate(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;
+
+end.
diff --git a/Modulos/Asientos/Cliente/uPluginControllerAsientos.ddp b/Modulos/Asientos/Cliente/uPluginControllerAsientos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uPluginControllerAsientos.ddp differ
diff --git a/Modulos/Asientos/Cliente/uPluginControllerAsientos.dfm b/Modulos/Asientos/Cliente/uPluginControllerAsientos.dfm
new file mode 100644
index 0000000..080963e
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uPluginControllerAsientos.dfm
@@ -0,0 +1,149 @@
+object ModuleAsientos: TModuleAsientos
+ OldCreateOrder = True
+ Description = 'Cuentas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Cuentas'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 495
+ Top = 389
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002F14944415478DA
+ B5960B4814411CC6BFBD67E74964266260986447A8216A668658596492925152
+ 9410598969709C65566A6826667948662565080549450749412F2AA21222148C
+ 42E84546606698A9F7DADB6B678E3D1F3BA517F687657761E6FBFDBF6F66D8E5
+ DC6E37FE6771D283E561D7A4A4ACD4686E2A632B6BCFA2E3EE396E14B0E99ADB
+ 92BF081B56453127F40F0CE3DB8F21747FEAA3EF86B02004CDD663CE2C7FE6F8
+ D8B4BDE8E835009D468E23E2F09F074B8E9E02F2DAECB2094D195AEFC4F6B606
+ A8940AE4DF7630C5C9582F60C15CC80013ABBB1F303FB7A3719D1A09EB0BF1D4
+ 520FD303374C495A1802D911F90420E570BAE0E45D48CE32E2D17533542A05D4
+ 2A2575A25070BE015811995773E079012B379B70BFF5A428AC44F1638ED98C4F
+ 1191CE3BFB94687E654775328F355B0EE0CE951338FA4283DC382D22031CD069
+ D53217530208821B56BB9376CEBB484402D2B71FC4AD966A3122A51891823AD1
+ CD50CBA2F239A28A650E11E442E68EC3B8D95C45058FBDD4FD5B44A473DE25D0
+ 45B5890EDE8FE86944876287B131B714ADE72B50D73513654BACD4098968E2A2
+ FF1190B922D22B4EA2F144E4C2AF11078D247B4F392E9F29A7621AB547D01391
+ 721C243EBD800D58BBDC00E33D4166BB287A9042730A2B71A9FE08153AFD3680
+ 1951439A0A8919FBD880D4A511B463A7E882DC6D0E1EED3F03F1E4831DF911DF
+ B1D3781C4DA74A70F1633052C2B588D7F7C18F3818B3E8C409392F4C404A5CB8
+ 579C444400A473E9CADB5F83C69A626F1CE4D2EB343496B110725E9880A49830
+ 943D53CB6CEF9ADF4B810525B5A8AF2AA2C22D3D21CC88A4F3C2042444857AF6
+ BD20D0FB88CD8181412BAEF686625BC817184BEB60AE34D1F7ADC13DD0FB69C4
+ 8834E3169D3821E7850958BC30840A4B91586D4E7A275B9794A9DC4C0152912D
+ 49769114970422DB9909201F8AE92A1980D46EFECDB4885F783DE87998084067
+ FBB439404C2230F479F493F9D7C15203634B9C3C69DDC8E6B8C947311A78F795
+ 7E6FA73295FBDFBF2DBF01AB269FECD6A6E3080000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actAsientos: TAction
+ Category = 'Contabilidad'
+ Caption = 'Asientos'
+ ImageIndex = 0
+ OnExecute = actAsientosExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 500
+ Caption = '&Contabilidad'
+ GroupIndex = 1
+ ImageIndex = 0
+ OnClick = actAsientosExecute
+ object Contabilidad1: TMenuItem
+ Tag = 200
+ Action = actAsientos
+ end
+ object N1: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000013A4944415478DA
+ 63FCFFFF3F03258091620340C4FABD97B19A12E8ACCB884F0E64392343C8AAFF
+ EB333519029C7430146DD87705ABB8914716C3795E4786FFAB4319F11A005278
+ 6EC734E20D48DFFC13AE68821B1383B57F3EC3D18D13190A76FD838BCFF465C7
+ EF823F7FFF317CFFF19BE1F79FBF0C2EE1250C7B56F6307072B03270B2B392E6
+ 825AB3EF0C7EF1550C9B16B631349FE224EC021F7B2DB0CDDF7EFC02D3BF802E
+ 8848AF675831B391810BE8022E0E36B84BB01AE06CAECA50B20F115099AA6F18
+ 920A5A19E64DA866987E5B04236C300CB0D49707DBFCF5FB2F30FEFDFB2F436E
+ 5537C3E4B652066E2E36062E4E36B84B406183618081BA145CF337200681A2BA
+ 3E86BEA62206561666144340618361405317667CE30328066055C12387607F79
+ 845509C4005C00D9E0356158D581F302A5B911006305C5E10A57158000000000
+ 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
+ 940000000970485973000017120000171201679FD252000002F74944415478DA
+ DD967D48535118C69F7D396A129989581826D90A3544CD4C112B8B4CD232520A
+ 0B222B518BC62CB352433331CB21999594211424190D9284BEA8884AA850300A
+ A12F320233C3CC0FB6DDDDDB3D675D03BDC74D4DFFE881CBB9BB77EFFB3BCFB3
+ B3C351088280A99462CA81D28DF9419B4BE4E4B8E031D514979F43CB9DF3B486
+ 9873146FBE2E98331763E3AA206661774F3FBEFDE843FBA7AEA1677A3F2F78CD
+ D261F64C77665D687C165A3AF540AB41E1008A30B8CF8379BB6E54E0F0262F9B
+ AAA1542A5CFA2E052E9803A12145310298D168912DAC49D4D291E37844ACDF8B
+ E6C62AA8554A64DEB63261A4C629504EEDDD80E99905D5EB34B0D9ED88DEB01F
+ 4FCC9530DE17608CD242EF3901872C596D76D8383B75B832C588870D26A8D54A
+ 68D42AEA9415EFB82335AD565018273A5CB3E520EED59F12412AE43E62FF8E63
+ 8E94E70511C0A3B54B85DA571694C670A24B1E09DB0EA1E9EA491C7BEE86F430
+ 2D023DAC4CA72E03259814237146609CF83969C711DCAA2B15235589202575CA
+ 8A77DC91162DB7521899C4A6F47CDCAC2DA1CD8FBF9836B148E59CBD1FD0D148
+ 0F87F6D377A97B0A517FA108156D3350B0747054A7A3029356043263FC3560A5
+ 4DC9BBB4AC225C395B481BBB691CCD59D0F0846C36706DB41E86BBBC6C3C39C1
+ BD1446AE9D8613B85C7994363DF3D683196955BC1A9189FBD8C0B86501D48DCD
+ EE70455DF23C9A7F7AE2F1070B3203BE5360C68132D49CCEC3A58FDE88F5D722
+ 5CD7C5741A936C600363C3FC47C0C8283993A2CECE2B477559EE5074D2250725
+ 9B04131815E28782A71AD97876CDEF1C821BF22B5059924321751D3ECC48C9FF
+ 966C124C604490AFACB39EDE415CEBF4459ACF17BA8A8D8526988A8DF4D956EF
+ 0EE8A6BB319D924D82090C5D3497192319098C48021291A54F5724235EB24930
+ 814B16FA38850D073A83924D820924C781C9902C906837F7E69FC32EBEEE75DC
+ C801D1DA3C290E111209F47DFE03242250679226355C622397742355F1F7D4E6
+ 8AE426F5EE2B3D8DB9DA8202FFFB93F76F83A547E7CAF74B390000000049454E
+ 44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uPluginControllerAsientos.pas b/Modulos/Asientos/Cliente/uPluginControllerAsientos.pas
new file mode 100644
index 0000000..021a15f
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uPluginControllerAsientos.pas
@@ -0,0 +1,78 @@
+unit uPluginControllerAsientos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCAsientos = interface(IInterface)
+ ['{9B90127C-6EDE-44EE-BB45-93C0645CED0A}']
+ end;
+
+ TModuleAsientos = class(TModuleController, IMCAsientos)
+ actAsientos: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ Contabilidad1: TMenuItem;
+ SmallImages: TPngImageList;
+ N1: TMenuItem;
+ procedure actAsientosExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleAsientos, uEditorAsientos,
+ uBizAsientos;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleAsientos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleAsientos.actAsientosExecute(Sender: TObject);
+var
+ aObj: IEditorAsientos;
+ AAsientos: IBizAsiento;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+
+ AAsientos := dmAsientos.GetItems;
+ aObj := TfEditorAsientos.Create(Application);
+ try
+ with aObj do
+ begin
+ Asientos := AAsientos;
+ ShowEmbedded;
+ end;
+ finally
+ AAsientos := NIL;
+ aObj := NIL;
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleAsientos);
+
+finalization
+ UnRegisterModuleClass(TModuleAsientos);
+
+end.
diff --git a/Modulos/Asientos/Cliente/uViewAsiento.ddp b/Modulos/Asientos/Cliente/uViewAsiento.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uViewAsiento.ddp differ
diff --git a/Modulos/Asientos/Cliente/uViewAsiento.dfm b/Modulos/Asientos/Cliente/uViewAsiento.dfm
new file mode 100644
index 0000000..f531d66
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uViewAsiento.dfm
@@ -0,0 +1,119 @@
+inherited frViewAsiento: TfrViewAsiento
+ Width = 484
+ Height = 131
+ Align = alClient
+ AutoSize = True
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 484
+ Height = 131
+ Align = alClient
+ ParentBackground = True
+ TabOrder = 0
+ AutoContentSizes = [acsWidth, acsHeight]
+ LookAndFeel = dxLayoutOfficeLookAndFeel1
+ object edtFecha: TcxDBDateEdit
+ Left = 85
+ Top = 30
+ DataBinding.DataField = 'FECHAASIENTO'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 150
+ end
+ object eDescripcion: TcxDBTextEdit
+ Left = 85
+ Top = 57
+ DataBinding.DataField = 'DESCRIPCION'
+ DataBinding.DataSource = DADataSource
+ Style.Color = 14745599
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 413
+ end
+ object cxCurrencyEdit5: TcxDBCurrencyEdit
+ Left = 300
+ Top = 30
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTE'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = False
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ Style.TextStyle = [fsBold]
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleFocused.TextColor = clWindowText
+ StyleHot.LookAndFeel.NativeStyle = True
+ StyleHot.TextColor = clWindowText
+ TabOrder = 1
+ Height = 21
+ Width = 150
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ Caption = 'Datos del asiento'
+ object dxLayoutControl1Group2: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ LayoutDirection = ldHorizontal
+ ShowBorder = False
+ object dxLayoutControl1Item1: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Fecha:'
+ Control = edtFecha
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item3: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Importe:'
+ Control = cxCurrencyEdit5
+ ControlOptions.ShowBorder = False
+ end
+ end
+ object dxLayoutControl1Item2: TdxLayoutItem
+ Caption = 'Descripci'#243'n:'
+ Control = eDescripcion
+ ControlOptions.ShowBorder = False
+ end
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 256
+ Top = 32
+ end
+ object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
+ Left = 432
+ Top = 80
+ object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel
+ GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET
+ GroupOptions.CaptionOptions.Font.Color = clWindowText
+ GroupOptions.CaptionOptions.Font.Height = -11
+ GroupOptions.CaptionOptions.Font.Name = 'MS Sans Serif'
+ GroupOptions.CaptionOptions.Font.Style = [fsBold]
+ GroupOptions.CaptionOptions.TextColor = clActiveCaption
+ GroupOptions.CaptionOptions.UseDefaultFont = False
+ end
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uViewAsiento.pas b/Modulos/Asientos/Cliente/uViewAsiento.pas
new file mode 100644
index 0000000..8d92d85
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uViewAsiento.pas
@@ -0,0 +1,83 @@
+unit uViewAsiento;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
+ DBCtrls, Grids, DBGrids, uBizAsientos, Mask, ComCtrls, uCustomView,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit, cxMemo, uViewFormaPago, cxCurrencyEdit, cxMaskEdit,
+ cxDropDownEdit, cxCalendar, uListaCuentas, dxLayoutControl,
+ dxLayoutLookAndFeels;
+
+type
+ IViewAsiento = interface(IViewBase)
+ ['{D6147CF8-EBEF-4F87-8202-97A2BA47250F}']
+ function GetAsiento: IBizAsiento;
+ procedure SetAsiento(const Value: IBizAsiento);
+ property Asiento: IBizAsiento read GetAsiento write SetAsiento;
+ end;
+
+ TfrViewAsiento = class(TfrViewBase, IViewAsiento)
+ DADataSource: TDADataSource;
+ eDescripcion: TcxDBTextEdit;
+ edtFecha: TcxDBDateEdit;
+ cxCurrencyEdit5: TcxDBCurrencyEdit;
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ dxLayoutControl1Item2: TdxLayoutItem;
+ dxLayoutControl1Item3: TdxLayoutItem;
+ dxLayoutControl1Group2: TdxLayoutGroup;
+ dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
+ dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
+ private
+ FAsiento: IBizAsiento;
+ protected
+ function GetAsiento: IBizAsiento;
+ procedure SetAsiento(const Value: IBizAsiento);
+ public
+ constructor Create(AOwner : TComponent); override;
+ property Asiento: IBizAsiento read GetAsiento write SetAsiento;
+ end;
+
+implementation
+
+uses uDataModuleAsientos;
+
+{$R *.dfm}
+
+{ TfrViewAsientos }
+
+{
+******************************* TfrViewAsientos ********************************
+}
+constructor TfrViewAsiento.Create(AOwner : TComponent);
+begin
+ inherited;
+end;
+
+function TfrViewAsiento.GetAsiento: IBizAsiento;
+begin
+ Result := FAsiento;
+end;
+
+procedure TfrViewAsiento.SetAsiento(const Value: IBizAsiento);
+begin
+ FAsiento := Value;
+ if Assigned(FAsiento) then
+ DADataSource.DataTable := FAsiento.DataTable
+ else
+ DADataSource.DataTable := NIL;
+end;
+
+initialization
+ RegisterClass(TfrViewAsiento);
+
+finalization
+ UnRegisterClass(TfrViewAsiento);
+
+end.
+
diff --git a/Modulos/Asientos/Cliente/uViewAsientos.ddp b/Modulos/Asientos/Cliente/uViewAsientos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Cliente/uViewAsientos.ddp differ
diff --git a/Modulos/Asientos/Cliente/uViewAsientos.dfm b/Modulos/Asientos/Cliente/uViewAsientos.dfm
new file mode 100644
index 0000000..789a4dc
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uViewAsientos.dfm
@@ -0,0 +1,177 @@
+inherited frViewAsientos: TfrViewAsientos
+ inherited cxGrid: TcxGrid
+ Top = 39
+ Height = 231
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ OnCustomDrawCell = cxGridViewCustomDrawCell
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ end>
+ OptionsBehavior.PullFocusing = True
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewTIPOASIENTO: TcxGridDBColumn
+ DataBinding.FieldName = 'TIPOASIENTO'
+ Visible = False
+ end
+ object cxGridViewPUNTEADO: TcxGridDBColumn
+ DataBinding.FieldName = 'PUNTEADO'
+ OnCustomDrawCell = cxGridViewPUNTEADOCustomDrawCell
+ Options.ShowEditButtons = isebNever
+ Width = 35
+ IsCaptionAssigned = True
+ end
+ object cxGridViewCODIGOCUENTA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCUENTA'
+ Visible = False
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewFECHAASIENTO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAASIENTO'
+ end
+ object cxGridViewFORMAPAGO: TcxGridDBColumn
+ DataBinding.FieldName = 'FORMAPAGO'
+ Visible = False
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ Options.Sorting = False
+ end
+ object cxGridViewCODIGOPAGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPAGO'
+ Visible = False
+ end
+ object cxGridViewIMPORTE: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTE'
+ HeaderAlignmentHorz = taRightJustify
+ Options.Sorting = False
+ end
+ object cxGridViewIMPORTEANT: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEANT'
+ HeaderAlignmentHorz = taRightJustify
+ Options.Sorting = False
+ end
+ object cxGridViewIMPORTEPOS: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEPOS'
+ HeaderAlignmentHorz = taRightJustify
+ Options.Sorting = False
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Tag = -1
+ end
+ end
+ inline frListaIntervalos: TfrListaIntervalos [1]
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 39
+ Align = alTop
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Label3: TLabel
+ Left = 9
+ Top = 12
+ Width = 99
+ Caption = 'Mostrar asientos de:'
+ end
+ inherited cxIntervalos: TcxLookupComboBox
+ Left = 114
+ Top = 9
+ Width = 305
+ end
+ end
+ inherited DADataSource: TDADataSource [2]
+ end
+ inherited ActionList1: TActionList [3]
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter [4]
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited dxPSEngineController1: TdxPSEngineController [5]
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStylePunteado: TcxStyle
+ AssignedValues = [svTextColor]
+ TextColor = clHighlight
+ end
+ object cxStyleCierre: TcxStyle
+ AssignedValues = [svFont, svTextColor]
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ TextColor = clActiveCaption
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000013A4944415478DA
+ 63FCFFFF3F03258091620340C4FABD97B19A12E8ACCB884F0E64392343C8AAFF
+ EB333519029C7430146DD87705ABB8914716C3795E4786FFAB4319F11A005278
+ 6EC734E20D48DFFC13AE68821B1383B57F3EC3D18D13190A76FD838BCFF465C7
+ EF823F7FFF317CFFF19BE1F79FBF0C2EE1250C7B56F6307072B03270B2B392E6
+ 825AB3EF0C7EF1550C9B16B631349FE224EC021F7B2DB0CDDF7EFC02D3BF802E
+ 8848AF675831B391810BE8022E0E36B84BB01AE06CAECA50B20F115099AA6F18
+ 920A5A19E64DA866987E5B04236C300CB0D49707DBFCF5FB2F30FEFDFB2F436E
+ 5537C3E4B652066E2E36062E4E36B84B406183618081BA145CF337200681A2BA
+ 3E86BEA62206561666144340618361405317667CE30328066055C12387607F79
+ 845509C4005C00D9E0356158D581F302A5B911006305C5E10A57158000000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000DD4944415478DA
+ 63FCFFFF3F032580716819F062EFCEFF1F776F6650EF98C248B201771A4AFFFF
+ B873834167C966466471A20CB816EBF7FF1F501DBA66A20CB8EC63FDFF3F3333
+ 83DEC6438CD8E4F11A00B2F9C7F54B0C46671E30E2520337E0E59C89FF1F77D6
+ 3128CE59C7206CEFCC08F2F3BB7993192496EE6190B3B521C2804533FF3F28CB
+ 60E0D0D06110296966789212C82050D8C8A05E5E87533386176E6646FFFFB07E
+ 1903B3802003B3842C83E1818B78356318F0F2E2A5FF0FDCF5C16CA1991B1854
+ FDFD49330004AE64C7FF67770B224A33C158181A060000C2907AE143E74E3500
+ 00000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 160
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Asientos/Cliente/uViewAsientos.pas b/Modulos/Asientos/Cliente/uViewAsientos.pas
new file mode 100644
index 0000000..9d61200
--- /dev/null
+++ b/Modulos/Asientos/Cliente/uViewAsientos.pas
@@ -0,0 +1,232 @@
+unit uViewAsientos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, uBizAsientos, uBizCuentas, ActnList,
+ Menus, cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
+ cxDBLookupEdit, cxDBLookupComboBox, uCustomView, uViewBase,
+ uListaIntervalos;
+
+type
+ IViewAsientos = interface(IViewGrid)
+ ['{D28EF069-4ADB-40B5-A117-D07C6CFC4A6F}']
+ function GetAsientos: IBizAsiento;
+ procedure SetAsientos(const Value: IBizAsiento);
+ property Asientos: IBizAsiento read GetAsientos write SetAsientos;
+ end;
+
+ TfrViewAsientos = class(TfrViewGrid, IViewAsientos)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewCODIGOCUENTA: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewIMPORTE: TcxGridDBColumn;
+ cxGridViewFORMAPAGO: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewCODIGOPAGO: TcxGridDBColumn;
+ cxGridViewFECHAASIENTO: TcxGridDBColumn;
+ cxGridViewIMPORTEANT: TcxGridDBColumn;
+ cxGridViewIMPORTEPOS: TcxGridDBColumn;
+ cxGridViewPUNTEADO: TcxGridDBColumn;
+ cxGridViewTIPOASIENTO: TcxGridDBColumn;
+ frListaIntervalos: TfrListaIntervalos;
+ cxStylePunteado: TcxStyle;
+ cxStyleCierre: TcxStyle;
+ procedure cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid;
+ ALevel: TcxGridLevel);
+ procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView;
+ ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
+ var ADone: Boolean);
+ procedure cxGridViewPUNTEADOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure cxGridViewStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ private
+ protected
+ FAsientos: IBizAsiento;
+ function GetAsientos: IBizAsiento; virtual;
+ procedure SetAsientos(const Value: IBizAsiento); virtual;
+ public
+ property Asientos: IBizAsiento read GetAsientos write SetAsientos;
+ end;
+
+var
+ frViewAsientos: TfrViewAsientos;
+
+implementation
+
+uses uDataModuleAsientos, uDataModuleCuentas, schAsientosClient_Intf;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewAsientos *******************************
+}
+function TfrViewAsientos.GetAsientos: IBizAsiento;
+begin
+ Result := FAsientos;
+end;
+
+procedure TfrViewAsientos.SetAsientos(const Value: IBizAsiento);
+var
+ Nivel: TcxGridLevel;
+ auxb: Boolean;
+
+begin
+ FAsientos := Value;
+
+ if Assigned(FAsientos) then
+ begin
+ DADataSource.DataTable := FAsientos.DataTable;
+
+ if FAsientos.Cuenta.RecordCount > 0 then
+ begin
+ with FAsientos.Cuenta do
+ begin
+ First;
+ auxb:=True;
+ while not EOF do
+ begin
+ if auxb
+ //Ponemos la primera cuenta en el nivel ya creado
+ then Nivel := cxGridLevel
+ //Creamos un nuevo nivel
+ else Nivel := cxGrid.Levels.Add;
+
+ Nivel.Caption := NOMBRE;
+ Nivel.Tag := CODIGO;
+ Next;
+ auxb := False;
+ end;
+ First;
+ end;
+ end
+ else cxGrid.RootLevelOptions.DetailTabsPosition := dtpNone;
+
+ FAsientos.Intervalo := frListaIntervalos.Intervalo;
+ end;
+end;
+
+
+procedure TfrViewAsientos.cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewAsientos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+
+ inherited;
+ FAsientos.Cuenta.LocalizarCuenta(cxGrid.Levels.Items[ALevel.Index].Tag);
+ cxGrid.Levels.Items[ALevel.Index].GridView := cxGridView;
+ Screen.Cursor := ACursor;
+end;
+
+procedure TfrViewAsientos.cxGridViewCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ inherited;
+{
+ if not AViewInfo.Selected then
+ begin
+ //Apariencia de los cierres
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AsientosTIPOASIENTO).Index;
+ if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = CTE_CIERRE then
+ begin
+ ACanvas.Canvas.Font.Color := $000000CC;
+ ACanvas.Canvas.Brush.Color := $00CAEEFF;
+ end
+ else
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AsientosPUNTEADO).Index;
+ if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = IntToStr(CTE_PUNTEADO) then
+ begin
+ ACanvas.Canvas.Font.Color := $00CAD1D2;
+ end;
+ end;
+ end; }
+end;
+
+procedure TfrViewAsientos.cxGridViewPUNTEADOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ IndiceCol: Integer;
+ R : TRect;
+begin
+ inherited;
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('PUNTEADO').Index;
+ if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = IntToStr(CTE_PUNTEADO) then
+ begin
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 1);
+ ADone := True;
+ end
+ else
+ begin
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+// ACanvas.DrawImage(PngImageList, R.Left, R.Top, 1);
+ ADone := True;
+ end;
+end;
+
+procedure TfrViewAsientos.cxGridViewStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol: Integer;
+ ASituacion: string;
+begin
+ inherited;
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AsientosPUNTEADO).Index;
+ ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if ASituacion = IntToStr(CTE_PUNTEADO) then
+ AStyle := cxStylePunteado;
+
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AsientosTIPOASIENTO).Index;
+ ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if ASituacion = CTE_CIERRE then
+ AStyle := cxStyleCierre;
+
+ end;
+end;
+
+end.
diff --git a/Modulos/Asientos/Reglas/schAsientosClient_Intf.pas b/Modulos/Asientos/Reglas/schAsientosClient_Intf.pas
new file mode 100644
index 0000000..1bb6cb4
--- /dev/null
+++ b/Modulos/Asientos/Reglas/schAsientosClient_Intf.pas
@@ -0,0 +1,455 @@
+unit schAsientosClient_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_darPenultimoCierre = '{36EB92A1-A369-46F7-AA43-46939BBEA6E0}';
+ RID_Asientos = '{1CF7245D-9E9B-494C-95B3-595DCBA9FAEF}';
+ RID_darSumaAcumulada = '{6B4FEB53-EE31-4ABA-BEFE-E8E9A52DB210}';
+
+ { Data table names }
+ nme_darPenultimoCierre = 'darPenultimoCierre';
+ nme_Asientos = 'Asientos';
+ nme_darSumaAcumulada = 'darSumaAcumulada';
+
+ { darPenultimoCierre fields }
+ fld_darPenultimoCierreCODIGO = 'CODIGO';
+ fld_darPenultimoCierreFECHAASIENTO = 'FECHAASIENTO';
+ fld_darPenultimoCierreDESCRIPCION = 'DESCRIPCION';
+
+ { darPenultimoCierre field indexes }
+ idx_darPenultimoCierreCODIGO = 0;
+ idx_darPenultimoCierreFECHAASIENTO = 1;
+ idx_darPenultimoCierreDESCRIPCION = 2;
+
+ { Asientos fields }
+ fld_AsientosCODIGO = 'CODIGO';
+ fld_AsientosCODIGOCUENTA = 'CODIGOCUENTA';
+ fld_AsientosTIPOASIENTO = 'TIPOASIENTO';
+ fld_AsientosPUNTEADO = 'PUNTEADO';
+ fld_AsientosFECHAALTA = 'FECHAALTA';
+ fld_AsientosUSUARIO = 'USUARIO';
+ fld_AsientosFECHAASIENTO = 'FECHAASIENTO';
+ fld_AsientosFORMAPAGO = 'FORMAPAGO';
+ fld_AsientosDESCRIPCION = 'DESCRIPCION';
+ fld_AsientosCODIGOPAGO = 'CODIGOPAGO';
+ fld_AsientosIMPORTE = 'IMPORTE';
+ fld_AsientosIMPORTEANT = 'IMPORTEANT';
+ fld_AsientosIMPORTEPOS = 'IMPORTEPOS';
+
+ { Asientos field indexes }
+ idx_AsientosCODIGO = 0;
+ idx_AsientosCODIGOCUENTA = 1;
+ idx_AsientosTIPOASIENTO = 2;
+ idx_AsientosPUNTEADO = 3;
+ idx_AsientosFECHAALTA = 4;
+ idx_AsientosUSUARIO = 5;
+ idx_AsientosFECHAASIENTO = 6;
+ idx_AsientosFORMAPAGO = 7;
+ idx_AsientosDESCRIPCION = 8;
+ idx_AsientosCODIGOPAGO = 9;
+ idx_AsientosIMPORTE = 10;
+ idx_AsientosIMPORTEANT = 11;
+ idx_AsientosIMPORTEPOS = 12;
+
+ { darSumaAcumulada fields }
+ fld_darSumaAcumuladaSUMA = 'SUMA';
+
+ { darSumaAcumulada field indexes }
+ idx_darSumaAcumuladaSUMA = 0;
+
+type
+ { IdarPenultimoCierre }
+ IdarPenultimoCierre = interface(IDAStronglyTypedDataTable)
+ ['{B0ABEE53-7101-4F92-8485-D1369C557E44}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAASIENTOValue: DateTime;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAASIENTO: DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ end;
+
+ { TdarPenultimoCierreDataTableRules }
+ TdarPenultimoCierreDataTableRules = class(TDADataTableRules, IdarPenultimoCierre)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAASIENTOValue: DateTime; virtual;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAASIENTO: DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAsientos }
+ IAsientos = interface(IDAStronglyTypedDataTable)
+ ['{AFFFEEE0-A246-4551-9F4C-6105DA8CEB07}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetCODIGOCUENTAValue: Integer;
+ procedure SetCODIGOCUENTAValue(const aValue: Integer);
+ function GetTIPOASIENTOValue: String;
+ procedure SetTIPOASIENTOValue(const aValue: String);
+ function GetPUNTEADOValue: Integer;
+ procedure SetPUNTEADOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAASIENTOValue: DateTime;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCODIGOPAGOValue: Integer;
+ procedure SetCODIGOPAGOValue(const aValue: Integer);
+ function GetIMPORTEValue: Currency;
+ procedure SetIMPORTEValue(const aValue: Currency);
+ function GetIMPORTEANTValue: Currency;
+ procedure SetIMPORTEANTValue(const aValue: Currency);
+ function GetIMPORTEPOSValue: Currency;
+ procedure SetIMPORTEPOSValue(const aValue: Currency);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOCUENTA: Integer read GetCODIGOCUENTAValue write SetCODIGOCUENTAValue;
+ property TIPOASIENTO: String read GetTIPOASIENTOValue write SetTIPOASIENTOValue;
+ property PUNTEADO: Integer read GetPUNTEADOValue write SetPUNTEADOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAASIENTO: DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CODIGOPAGO: Integer read GetCODIGOPAGOValue write SetCODIGOPAGOValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property IMPORTEANT: Currency read GetIMPORTEANTValue write SetIMPORTEANTValue;
+ property IMPORTEPOS: Currency read GetIMPORTEPOSValue write SetIMPORTEPOSValue;
+ end;
+
+ { TAsientosDataTableRules }
+ TAsientosDataTableRules = class(TDADataTableRules, IAsientos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOCUENTAValue: Integer; virtual;
+ procedure SetCODIGOCUENTAValue(const aValue: Integer); virtual;
+ function GetTIPOASIENTOValue: String; virtual;
+ procedure SetTIPOASIENTOValue(const aValue: String); virtual;
+ function GetPUNTEADOValue: Integer; virtual;
+ procedure SetPUNTEADOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAASIENTOValue: DateTime; virtual;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCODIGOPAGOValue: Integer; virtual;
+ procedure SetCODIGOPAGOValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetIMPORTEANTValue: Currency; virtual;
+ procedure SetIMPORTEANTValue(const aValue: Currency); virtual;
+ function GetIMPORTEPOSValue: Currency; virtual;
+ procedure SetIMPORTEPOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOCUENTA: Integer read GetCODIGOCUENTAValue write SetCODIGOCUENTAValue;
+ property TIPOASIENTO: String read GetTIPOASIENTOValue write SetTIPOASIENTOValue;
+ property PUNTEADO: Integer read GetPUNTEADOValue write SetPUNTEADOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAASIENTO: DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CODIGOPAGO: Integer read GetCODIGOPAGOValue write SetCODIGOPAGOValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property IMPORTEANT: Currency read GetIMPORTEANTValue write SetIMPORTEANTValue;
+ property IMPORTEPOS: Currency read GetIMPORTEPOSValue write SetIMPORTEPOSValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IdarSumaAcumulada }
+ IdarSumaAcumulada = interface(IDAStronglyTypedDataTable)
+ ['{7C3C1280-C621-442C-99E5-9286F90974F2}']
+ { Property getters and setters }
+ function GetSUMAValue: Float;
+ procedure SetSUMAValue(const aValue: Float);
+
+
+ { Properties }
+ property SUMA: Float read GetSUMAValue write SetSUMAValue;
+ end;
+
+ { TdarSumaAcumuladaDataTableRules }
+ TdarSumaAcumuladaDataTableRules = class(TDADataTableRules, IdarSumaAcumulada)
+ private
+ protected
+ { Property getters and setters }
+ function GetSUMAValue: Float; virtual;
+ procedure SetSUMAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property SUMA: Float read GetSUMAValue write SetSUMAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TdarPenultimoCierreDataTableRules }
+constructor TdarPenultimoCierreDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TdarPenultimoCierreDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarPenultimoCierreDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_darPenultimoCierreCODIGO].AsInteger;
+end;
+
+procedure TdarPenultimoCierreDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_darPenultimoCierreCODIGO].AsInteger := aValue;
+end;
+
+function TdarPenultimoCierreDataTableRules.GetFECHAASIENTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_darPenultimoCierreFECHAASIENTO].AsDateTime;
+end;
+
+procedure TdarPenultimoCierreDataTableRules.SetFECHAASIENTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_darPenultimoCierreFECHAASIENTO].AsDateTime := aValue;
+end;
+
+function TdarPenultimoCierreDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_darPenultimoCierreDESCRIPCION].AsString;
+end;
+
+procedure TdarPenultimoCierreDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_darPenultimoCierreDESCRIPCION].AsString := aValue;
+end;
+
+
+{ TAsientosDataTableRules }
+constructor TAsientosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TAsientosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAsientosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AsientosCODIGO].AsInteger;
+end;
+
+procedure TAsientosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AsientosCODIGO].AsInteger := aValue;
+end;
+
+function TAsientosDataTableRules.GetCODIGOCUENTAValue: Integer;
+begin
+ result := DataTable.Fields[idx_AsientosCODIGOCUENTA].AsInteger;
+end;
+
+procedure TAsientosDataTableRules.SetCODIGOCUENTAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AsientosCODIGOCUENTA].AsInteger := aValue;
+end;
+
+function TAsientosDataTableRules.GetTIPOASIENTOValue: String;
+begin
+ result := DataTable.Fields[idx_AsientosTIPOASIENTO].AsString;
+end;
+
+procedure TAsientosDataTableRules.SetTIPOASIENTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AsientosTIPOASIENTO].AsString := aValue;
+end;
+
+function TAsientosDataTableRules.GetPUNTEADOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AsientosPUNTEADO].AsInteger;
+end;
+
+procedure TAsientosDataTableRules.SetPUNTEADOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AsientosPUNTEADO].AsInteger := aValue;
+end;
+
+function TAsientosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_AsientosFECHAALTA].AsDateTime;
+end;
+
+procedure TAsientosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_AsientosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TAsientosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_AsientosUSUARIO].AsString;
+end;
+
+procedure TAsientosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AsientosUSUARIO].AsString := aValue;
+end;
+
+function TAsientosDataTableRules.GetFECHAASIENTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_AsientosFECHAASIENTO].AsDateTime;
+end;
+
+procedure TAsientosDataTableRules.SetFECHAASIENTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_AsientosFECHAASIENTO].AsDateTime := aValue;
+end;
+
+function TAsientosDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_AsientosFORMAPAGO].AsString;
+end;
+
+procedure TAsientosDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_AsientosFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TAsientosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_AsientosDESCRIPCION].AsString;
+end;
+
+procedure TAsientosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_AsientosDESCRIPCION].AsString := aValue;
+end;
+
+function TAsientosDataTableRules.GetCODIGOPAGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_AsientosCODIGOPAGO].AsInteger;
+end;
+
+procedure TAsientosDataTableRules.SetCODIGOPAGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_AsientosCODIGOPAGO].AsInteger := aValue;
+end;
+
+function TAsientosDataTableRules.GetIMPORTEValue: Currency;
+begin
+ result := DataTable.Fields[idx_AsientosIMPORTE].AsCurrency;
+end;
+
+procedure TAsientosDataTableRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AsientosIMPORTE].AsCurrency := aValue;
+end;
+
+function TAsientosDataTableRules.GetIMPORTEANTValue: Currency;
+begin
+ result := DataTable.Fields[idx_AsientosIMPORTEANT].AsCurrency;
+end;
+
+procedure TAsientosDataTableRules.SetIMPORTEANTValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AsientosIMPORTEANT].AsCurrency := aValue;
+end;
+
+function TAsientosDataTableRules.GetIMPORTEPOSValue: Currency;
+begin
+ result := DataTable.Fields[idx_AsientosIMPORTEPOS].AsCurrency;
+end;
+
+procedure TAsientosDataTableRules.SetIMPORTEPOSValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_AsientosIMPORTEPOS].AsCurrency := aValue;
+end;
+
+
+{ TdarSumaAcumuladaDataTableRules }
+constructor TdarSumaAcumuladaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TdarSumaAcumuladaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarSumaAcumuladaDataTableRules.GetSUMAValue: Float;
+begin
+ result := DataTable.Fields[idx_darSumaAcumuladaSUMA].AsFloat;
+end;
+
+procedure TdarSumaAcumuladaDataTableRules.SetSUMAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_darSumaAcumuladaSUMA].AsFloat := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_darPenultimoCierre, TdarPenultimoCierreDataTableRules);
+ RegisterDataTableRules(RID_Asientos, TAsientosDataTableRules);
+ RegisterDataTableRules(RID_darSumaAcumulada, TdarSumaAcumuladaDataTableRules);
+
+end.
diff --git a/Modulos/Asientos/Reglas/schAsientosServer_Intf.pas b/Modulos/Asientos/Reglas/schAsientosServer_Intf.pas
new file mode 100644
index 0000000..fd40f46
--- /dev/null
+++ b/Modulos/Asientos/Reglas/schAsientosServer_Intf.pas
@@ -0,0 +1,505 @@
+unit schAsientosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schAsientosClient_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_darPenultimoCierreDelta = '{D3C1CAE3-F142-4BFA-B8D4-B1F32E9DEB2E}';
+ RID_AsientosDelta = '{0D27F555-A7BA-4304-B9C3-F7F79F39934E}';
+ RID_darSumaAcumuladaDelta = '{80563683-11A2-4648-845B-90F578B8B434}';
+
+type
+ { IdarPenultimoCierreDelta }
+ IdarPenultimoCierreDelta = interface(IdarPenultimoCierre)
+ ['{D3C1CAE3-F142-4BFA-B8D4-B1F32E9DEB2E}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAASIENTOValue : DateTime;
+ function GetOldDESCRIPCIONValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAASIENTO : DateTime read GetOldFECHAASIENTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ end;
+
+ { TdarPenultimoCierreBusinessProcessorRules }
+ TdarPenultimoCierreBusinessProcessorRules = class(TDABusinessProcessorRules, IdarPenultimoCierre, IdarPenultimoCierreDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAASIENTOValue: DateTime; virtual;
+ function GetOldFECHAASIENTOValue: DateTime; virtual;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAASIENTO : DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property OldFECHAASIENTO : DateTime read GetOldFECHAASIENTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IAsientosDelta }
+ IAsientosDelta = interface(IAsientos)
+ ['{0D27F555-A7BA-4304-B9C3-F7F79F39934E}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldCODIGOCUENTAValue : Integer;
+ function GetOldTIPOASIENTOValue : String;
+ function GetOldPUNTEADOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAASIENTOValue : DateTime;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCODIGOPAGOValue : Integer;
+ function GetOldIMPORTEValue : Currency;
+ function GetOldIMPORTEANTValue : Currency;
+ function GetOldIMPORTEPOSValue : Currency;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldCODIGOCUENTA : Integer read GetOldCODIGOCUENTAValue;
+ property OldTIPOASIENTO : String read GetOldTIPOASIENTOValue;
+ property OldPUNTEADO : Integer read GetOldPUNTEADOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAASIENTO : DateTime read GetOldFECHAASIENTOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCODIGOPAGO : Integer read GetOldCODIGOPAGOValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property OldIMPORTEANT : Currency read GetOldIMPORTEANTValue;
+ property OldIMPORTEPOS : Currency read GetOldIMPORTEPOSValue;
+ end;
+
+ { TAsientosBusinessProcessorRules }
+ TAsientosBusinessProcessorRules = class(TDABusinessProcessorRules, IAsientos, IAsientosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOCUENTAValue: Integer; virtual;
+ function GetOldCODIGOCUENTAValue: Integer; virtual;
+ procedure SetCODIGOCUENTAValue(const aValue: Integer); virtual;
+ function GetTIPOASIENTOValue: String; virtual;
+ function GetOldTIPOASIENTOValue: String; virtual;
+ procedure SetTIPOASIENTOValue(const aValue: String); virtual;
+ function GetPUNTEADOValue: Integer; virtual;
+ function GetOldPUNTEADOValue: Integer; virtual;
+ procedure SetPUNTEADOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAASIENTOValue: DateTime; virtual;
+ function GetOldFECHAASIENTOValue: DateTime; virtual;
+ procedure SetFECHAASIENTOValue(const aValue: DateTime); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCODIGOPAGOValue: Integer; virtual;
+ function GetOldCODIGOPAGOValue: Integer; virtual;
+ procedure SetCODIGOPAGOValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ function GetOldIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetIMPORTEANTValue: Currency; virtual;
+ function GetOldIMPORTEANTValue: Currency; virtual;
+ procedure SetIMPORTEANTValue(const aValue: Currency); virtual;
+ function GetIMPORTEPOSValue: Currency; virtual;
+ function GetOldIMPORTEPOSValue: Currency; virtual;
+ procedure SetIMPORTEPOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property CODIGOCUENTA : Integer read GetCODIGOCUENTAValue write SetCODIGOCUENTAValue;
+ property OldCODIGOCUENTA : Integer read GetOldCODIGOCUENTAValue;
+ property TIPOASIENTO : String read GetTIPOASIENTOValue write SetTIPOASIENTOValue;
+ property OldTIPOASIENTO : String read GetOldTIPOASIENTOValue;
+ property PUNTEADO : Integer read GetPUNTEADOValue write SetPUNTEADOValue;
+ property OldPUNTEADO : Integer read GetOldPUNTEADOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAASIENTO : DateTime read GetFECHAASIENTOValue write SetFECHAASIENTOValue;
+ property OldFECHAASIENTO : DateTime read GetOldFECHAASIENTOValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CODIGOPAGO : Integer read GetCODIGOPAGOValue write SetCODIGOPAGOValue;
+ property OldCODIGOPAGO : Integer read GetOldCODIGOPAGOValue;
+ property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property IMPORTEANT : Currency read GetIMPORTEANTValue write SetIMPORTEANTValue;
+ property OldIMPORTEANT : Currency read GetOldIMPORTEANTValue;
+ property IMPORTEPOS : Currency read GetIMPORTEPOSValue write SetIMPORTEPOSValue;
+ property OldIMPORTEPOS : Currency read GetOldIMPORTEPOSValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IdarSumaAcumuladaDelta }
+ IdarSumaAcumuladaDelta = interface(IdarSumaAcumulada)
+ ['{80563683-11A2-4648-845B-90F578B8B434}']
+ { Property getters and setters }
+ function GetOldSUMAValue : Float;
+
+ { Properties }
+ property OldSUMA : Float read GetOldSUMAValue;
+ end;
+
+ { TdarSumaAcumuladaBusinessProcessorRules }
+ TdarSumaAcumuladaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarSumaAcumulada, IdarSumaAcumuladaDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetSUMAValue: Float; virtual;
+ function GetOldSUMAValue: Float; virtual;
+ procedure SetSUMAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property SUMA : Float read GetSUMAValue write SetSUMAValue;
+ property OldSUMA : Float read GetOldSUMAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TdarPenultimoCierreBusinessProcessorRules }
+constructor TdarPenultimoCierreBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TdarPenultimoCierreBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreCODIGO];
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_darPenultimoCierreCODIGO];
+end;
+
+procedure TdarPenultimoCierreBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreCODIGO] := aValue;
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetFECHAASIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreFECHAASIENTO];
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetOldFECHAASIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_darPenultimoCierreFECHAASIENTO];
+end;
+
+procedure TdarPenultimoCierreBusinessProcessorRules.SetFECHAASIENTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreFECHAASIENTO] := aValue;
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreDESCRIPCION];
+end;
+
+function TdarPenultimoCierreBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_darPenultimoCierreDESCRIPCION];
+end;
+
+procedure TdarPenultimoCierreBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_darPenultimoCierreDESCRIPCION] := aValue;
+end;
+
+
+{ TAsientosBusinessProcessorRules }
+constructor TAsientosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TAsientosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TAsientosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosCODIGO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetCODIGOCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGOCUENTA];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldCODIGOCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosCODIGOCUENTA];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetCODIGOCUENTAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGOCUENTA] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetTIPOASIENTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosTIPOASIENTO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldTIPOASIENTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosTIPOASIENTO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetTIPOASIENTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosTIPOASIENTO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetPUNTEADOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosPUNTEADO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldPUNTEADOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosPUNTEADO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetPUNTEADOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosPUNTEADO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFECHAALTA];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosFECHAALTA];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFECHAALTA] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosUSUARIO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosUSUARIO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosUSUARIO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetFECHAASIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFECHAASIENTO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldFECHAASIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosFECHAASIENTO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetFECHAASIENTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFECHAASIENTO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFORMAPAGO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosFORMAPAGO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosFORMAPAGO] := aValue.Text;
+end;
+
+function TAsientosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosDESCRIPCION];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosDESCRIPCION];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosDESCRIPCION] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetCODIGOPAGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGOPAGO];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldCODIGOPAGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosCODIGOPAGO];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetCODIGOPAGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosCODIGOPAGO] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTE];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosIMPORTE];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTE] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetIMPORTEANTValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTEANT];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldIMPORTEANTValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosIMPORTEANT];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetIMPORTEANTValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTEANT] := aValue;
+end;
+
+function TAsientosBusinessProcessorRules.GetIMPORTEPOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTEPOS];
+end;
+
+function TAsientosBusinessProcessorRules.GetOldIMPORTEPOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_AsientosIMPORTEPOS];
+end;
+
+procedure TAsientosBusinessProcessorRules.SetIMPORTEPOSValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_AsientosIMPORTEPOS] := aValue;
+end;
+
+
+{ TdarSumaAcumuladaBusinessProcessorRules }
+constructor TdarSumaAcumuladaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TdarSumaAcumuladaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarSumaAcumuladaBusinessProcessorRules.GetSUMAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_darSumaAcumuladaSUMA];
+end;
+
+function TdarSumaAcumuladaBusinessProcessorRules.GetOldSUMAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_darSumaAcumuladaSUMA];
+end;
+
+procedure TdarSumaAcumuladaBusinessProcessorRules.SetSUMAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_darSumaAcumuladaSUMA] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_darPenultimoCierreDelta, TdarPenultimoCierreBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_AsientosDelta, TAsientosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_darSumaAcumuladaDelta, TdarSumaAcumuladaBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Asientos/Reglas/uBizAsientos.pas b/Modulos/Asientos/Reglas/uBizAsientos.pas
new file mode 100644
index 0000000..3dd545a
--- /dev/null
+++ b/Modulos/Asientos/Reglas/uBizAsientos.pas
@@ -0,0 +1,542 @@
+unit uBizAsientos;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schAsientosClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls, uBizCuentas,
+ uBizIntervalos;
+
+const
+ CTE_PUNTEADO = 1;
+ CTE_NOPUNTEADO = 0;
+ CTE_ASIENTO = 'A';
+ CTE_CIERRE = 'C';
+
+type
+ TDatosAsiento = class(TObject)
+ public
+ CodigoCuenta : Integer;
+ FechaAsiento : TDateTime;
+ CodigoPago : Integer;
+ Descripcion : String;
+ Importe: Currency;
+ end;
+
+ IBizAsiento = interface(IAsientos)
+ ['{4585F549-EBAF-454C-826F-A8D527AD585E}']
+ function getCuenta: IBizCuenta;
+ property Cuenta: IBizCuenta read getCuenta;
+
+ procedure setIntervalo(const Value: IBizIntervalos);
+ function getIntervalo: IBizIntervalos;
+ property Intervalo: IBizIntervalos read getIntervalo write setIntervalo;
+
+ procedure Show;
+ function ShowForSelect : TModalResult;
+
+ procedure cerrarCaja;
+ procedure eliminarCierreCaja;
+ procedure puntearAsiento;
+ end;
+
+ TBizAsientoDataTableRules = class(TAsientosDataTableRules, IBizAsiento,
+ IApplyUpdateFailedException, ISelectedRowList)
+ private
+ FCuenta : IBizCuenta;
+ FIntervalo: IBizIntervalos;
+ FSumaAcumulada: Currency;
+
+ FSelectedRows : TSelectedRowList;
+ procedure ShowToSelect;
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+
+ function puntearAsientos(const ValorPunteo: Integer): TDateTime;
+ procedure recalcular(const DesdeFinal: Boolean);
+ procedure CalcularImportes;
+ function anadirCierre(FechaCierre: TDateTime): Boolean;
+ function eliminarCierre: Boolean;
+
+ function getCuenta: IBizCuenta;
+ function getIntervalo: IBizIntervalos;
+ procedure setIntervalo(const Value: IBizIntervalos);
+ procedure OnCuentaChanged(Sender : TObject);
+ procedure OnIntervaloChanged(Sender : TObject);
+
+ procedure refrescarVista;
+
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure AfterOpen(Sender: TDADataTable); override;
+
+ public
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ property Cuenta: IBizCuenta read getCuenta;
+ property Intervalo: IBizIntervalos read getIntervalo write setIntervalo;
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+// procedure ShowAll; virtual;
+// procedure Preview; virtual;
+ function ShowForSelect : TModalResult; virtual;
+
+ procedure cerrarCaja;
+ procedure eliminarCierreCaja;
+ procedure puntearAsiento;
+ end;
+
+ procedure ValidarAsiento (const AAsiento : IBizAsiento);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
+ uEditorUtils, uDataModuleAsientos, Variants, Forms, uCerrarCaja,
+ DateUtils, uDataModuleCuentas;
+
+
+procedure ValidarAsiento (const AAsiento : IBizAsiento);
+begin
+ if (AAsiento.TIPOASIENTO = CTE_ASIENTO) then
+ if (AAsiento.FECHAASIENTO <= AAsiento.Cuenta.ULTIMOCIERRE) then
+ raise Exception.Create('El asiento no puede tener fecha anterior al último cierre');
+end;
+
+
+{ TBizAsientoDataTableRules }
+
+{
+************************** TBizAsientoDataTableRules **************************
+}
+
+procedure TBizAsientoDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ TIPOASIENTO := CTE_ASIENTO;
+ FECHAASIENTO := Date;
+ PUNTEADO := CTE_NOPUNTEADO;
+ CODIGOCUENTA := Cuenta.CODIGO;
+ IMPORTE := 0;
+end;
+
+procedure TBizAsientoDataTableRules.Show;
+begin
+ if PUNTEADO = CTE_PUNTEADO then
+ begin
+ raise Exception.Create('No se puede modificar este asiento porque está punteado');
+ exit;
+ end;
+
+ ShowEditor(IBizAsiento, Self, etItem);
+end;
+
+{procedure TBizAsientoDataTableRules.Preview;
+begin
+// dmContactos.Preview;
+end;
+}
+procedure TBizAsientoDataTableRules.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este asiento porque tiene pagos asociados', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+function TBizAsientoDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizAsientoDataTableRules.ShowToSelect;
+begin
+//
+end;
+
+constructor TBizAsientoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FSumaAcumulada := 0;
+ FCuenta := dmCuentas.GetItems;
+ FCuenta.OnCuentaChanged := OnCuentaChanged;
+
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+ aDataTable.AfterOpen := AfterOpen;
+end;
+
+destructor TBizAsientoDataTableRules.Destroy;
+begin
+ FCuenta := Nil;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+{procedure TBizAsientoDataTableRules.ShowAll;
+begin
+// ShowEditor(IBizProveedor, Self, etItems);
+end;
+}
+function TBizAsientoDataTableRules.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizAsiento, Self, etItems);
+end;
+
+procedure TBizAsientoDataTableRules.BeforeApplyUpdates(
+ Sender: TDADataTable; const Delta: IDADelta);
+var
+ i: Integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarAsiento(Self);
+// ctDelete :
+ end;
+end;
+
+procedure TBizAsientoDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('Nombre', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar una descripción', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizAsientoDataTableRules.BeforeDelete(Sender: TDADataTable);
+begin
+ //Si es un CIERRE lo que se elimina, debemos despuntear los asientos que comprende
+ if TIPOASIENTO = CTE_CIERRE then
+ begin
+ puntearAsientos(CTE_NOPUNTEADO);
+ dmAsientos.AsignarPunteado(Cuenta.CODIGO, FECHAASIENTO, Cuenta.PENULTIMOCIERRE, CTE_NOPUNTEADO);
+ end;
+
+ inherited;
+end;
+
+procedure TBizAsientoDataTableRules.CalcularImportes;
+var
+ varImporteAnt: double;
+ varImportePos: double;
+ ABookmark: Pointer;
+begin
+ DataTable.DisableControls;
+ DataTable.DisableEventHandlers;
+
+ try
+ ABookmark := DataTable.GetBookMark;
+ DataTable.Next;
+ //Comprobamos si calculamos desde el principio o desde un asiento intermedio
+ if DataTable.EOF
+ then
+ varImportePos:= FSumaAcumulada
+ else
+ begin
+ varImportePos:= IMPORTEPOS;
+ DataTable.Prior;
+ end;
+
+ while not Self.DataTable.BOF do
+ begin
+ DataTable.edit;
+ IMPORTEANT := varImportePos;
+ IMPORTEPOS := IMPORTEANT + IMPORTE;
+ varImportePos := IMPORTEPOS;
+ DataTable.Post;
+ DataTable.Prior;
+ end;
+ finally
+ DataTable.GotoBookmark(Abookmark);
+ DataTable.FreeBookmark(ABookmark);
+ DataTable.EnableControls;
+ DataTable.EnableEventHandlers;
+ end;
+end;
+
+procedure TBizAsientoDataTableRules.AfterPost(Sender: TDADataTable);
+var
+ i, x: Integer;
+
+begin
+ //Comprobamos los cambios para solo recalcular en el caso de modificar el importe
+ //y añadir un asiento nuevo
+ for i:=0 to DataTable.Delta.count-1 do
+ if (DataTable.Delta.Changes[i].ChangeType = ctInsert) then
+ begin
+ //Este evento salta dos veces, cuando se hace el post en el cliente
+ //y cuando se hace el applyupdates. En el primer caso todavía no se
+ //ha asignado el codigo, de esta forma omitiremos el recalculo y
+ //optimizamos el número de llamadas al mismo
+ if CODIGO > 0 then recalcular(False);
+ end
+ else if (DataTable.Delta.Changes[i].ChangeType = ctUpdate) then
+ if (DataTable.Delta.Changes[i].OldValueByName[fld_AsientosIMPORTE] <> DataTable.Delta.Changes[i].NewValueByName[fld_AsientosIMPORTE]) then
+ recalcular(False);
+end;
+
+procedure TBizAsientoDataTableRules.AfterDelete(Sender: TDADataTable);
+begin
+ recalcular(False);
+end;
+
+procedure TBizAsientoDataTableRules.AfterOpen(Sender: TDADataTable);
+begin
+ recalcular(True);
+end;
+
+procedure TBizAsientoDataTableRules.recalcular(const DesdeFinal: Boolean);
+begin
+ if DesdeFinal then
+ DataTable.Last
+ else
+ begin
+ DataTable.Sort(['FECHAASIENTO', 'CODIGO'],[sdDescending, sdDescending]);
+
+ //En el caso de ser un CIERRE NUEVO el asiento introducido punteamos "localmente"
+ //todos los asientos anteriores al cierre y luego mandamos al servidor puntear en BD
+ if TIPOASIENTO = CTE_CIERRE then
+ begin
+ puntearAsientos(CTE_PUNTEADO);
+ dmAsientos.AsignarPunteado(Cuenta.CODIGO, FECHAASIENTO, Cuenta.PENULTIMOCIERRE, CTE_PUNTEADO);
+ end;
+ end;
+
+ CalcularImportes;
+end;
+
+procedure TBizAsientoDataTableRules.cerrarCaja;
+begin
+ with TfrCerrarCaja.Create(NIL) do
+ try
+ eFechaCierre.Date := FECHAASIENTO;
+ ShowModal;
+ if ModalResult = mrOk then
+ begin
+ if anadirCierre(eFechaCierre.Date) then
+ begin
+ DataTable.ApplyUpdates;
+ Cuenta.DataTable.ApplyUpdates;
+ end
+ else
+ begin
+ DataTable.CancelUpdates;
+ Cuenta.DataTable.CancelUpdates;
+ end;
+ end;
+ finally
+ Free;
+ end;
+end;
+
+function TBizAsientoDataTableRules.anadirCierre(FechaCierre: TDateTime): Boolean;
+begin
+ try
+ Result:= True;
+ //Insertamos un asiento de cierre
+ DataTable.Insert;
+ FECHAASIENTO := FechaCierre;
+ TIPOASIENTO := CTE_CIERRE;
+ PUNTEADO := CTE_PUNTEADO;
+ DESCRIPCION := 'CIERRE ' + DateToStr(FechaCierre);
+ DataTable.Post;
+ //Asignamos el nuevo último cierre de la cuenta activa
+ Cuenta.DataTable.Edit;
+ Cuenta.PENULTIMOCIERRE := Cuenta.ULTIMOCIERRE;
+ Cuenta.ULTIMOCIERRE := FechaCierre;
+ Cuenta.DataTable.Post;
+ except
+ on E: Exception do
+ Result:= False;
+ end;
+end;
+
+function TBizAsientoDataTableRules.getCuenta: IBizCuenta;
+begin
+ if (not FCuenta.DataTable.Active) then
+ FCuenta.DataTable.Active := True;
+
+ Result := FCuenta;
+end;
+
+function TBizAsientoDataTableRules.puntearAsientos(const ValorPunteo: Integer): TDateTime;
+//Punteamos con DisableEventHandlers con el fin de que no se produzcan deltas, ya
+//que la modificación de los registros se realizará por un servicio, esto es solo
+//para que los cambios se reflejen en local sin tener que refrescar.
+var
+ ABookmark : TBookmark;
+begin
+ Self.DataTable.DisableControls;
+ Self.DataTable.DisableEventHandlers;
+
+ try
+ //Saltamos el asiento de cierre
+ ABookmark := DataTable.GetBookMark;
+ DataTable.Next;
+ while (not DataTable.EOF)
+ and (TIPOASIENTO = CTE_ASIENTO) do
+ begin
+ DataTable.edit;
+ PUNTEADO := ValorPunteo;
+ DataTable.Post;
+ DataTable.Next;
+ end;
+ finally
+
+ //En el caso de salir del bucle por ser final de fichero y no por encontrar otro
+ //cierre restamos un día para incluir todos los asientos del final de la tabla
+ Result := FECHAASIENTO;
+ if (DataTable.EOF) then
+ Result:= Result - 1;
+
+ DataTable.GotoBookmark(ABookmark);
+ DataTable.FreeBookmark(ABookmark);
+ DataTable.EnableControls;
+ DataTable.EnableEventHandlers;
+ end;
+end;
+
+procedure TBizAsientoDataTableRules.eliminarCierreCaja;
+begin
+ if (FECHAASIENTO < Cuenta.ULTIMOCIERRE) then
+ raise Exception.Create('No puede eliminar un cierre anterior al último cierre de la cuenta');
+
+ if eliminarCierre then
+ begin
+ DataTable.ApplyUpdates;
+ Cuenta.DataTable.ApplyUpdates;
+ end
+ else
+ begin
+ DataTable.CancelUpdates;
+ Cuenta.DataTable.CancelUpdates;
+ end;
+end;
+
+function TBizAsientoDataTableRules.eliminarCierre: Boolean;
+begin
+ try
+ Result := True;
+ DataTable.Delete;
+
+ //Asignamos el nuevo último cierre de la cuenta activa
+ Cuenta.Edit;
+ Cuenta.ULTIMOCIERRE := Cuenta.PENULTIMOCIERRE;
+ Cuenta.PENULTIMOCIERRE := dmAsientos.darPenultimoCierre(Cuenta.CODIGO);
+ Cuenta.Post;
+ except
+ on E: Exception do
+ Result := False;
+ end;
+end;
+
+procedure TBizAsientoDataTableRules.refrescarVista;
+var
+ fechaini: TDateTime;
+ fechaFin: TDateTime;
+ i: integer;
+
+begin
+ if DataTable.Active then
+ DataTable.Active := False;
+
+ if (Intervalo.DIAS = 0) and (Intervalo.MESES = 0) and (Intervalo.ANOS = 0) then
+ begin
+ fechaIni := MaxDateTime;
+ fechaFin := MinDateTime;
+ FSumaAcumulada := 0;
+ end
+ else
+ begin
+ fechaini := date;
+ fechaFin := date;
+ fechafin := IncDay(fechafin,(-1)*Intervalo.DIAS);
+ for i:=1 to Intervalo.MESES do
+ fechafin := IncDay(fechafin,(-1)*DaysInMonth(fechafin));
+ for i:=1 to Intervalo.ANOS do
+ fechafin := IncDay(fechafin,(-1)*DaysInYear(fechafin));
+
+ FSumaAcumulada := dmAsientos.darSumaAcumulada(FCuenta.CODIGO, fechafin, MinDateTime);
+ end;
+
+ DataTable.Where.Clear;
+ DataTable.Where.OpenBraket;
+ DataTable.Where.AddText('ASIENTOS.CODIGOCUENTA' + ' = ' + IntToStr(FCuenta.CODIGO), False);
+ DataTable.Where.CloseBraket;
+
+ DataTable.Where.AddOperator(opAND);
+ DataTable.Where.OpenBraket;
+ DataTable.Where.AddText('ASIENTOS.FECHAASIENTO between ''' + FormatDateTime('dd.mm.yyyy', FechaFin) + ''' and ''' + FormatDateTime('dd.mm.yyyy', FechaIni) + '''', False);
+ DataTable.Where.CloseBraket;
+
+ DataTable.Active := True;
+end;
+
+procedure TBizAsientoDataTableRules.OnIntervaloChanged(Sender: TObject);
+begin
+refrescarVista;
+end;
+
+function TBizAsientoDataTableRules.getIntervalo: IBizIntervalos;
+begin
+ Result := FIntervalo;
+end;
+
+procedure TBizAsientoDataTableRules.setIntervalo(const Value: IBizIntervalos);
+begin
+ FIntervalo := Value;
+ if Assigned(FIntervalo) then
+ begin
+ Fintervalo.OnIntervaloChanged := OnIntervaloChanged;
+ refrescarVista;
+ end;
+end;
+
+procedure TBizAsientoDataTableRules.OnCuentaChanged(Sender: TObject);
+begin
+refrescarVista;
+end;
+
+procedure TBizAsientoDataTableRules.puntearAsiento;
+begin
+ if (FECHAASIENTO <= Cuenta.ULTIMOCIERRE) then
+ raise Exception.Create('No puede despuntear un asiento cerrado');
+
+ try
+ DataTable.Edit;
+ if PUNTEADO = CTE_PUNTEADO
+ then PUNTEADO := CTE_NOPUNTEADO
+ else PUNTEADO := CTE_PUNTEADO;
+ DataTable.Post;
+ DataTable.ApplyUpdates;
+ except
+ on E: Exception do
+ begin
+ DataTable.CancelUpdates;
+ raise Exception.Create(E.message);
+ end;
+ end;
+end;
+
+initialization
+ RegisterDataTableRules('BizAsiento', TBizAsientoDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Asientos/Servidor/srvAsientos_Impl.ddp b/Modulos/Asientos/Servidor/srvAsientos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Asientos/Servidor/srvAsientos_Impl.ddp differ
diff --git a/Modulos/Asientos/Servidor/srvAsientos_Impl.dfm b/Modulos/Asientos/Servidor/srvAsientos_Impl.dfm
new file mode 100644
index 0000000..29d8e98
--- /dev/null
+++ b/Modulos/Asientos/Servidor/srvAsientos_Impl.dfm
@@ -0,0 +1,403 @@
+object srvAsientos: TsrvAsientos
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schAsientos
+ ServiceAdapter = DABINAdapter
+ Left = 512
+ Top = 168
+ Height = 300
+ Width = 300
+ object schAsientos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'CODIGOCUENTA'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'SELECT CODIGO, FECHAASIENTO, DESCRIPCION'#10'FROM asientos'#10'WHERE COD' +
+ 'IGOCUENTA = :CODIGOCUENTA'#10'AND TIPOASIENTO = '#39'C'#39#10'ORDER BY FECHAAS' +
+ 'IENTO DESC, CODIGO DESC'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAASIENTO'
+ TableField = 'FECHAASIENTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end>
+ end>
+ Name = 'darPenultimoCierre'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAASIENTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'ASIENTOS'
+ SQL =
+ 'SELECT'#10'ASIENTOS.CODIGO, ASIENTOS.CODIGOCUENTA, ASIENTOS.TIPOASIE' +
+ 'NTO, ASIENTOS.PUNTEADO, ASIENTOS.FECHAALTA, ASIENTOS.USUARIO,'#10'AS' +
+ 'IENTOS.FECHAASIENTO, ASIENTOS.FORMAPAGO, ASIENTOS.DESCRIPCION, A' +
+ 'SIENTOS.CODIGOPAGO,'#10'ASIENTOS.IMPORTE, CAST(0 as FLOAT) as IMPORT' +
+ 'EANT, CAST(0 as FLOAT) as IMPORTEPOS'#10#10'FROM ASIENTOS'#10#10'order by AS' +
+ 'IENTOS.FECHAASIENTO DESC, ASIENTOS.CODIGO DESC'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'CODIGOCUENTA'
+ TableField = 'CODIGOCUENTA'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'IMPORTE'
+ TableField = 'IMPORTE'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOPAGO'
+ TableField = 'CODIGOPAGO'
+ end
+ item
+ DatasetField = 'FECHAASIENTO'
+ TableField = 'FECHAASIENTO'
+ end
+ item
+ DatasetField = 'PUNTEADO'
+ TableField = 'PUNTEADO'
+ end
+ item
+ DatasetField = 'TIPOASIENTO'
+ TableField = 'TIPOASIENTO'
+ end>
+ end>
+ Name = 'Asientos'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ASIENTOS'
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOASIENTO_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPOASIENTO'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo asiento'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTEADO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Punteado'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAASIENTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha asiento'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPAGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cuantia'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEANT'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'Importe anterior'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = True
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'Importe posterior'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = True
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOCUENTA'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAINI'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'select SUM(IMPORTE) as SUMA'#10'from ASIENTOS'#10'WHERE (CODIGOCUENTA = ' +
+ ':CODIGOCUENTA)'#10'AND (FECHAASIENTO between :FECHAFIN and :FECHAINI' +
+ ')'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'SUMA'
+ TableField = 'SUMA'
+ end>
+ end>
+ Name = 'darSumaAcumulada'
+ Fields = <
+ item
+ Name = 'SUMA'
+ 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 = <
+ item
+ Params = <
+ item
+ Name = 'VALORPUNTEADO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptUnknown
+ end
+ item
+ Name = 'CODIGOCUENTA'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptUnknown
+ end
+ item
+ Name = 'FECHAINI'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptUnknown
+ end
+ item
+ Name = 'FECHAFIN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptUnknown
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'UPDATE ASIENTOS'#10'SET PUNTEADO = :VALORPUNTEADO'#10'WHERE (CODIGOCUENT' +
+ 'A = :CODIGOCUENTA)'#10'AND (FECHAASIENTO <= :FECHAINI and FECHAASIEN' +
+ 'TO > :FECHAFIN)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'AsignarPunteo'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 40
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Modulos/Asientos/Servidor/srvAsientos_Impl.pas b/Modulos/Asientos/Servidor/srvAsientos_Impl.pas
new file mode 100644
index 0000000..2cdb7a2
--- /dev/null
+++ b/Modulos/Asientos/Servidor/srvAsientos_Impl.pas
@@ -0,0 +1,97 @@
+unit srvAsientos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvAsientos }
+ TsrvAsientos = class(TDARemoteService, IsrvAsientos)
+ schAsientos: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ protected
+ function AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean;
+ function darPenultimoCierre(const CodigoCuenta: Integer): DateTime;
+ function darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, uDAInterfaces, schAsientosClient_Intf;
+
+procedure Create_srvAsientos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvAsientos.Create(NIL);
+end;
+
+{ srvAsientos }
+{ TsrvAsientos }
+
+function TsrvAsientos.AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean;
+var
+ dsData: IDASQLCommand;
+begin
+ try
+ Result:= True;
+ dsData := schAsientos.NewCommand(Connection, 'AsignarPunteo', ['CODIGOCUENTA', 'FECHAINI', 'FECHAFIN', 'VALORPUNTEADO'], [CodigoCuenta, FechaIni, FechaFin, ValorPunteado]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+end;
+
+function TsrvAsientos.darPenultimoCierre(const CodigoCuenta: Integer): DateTime;
+var
+ ADataSet : IDADataset;
+begin
+ try
+ Result:= MinDateTime;
+ ADataSet := schAsientos.NewDataset(Connection, 'darPenultimoCierre', ['CODIGOCUENTA'], [CodigoCuenta]);
+ if not ADataSet.Dataset.FieldByName(fld_AsientosFECHAASIENTO).IsNull then
+ begin
+ //Todavia no se ha hecho el commit y por tanto aparece la fecha de cierre que se va a eliminar por ello dos NEXT
+ ADataSet.Next;
+ ADataSet.Next;
+ if not ADataSet.EOF then
+ Result := ADataSet.FieldByName(fld_AsientosFECHAASIENTO).AsDateTime;
+ end;
+ finally
+ ADataSet.Close;
+ end;
+end;
+
+function TsrvAsientos.darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+var
+ ADataSet : IDADataset;
+begin
+ try
+ Result:= 0;
+ ADataSet := schAsientos.NewDataset(Connection, 'darSumaAcumulada', ['CODIGOCUENTA', 'FECHAINI', 'FECHAFIN'], [CodigoCuenta, FechaIni, FechaFin]);
+ if not ADataSet.EOF then
+ Result := ADataSet.Dataset.Fields[0].AsCurrency;
+ finally
+ ADataSet.Close;
+ end;
+end;
+
+initialization
+ TROClassFactory.Create('srvAsientos', Create_srvAsientos, TsrvAsientos_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Calendarios/Cliente/Calendarios.bdsproj b/Modulos/Calendarios/Cliente/Calendarios.bdsproj
new file mode 100644
index 0000000..1ade83c
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Calendarios.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Calendarios.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente
+ 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
+
+
+ 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/Modulos/Calendarios/Cliente/Calendarios.cfg b/Modulos/Calendarios/Cliente/Calendarios.cfg
new file mode 100644
index 0000000..4af03f3
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Calendarios.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Calendarios/Cliente/Calendarios.dcp b/Modulos/Calendarios/Cliente/Calendarios.dcp
new file mode 100644
index 0000000..adbbfa3
Binary files /dev/null and b/Modulos/Calendarios/Cliente/Calendarios.dcp differ
diff --git a/Modulos/Calendarios/Cliente/Calendarios.dof b/Modulos/Calendarios/Cliente/Calendarios.dof
new file mode 100644
index 0000000..a782ccf
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Calendarios.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\Cliente
+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
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Calendarios/Cliente/Calendarios.dpk b/Modulos/Calendarios/Cliente/Calendarios.dpk
new file mode 100644
index 0000000..8b5084b
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Calendarios.dpk
@@ -0,0 +1,79 @@
+package Calendarios;
+
+{$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 OFF}
+
+requires
+ BaseD7,
+ PluginSDK_D7R,
+ rtl,
+ vcl,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ dbrtl,
+ vcljpg,
+ vcldb,
+ cxExtEditorsVCLD7,
+ vclx,
+ cxExportVCLD7,
+ cxSchedulerVCLD7,
+ dxPScxScheduler2LnkD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ dxPSCoreD7,
+ dxComnD7,
+ dxPScxGridLnkD7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ designide,
+ vclactnband,
+ vclshlctrls,
+ dclcxLibraryVCLD7,
+ dsnap,
+ adortl,
+ PngComponentsD7,
+ PNG_D7,
+ tb2k_d7,
+ tbx_d7,
+ JvCoreD7R,
+ Jcl,
+ JclVcl,
+ JvSystemD7R,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R;
+
+contains
+ uPluginControllerCalendarios in 'uPluginControllerCalendarios.pas' {ModuleCalendarios: TModuleController},
+ uDataModuleCalendarios in 'uDataModuleCalendarios.pas' {dmCalendarios: TDAClientDataModule},
+ uViewCalendarioBase in 'uViewCalendarioBase.pas' {frViewCalendarioBase: TCustomView},
+ uBizCitas in '..\Reglas\uBizCitas.pas',
+ uEditorCalendarioBase in 'uEditorCalendarioBase.pas' {fEditorCalendarioBase: TCustomEditor},
+ uEditorCalendarioMediciones in 'uEditorCalendarioMediciones.pas' {fEditorCalendarioMediciones: TCustomEditor},
+ uViewCalendarioConFiltro in 'uViewCalendarioConFiltro.pas' {frViewCalendarioConFiltro: TCustomView},
+ EditorEventos in 'EditorEventos.pas' {frEditorEventos},
+ uEditorCalendarioConFiltro in 'uEditorCalendarioConFiltro.pas' {fEditorCalendarioConFiltro: TCustomEditor};
+
+end.
diff --git a/Modulos/Calendarios/Cliente/Calendarios.drc b/Modulos/Calendarios/Cliente/Calendarios.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Calendarios.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Calendarios/Cliente/Calendarios.res b/Modulos/Calendarios/Cliente/Calendarios.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Calendarios/Cliente/Calendarios.res differ
diff --git a/Modulos/Calendarios/Cliente/EditorEventos.ddp b/Modulos/Calendarios/Cliente/EditorEventos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/EditorEventos.ddp differ
diff --git a/Modulos/Calendarios/Cliente/EditorEventos.dfm b/Modulos/Calendarios/Cliente/EditorEventos.dfm
new file mode 100644
index 0000000..3cc8eaa
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/EditorEventos.dfm
@@ -0,0 +1,267 @@
+inherited frEditorEventos: TfrEditorEventos
+ Left = 428
+ Top = 320
+ BorderIcons = [biSystemMenu]
+ Caption = 'frEditorEventos'
+ ClientHeight = 533
+ Constraints.MinHeight = 350
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited pnlButtons: TPanel
+ Top = 492
+ Height = 41
+ AutoSize = True
+ inherited pnlThreeButtons: TPanel
+ Height = 41
+ inherited btnOk: TcxButton
+ Left = -34
+ end
+ inherited btnCancel: TcxButton
+ Left = 76
+ end
+ inherited btnDelete: TcxButton
+ Left = 186
+ end
+ end
+ inherited pnlRecurrence: TPanel
+ Height = 41
+ inherited btnRecurrence: TcxButton
+ LookAndFeel.Kind = lfFlat
+ end
+ end
+ end
+ inherited pnlCaption: TPanel
+ Top = 148
+ Height = 37
+ Visible = False
+ DesignSize = (
+ 450
+ 37)
+ inherited lbLocation: TLabel
+ Top = 62
+ end
+ inherited lbLabel: TLabel
+ Top = 62
+ end
+ inherited teLocation: TcxTextEdit
+ Top = 58
+ end
+ inherited icbLabel: TcxImageComboBox
+ Top = 58
+ end
+ end
+ inherited pnlTime: TPanel
+ Top = 185
+ Visible = False
+ end
+ inherited pnlRecurrenceInfo: TPanel
+ Top = 252
+ end
+ inherited pnlPlaceHolder: TPanel
+ Top = 332
+ Visible = False
+ inherited pnlReminder: TPanel
+ Visible = False
+ end
+ inherited Panel1: TPanel
+ inherited Bevel3: TBevel
+ Width = 431
+ Visible = False
+ end
+ end
+ end
+ inherited pnlMessage: TPanel
+ Top = 375
+ Height = 117
+ Anchors = []
+ BorderWidth = 10
+ TabOrder = 9
+ Visible = False
+ inherited Bevel2: TBevel
+ Width = 431
+ end
+ inherited Bevel1: TBevel
+ Left = 10
+ Top = 106
+ Width = 430
+ Height = 1
+ Align = alBottom
+ Visible = False
+ end
+ inherited meMessage: TcxMemo
+ Top = 10
+ Align = alClient
+ Height = 96
+ Width = 430
+ end
+ end
+ inherited pnlResource: TPanel
+ Top = 105
+ Visible = False
+ object Bevel9: TBevel [2]
+ Left = 12
+ Top = 36
+ Width = 429
+ Height = 7
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ Visible = False
+ end
+ object cbInstaladores: TcxComboBox [3]
+ Left = 80
+ Top = 13
+ TabOrder = 1
+ Width = 217
+ end
+ inherited cbResources: TcxCheckComboBox
+ Left = 144
+ Properties.EmptySelectionText = 'Ninguno seleccionado'
+ Visible = False
+ Width = 122
+ end
+ object cbMedicion: TcxCheckBox
+ Left = 319
+ Top = 14
+ Caption = 'Es una medici'#243'n'
+ Properties.OnChange = cbTerminadoPropertiesChange
+ TabOrder = 2
+ Visible = False
+ Width = 122
+ end
+ end
+ object pnlObra: TPanel
+ Left = 0
+ Top = 41
+ Width = 450
+ Height = 64
+ Align = alTop
+ BevelOuter = bvNone
+ FullRepaint = False
+ ParentColor = True
+ TabOrder = 6
+ Visible = False
+ DesignSize = (
+ 450
+ 64)
+ object lbObra: TLabel
+ Left = 16
+ Top = 16
+ Width = 28
+ Height = 13
+ Caption = 'Obra:'
+ end
+ object lbTipo: TLabel
+ Left = 16
+ Top = 41
+ Width = 24
+ Height = 13
+ Caption = 'Tipo:'
+ end
+ object lbPartida: TLabel
+ Left = 241
+ Top = 41
+ Width = 51
+ Height = 13
+ Alignment = taRightJustify
+ Caption = 'Pedido de:'
+ Visible = False
+ end
+ object Bevel10: TBevel
+ Left = 11
+ Top = 0
+ Width = 429
+ Height = 8
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsTopLine
+ end
+ object cbObra: TcxComboBox
+ Left = 72
+ Top = 12
+ Anchors = [akLeft, akTop, akRight]
+ Properties.DropDownAutoWidth = False
+ Properties.DropDownListStyle = lsFixedList
+ Properties.OnEditValueChanged = cbObraPropertiesEditValueChanged
+ TabOrder = 0
+ Width = 370
+ end
+ object cbTipo: TcxComboBox
+ Left = 72
+ Top = 37
+ Properties.DropDownAutoWidth = False
+ Properties.DropDownListStyle = lsFixedList
+ Properties.OnEditValueChanged = cbTipoPropertiesEditValueChanged
+ TabOrder = 1
+ Width = 145
+ end
+ object teCodigoContrato: TEdit
+ Left = 40
+ Top = 32
+ Width = 25
+ Height = 21
+ TabOrder = 2
+ Text = 'teCodigoContrato'
+ Visible = False
+ end
+ object teNombreCliente: TEdit
+ Left = 40
+ Top = 8
+ Width = 25
+ Height = 21
+ TabOrder = 3
+ Text = 'teNombreCliente'
+ Visible = False
+ end
+ object cbPartida: TcxComboBox
+ Left = 296
+ Top = 37
+ Anchors = [akLeft, akTop, akRight]
+ Properties.DropDownAutoWidth = False
+ Properties.DropDownListStyle = lsFixedList
+ Properties.OnEditValueChanged = cbTipoPropertiesEditValueChanged
+ TabOrder = 4
+ Visible = False
+ Width = 145
+ end
+ end
+ object pnlCompletada: TPanel
+ Left = 0
+ Top = 292
+ Width = 450
+ Height = 40
+ Align = alTop
+ BevelOuter = bvNone
+ FullRepaint = False
+ ParentColor = True
+ TabOrder = 8
+ Visible = False
+ DesignSize = (
+ 450
+ 40)
+ object Bevel8: TBevel
+ Left = 11
+ Top = 0
+ Width = 431
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsTopLine
+ end
+ object cbCompletada: TcxCheckBox
+ Left = 12
+ Top = 12
+ Caption = 'Cita completada el d'#237'a'
+ Properties.OnChange = cbTerminadoPropertiesChange
+ TabOrder = 0
+ Width = 141
+ end
+ object deFechaCompletada: TcxDateEdit
+ Left = 147
+ Top = 11
+ Properties.DateButtons = [btnToday]
+ Properties.ImmediatePost = True
+ Properties.InputKind = ikStandard
+ Properties.OnChange = deFechaCompletadaPropertiesChange
+ TabOrder = 1
+ Width = 121
+ end
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/EditorEventos.pas b/Modulos/Calendarios/Cliente/EditorEventos.pas
new file mode 100644
index 0000000..73daf4a
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/EditorEventos.pas
@@ -0,0 +1,352 @@
+unit EditorEventos;
+//Para poder ver el dfm de esta unidad es necesario abrir primero
+//C:\Archivos de programa\Developer Express Inc\ExpressScheduler 2\Sources\cxSchedulerEventEditor
+
+interface
+
+uses Graphics, cxSchedulerDialogs, cxSchedulerEventEditor,
+ Menus, cxLookAndFeelPainters, cxGraphics, StdCtrls,
+ cxCheckComboBox, cxMemo, cxDropDownEdit, cxCheckBox, cxSpinEdit,
+ cxTimeEdit, cxCalendar, cxMaskEdit, cxImageComboBox, cxTextEdit,
+ cxControls, cxContainer, cxEdit, cxGroupBox, Controls, ExtCtrls,
+ cxButtons, Classes,
+
+ uBizCitas;
+
+type
+ TfrEditorEventos = class(TcxSchedulerEventEditorForm)
+ pnlObra: TPanel;
+ lbObra: TLabel;
+ cbObra: TcxComboBox;
+ lbTipo: TLabel;
+ cbTipo: TcxComboBox;
+ teCodigoContrato: TEdit;
+ teNombreCliente: TEdit;
+ lbPartida: TLabel;
+ cbPartida: TcxComboBox;
+ pnlCompletada: TPanel;
+ Bevel8: TBevel;
+ cbCompletada: TcxCheckBox;
+ deFechaCompletada: TcxDateEdit;
+ Bevel9: TBevel;
+ cbInstaladores: TcxComboBox;
+ Bevel10: TBevel;
+ cbMedicion: TcxCheckBox;
+ procedure cbObraPropertiesEditValueChanged(Sender: TObject);
+ procedure cbTipoPropertiesEditValueChanged(Sender: TObject);
+ procedure cbTerminadoPropertiesChange(Sender: TObject);
+ procedure deFechaCompletadaPropertiesChange(Sender: TObject);
+ private
+ FTipoEvento : TTipoCitas;
+ procedure ApplyChanges;
+ protected
+ procedure DeleteEvent; override;
+ procedure PostEvent; override;
+ procedure SaveChanges; override;
+ function GetFormColor: TColor; override;
+ function GetResourcesPanelVisible: Boolean; override;
+ procedure InitializeControls; override;
+ procedure LoadEventValuesIntoControls; override;
+ function IsValid: Boolean; override;
+ procedure SetCaptions; override;
+ procedure SetReadOnly(AValue: Boolean); override;
+ procedure UpdateEventValuesFromControls; override;
+ procedure SaveResourceID; override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ frEditorEventos: TfrEditorEventos;
+
+implementation
+{$R *.dfm}
+
+uses SysUtils, Dialogs, Variants, DateUtils, cxSchedulerUtils,
+schCitasClient_Intf, uDataModuleCalendarios;
+
+{ TfrEditorEventos }
+
+procedure TfrEditorEventos.ApplyChanges;
+begin
+ inherited;
+ //
+end;
+
+constructor TfrEditorEventos.Create(AOwner: TComponent);
+begin
+ inherited;
+end;
+
+function TfrEditorEventos.GetFormColor: TColor;
+begin
+ Result := $00F9FEFF;
+end;
+
+procedure TfrEditorEventos.InitializeControls;
+begin
+ if not VarIsNull(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA)) then
+ FTipoEvento := DarTipoCita(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA))
+ else
+ FTipoEvento := tcPersonal;
+
+ inherited;
+
+ pnlMessage.Visible := True;
+ pnlCaption.Visible := True;
+
+ if not (FTipoEvento in [tcPersonal, tcMedicion]) then
+ begin
+ pnlObra.Visible := True;
+ if FTipoEvento in [tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente] then
+ begin
+ pnlCompletada.Visible := True;
+ end;
+ end
+ else begin
+ pnlObra.Visible := False;
+ cbMedicion.Visible := (FTipoEvento = tcMedicion)
+ end;
+end;
+
+function TfrEditorEventos.IsValid: Boolean;
+begin
+ Result := inherited IsValid;
+
+ if Result then
+ begin
+ if Length(teSubject.Text) = 0 then
+ begin
+ ShowMessage('Indique el asunto');
+ Result := False;
+ end;
+
+ if (FTipoEvento in [tcEntrega, tcMontaje, tcRemate]) then
+ begin
+ if Length(cbInstaladores.EditValue) = 0 then
+ begin
+ ShowMessage('Hay que indicar el instalador');
+ Result := False;
+ end;
+ end;
+ end;
+end;
+
+procedure TfrEditorEventos.LoadEventValuesIntoControls;
+var
+ I, AResourceIndex: Integer;
+begin
+ inherited LoadEventValuesIntoControls;
+
+ if icbLabel.ItemIndex = 6 then
+ cbMedicion.Checked := True;
+
+
+ if (Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA) <> NULL) and
+ not (Length(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA)) = 0) then
+ cbTipo.EditValue := Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA);
+
+ if not (FTipoEvento in [tcPersonal, tcMedicion]) then
+ begin
+ if (Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO) <> NULL) and
+ not (Length(Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO))=0) then
+ teCodigoContrato.Text := Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO);
+
+ if (Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE) <> NULL) and
+ not (Length(Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE))=0) then
+ teNombreCliente.Text := Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE);
+
+ if (Event.GetCustomFieldValueByName(fld_CITASCOMPLETADA) <> NULL) then
+ begin
+ cbCompletada.Checked := True;
+ deFechaCompletada.Date := DateOf(VarToDateTime(Event.GetCustomFieldValueByName(fld_CITASCOMPLETADA)));
+ end;
+ end;
+
+ AResourceIndex := -1;
+ with cbInstaladores do
+ begin
+ Properties.Items.BeginUpdate;
+ try
+ Properties.Items.Clear;
+ for i := 0 to cbResources.Properties.Items.Count - 1 do
+ begin
+ Properties.Items.Add(cbResources.Properties.Items[i].Description);
+ if cbResources.States[I] = cbsChecked then
+ AResourceIndex := i;
+ end;
+ finally
+ Properties.Items.EndUpdate;
+ end;
+ ItemIndex := AResourceIndex;
+ end;
+end;
+
+procedure TfrEditorEventos.SetCaptions;
+begin
+ inherited SetCaptions;
+
+ case FTipoEvento of
+ tcEntrega,
+ tcMontaje,
+ tcRemate : lbResource.Caption := 'Instalador:';
+
+ tcMedicion: lbResource.Caption := 'Vendedor:';
+ end;
+
+ lbSubject.Caption := 'Asunto:';
+ lbStartTime.Caption := 'Comienzo:';
+ lbEndTime.Caption := 'Final:';
+ cbAllDayEvent.Caption := 'Todo el día';
+ btnOk.Caption := 'Aceptar';
+ btnDelete.Caption := 'Eliminar';
+ btnCancel.Caption := 'Cancelar';
+end;
+
+procedure TfrEditorEventos.SetReadOnly(AValue: Boolean);
+begin
+ inherited;
+ if AValue then
+ begin
+ cbObra.Enabled:= False;
+ cbPartida.Enabled:= False;
+ cbTipo.Enabled:= False;
+ deFechaCompletada.Enabled:= False;
+ cbCompletada.Enabled:= False;
+ end
+ else
+ begin
+ cbObra.Enabled:= True;
+ cbPartida.Enabled:= True;
+ cbTipo.Enabled:= True;
+ deFechaCompletada.Enabled:= True;
+ cbCompletada.Enabled:= True;
+ end;
+end;
+
+procedure TfrEditorEventos.UpdateEventValuesFromControls;
+begin
+ inherited UpdateEventValuesFromControls;
+
+ SaveResourceID;
+
+ try
+ // post the data from the custom editing controls
+
+ if not VarIsNull(teCodigoContrato.Text) then
+ Event.SetCustomFieldValueByName(fld_CITASCODIGOCONTRATO, teCodigoContrato.Text);
+
+ if not VarIsNull(teNombreCliente.Text) then
+ Event.SetCustomFieldValueByName(fld_CITASNOMBRECLIENTE, teNombreCliente.Text);
+
+ if not VarIsNull(cbPartida.EditValue) then
+ Event.SetCustomFieldValueByName(fld_CITASPARTIDA, TextoPartidasObra[cbPartida.ItemIndex]);
+
+ if not VarIsNull(deFechaCompletada.EditValue) then
+ Event.SetCustomFieldValueByName(fld_CITASCOMPLETADA, deFechaCompletada.Date)
+ else
+ Event.SetCustomFieldValueByName(fld_CITASCOMPLETADA, Null);
+
+ if not VarIsNull(cbTipo.EditValue) then
+ begin
+ FTipoEvento := DarTipoCita(cbTipo.EditValue);
+ Event.SetCustomFieldValueByName(fld_CITASTIPOTAREA, TextoTipoCita[Ord(FTipoEvento)]);
+ end
+ else
+ FTipoEvento := tcPersonal;
+
+ if cbMedicion.Checked then
+ Event.LabelColor := EventLabelColors[6]
+ else
+ Event.LabelColor := EventLabelColors[Ord(FTipoEvento) + 1];
+ except
+ on E: Exception do
+ ShowMessage('Can''t post data' + #13#10 + E.Message);
+ end;
+end;
+
+procedure TfrEditorEventos.cbObraPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited OnChanged(Sender);
+ if Length(cbObra.EditValue) <> 0 then
+ begin
+ teCodigoContrato.Text := Copy(cbObra.EditValue, 0, Pos(' ', cbObra.EditValue)-1);
+ teNombreCliente.Text := Copy(cbObra.EditValue, Pos(' ', cbObra.EditValue)+1, MaxInt);
+ end
+ else begin
+ teCodigoContrato.Text := '0';
+ teNombreCliente.Text := '';
+ end;
+end;
+
+procedure TfrEditorEventos.cbTipoPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited OnChanged(Sender);
+ icbLabel.ItemIndex := cbTipo.ItemIndex + 1;
+ icbLabel.EditModified := True;
+end;
+
+procedure TfrEditorEventos.cbTerminadoPropertiesChange(Sender: TObject);
+begin
+ deFechaCompletada.Enabled := cbCompletada.Checked;
+ if not cbCompletada.Checked then
+ deFechaCompletada.Clear
+ else
+ if Length(deFechaCompletada.EditValue) = 0 then
+ deFechaCompletada.Date := DateOf(Now);
+
+ FModified := True;
+ CheckVisible;
+end;
+
+procedure TfrEditorEventos.deFechaCompletadaPropertiesChange(
+ Sender: TObject);
+begin
+ FModified := True;
+end;
+
+procedure TfrEditorEventos.DeleteEvent;
+begin
+ inherited;
+end;
+
+procedure TfrEditorEventos.PostEvent;
+begin
+ inherited;
+end;
+
+procedure TfrEditorEventos.SaveChanges;
+begin
+ inherited;
+end;
+
+function TfrEditorEventos.GetResourcesPanelVisible: Boolean;
+begin
+ Result := not (FTipoEvento in [tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente]);
+end;
+
+procedure TfrEditorEventos.SaveResourceID;
+var
+ I: Integer;
+begin
+ if pnlResource.Visible then
+ begin
+ for I := 0 to cbResources.Properties.Items.Count - 1 do
+ cbResources.States[I] := cbsUnchecked;
+ cbResources.States[cbInstaladores.ItemIndex] := cbsChecked;
+ end
+ else
+ begin
+ showmessage('debo poner a nulo el valor de resources');
+ for I := 0 to cbResources.Properties.Items.Count - 1 do
+ cbResources.States[I] := cbsUnchecked;
+ end;
+ inherited;
+end;
+
+initialization
+ cxEventEditorClass := TfrEditorEventos; // indicate that the new Event modal dialog will be invoked at runtime
+
+end.
diff --git a/Modulos/Calendarios/Cliente/Unit1.ddp b/Modulos/Calendarios/Cliente/Unit1.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/Unit1.ddp differ
diff --git a/Modulos/Calendarios/Cliente/Unit1.dfm b/Modulos/Calendarios/Cliente/Unit1.dfm
new file mode 100644
index 0000000..bd5da5f
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Unit1.dfm
@@ -0,0 +1,48 @@
+inherited fEditorBase1: TfEditorBase1
+ Left = 380
+ Top = 362
+ Width = 686
+ Caption = 'fEditorBase1'
+ Color = clActiveCaption
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 678
+ inherited Image1: TImage
+ Left = 651
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 678
+ end
+ inherited StatusBar: TStatusBar
+ Width = 678
+ end
+ inline frViewBase21: TfrViewBase2 [3]
+ Left = 0
+ Top = 76
+ Width = 678
+ Height = 383
+ Align = alClient
+ Color = clYellow
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentBackground = False
+ ParentColor = False
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ end
+ inherited EditorActionList: TActionList [4]
+ end
+ inherited SmallImages: TPngImageList [5]
+ end
+ inherited LargeImages: TPngImageList [6]
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ OnRestorePlacement = JvFormStorageRestorePlacement
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/Unit1.pas b/Modulos/Calendarios/Cliente/Unit1.pas
new file mode 100644
index 0000000..8b9e34d
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Unit1.pas
@@ -0,0 +1,36 @@
+unit Unit1;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
+ ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView,
+ uViewBase, Unit2;
+
+type
+ TfEditorBase1 = class(TfEditorBase)
+ frViewBase21: TfrViewBase2;
+ procedure JvFormStorageRestorePlacement(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fEditorBase1: TfEditorBase1;
+
+implementation
+
+{$R *.dfm}
+
+procedure TfEditorBase1.JvFormStorageRestorePlacement(Sender: TObject);
+begin
+ inherited;
+ Invalidate;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/Unit2.ddp b/Modulos/Calendarios/Cliente/Unit2.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/Unit2.ddp differ
diff --git a/Modulos/Calendarios/Cliente/Unit2.dfm b/Modulos/Calendarios/Cliente/Unit2.dfm
new file mode 100644
index 0000000..d0d1a66
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Unit2.dfm
@@ -0,0 +1,6 @@
+inherited frViewBase2: TfrViewBase2
+ Align = alClient
+ Color = clYellow
+ ParentBackground = False
+ ParentColor = False
+end
diff --git a/Modulos/Calendarios/Cliente/Unit2.pas b/Modulos/Calendarios/Cliente/Unit2.pas
new file mode 100644
index 0000000..d9b7547
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/Unit2.pas
@@ -0,0 +1,24 @@
+unit Unit2;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase;
+
+type
+ TfrViewBase2 = class(TfrViewBase)
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewBase2: TfrViewBase2;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uDataModuleCalendarios.ddp b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uDataModuleCalendarios.dfm b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.dfm
new file mode 100644
index 0000000..8bb3ef1
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.dfm differ
diff --git a/Modulos/Calendarios/Cliente/uDataModuleCalendarios.pas b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.pas
new file mode 100644
index 0000000..c1d967c
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uDataModuleCalendarios.pas
@@ -0,0 +1,110 @@
+unit uDataModuleCalendarios;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizCitas;
+
+type
+ TdmCalendarios = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Citas: TDACDSDataTable;
+ ds_Citas: TDADataSource;
+ tbl_Vendedores: TDACDSDataTable;
+ ds_Vendedores: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetCodigo: Integer;
+ function GetItems: IBizCitas;
+ function GetMediciones: IBizCitas;
+ function GetVendedores: IBizVendedores;
+ end;
+
+var
+ dmCalendarios: TdmCalendarios;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview, Variants,
+ Dialogs, uDataModuleBase, uDBSelectionList,
+ schCitasClient_Intf;
+
+
+procedure TdmCalendarios.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmCalendarios.GetCodigo: Integer;
+begin
+ Result := (RORemoteService as IsrvCitas).GetCodigo('GEN_ID');
+end;
+
+function TdmCalendarios.GetItems: IBizCitas;
+var
+ dtCitas: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCitas := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Citas, dtCitas);
+ dtCitas.BusinessRulesID := BIZ_CITAS;
+ Result := (dtCitas as IBizCitas);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmCalendarios.GetMediciones: IBizCitas;
+var
+ dtCitas : IBizCitas;
+begin
+ dtCitas := GetItems;
+ with dtCitas.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('CITAS.' + fld_CITASTIPOTAREA + ' = ''' + TextoTipoCita[Ord(tcMedicion)] + '''', False);
+ CloseBraket;
+ end;
+ Result := dtCitas;
+end;
+
+function TdmCalendarios.GetVendedores: IBizVendedores;
+var
+ dtVendedores: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtVendedores := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Vendedores, dtVendedores);
+ dtVendedores.BusinessRulesID := BIZ_VENDEDORES;
+ Result := (dtVendedores as IBizVendedores);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+initialization
+ dmCalendarios := TdmCalendarios.Create(nil);
+
+finalization
+ FreeAndNil(dmCalendarios);
+
+end.
+
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioBase.ddp b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioBase.dfm b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.dfm
new file mode 100644
index 0000000..9a5257b
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.dfm
@@ -0,0 +1,142 @@
+inherited fEditorCalendarioBase: TfEditorCalendarioBase
+ Align = alClient
+ Caption = 'fEditorCalendarioBase'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ object TBXSeparatorItem14: TTBXSeparatorItem
+ end
+ object TBXItem33: TTBXItem
+ Action = actDia
+ end
+ object TBXItem34: TTBXItem
+ Action = actSemana
+ end
+ object TBXItem7: TTBXItem
+ Action = actMes
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ Left = 0
+ Top = 80
+ inherited actNuevo: TAction
+ Category = 'Calendario'
+ OnExecute = actNuevoExecute
+ end
+ inherited actModificar: TAction
+ Category = 'Calendario'
+ OnExecute = actModificarExecute
+ OnUpdate = actModificarUpdate
+ end
+ inherited actGuardarCerrar: TAction
+ Visible = False
+ end
+ inherited actGuardar: TAction
+ Visible = False
+ end
+ inherited actEliminar: TAction
+ Category = 'Calendario'
+ OnExecute = actEliminarExecute
+ OnUpdate = actEliminarUpdate
+ end
+ inherited actImprimir: TAction
+ OnExecute = actImprimirExecute
+ end
+ inherited actCerrar: TAction
+ Visible = False
+ end
+ inherited actRefrescar: TAction
+ Category = 'Calendario'
+ OnExecute = actRefrescarExecute
+ end
+ inherited actAnterior: TAction
+ Visible = False
+ end
+ inherited actSiguiente: TAction
+ Visible = False
+ end
+ object actDia: TAction
+ Category = 'Calendario'
+ Caption = 'D'#237'a'
+ OnExecute = actDiaExecute
+ end
+ object actSemana: TAction
+ Category = 'Calendario'
+ Caption = 'Semana'
+ OnExecute = actSemanaExecute
+ end
+ object actMes: TAction
+ Category = 'Calendario'
+ Caption = 'Mes'
+ OnExecute = actMesExecute
+ end
+ object actSemana5: TAction
+ Category = 'Calendario'
+ Caption = 'Semana laboral'
+ OnExecute = actSemana5Execute
+ end
+ end
+ object cxSchedulerDBStorage: TcxSchedulerDBStorage
+ Resources.Items = <>
+ Resources.ResourceID = 'CODIGO'
+ Resources.ResourceName = 'NOMBRE'
+ CustomFields = <>
+ DataSource = DADataSource
+ FieldNames.Caption = 'CAPTION'
+ FieldNames.EventType = 'TIPO'
+ FieldNames.Finish = 'FINISH'
+ FieldNames.ID = 'ID'
+ FieldNames.LabelColor = 'LABELCOLOR'
+ FieldNames.Location = 'LOCATION'
+ FieldNames.Message = 'MENSAJE'
+ FieldNames.Options = 'OPTIONS'
+ FieldNames.ParentID = 'PARENTID'
+ FieldNames.ResourceID = 'RESOURCEID'
+ FieldNames.Start = 'START'
+ FieldNames.State = 'STATE'
+ Left = 32
+ Top = 80
+ end
+ object DADataSource: TDADataSource
+ Left = 64
+ Top = 80
+ end
+ object dxComponentPrinter1: TdxComponentPrinter
+ CurrentLink = dxComponentPrinter1Link2
+ PreviewOptions.EnableOptions = [peoPageSetup, peoPrint]
+ PreviewOptions.Caption = 'Vista previa'
+ PreviewOptions.VisibleOptions = [pvoPageSetup, pvoPrint, pvoPageMargins]
+ Version = 0
+ Left = 32
+ Top = 112
+ object dxComponentPrinter1Link2: TcxSchedulerReportLink
+ 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 38869.819535011570000000
+ OptionsFormatting.SuppressBackgroundBitmaps = True
+ OptionsFormatting.UseNativeStyles = True
+ PrintRange.TimePrintFrom = 0.416666666666666700
+ PrintRange.TimePrintTo = 0.854166666666666600
+ PrintStyles.Weekly.Active = True
+ SupportedCustomDraw = True
+ BuiltInReportLink = True
+ end
+ end
+ object dxPrintDialog1: TdxPrintDialog
+ ButtonsEnabled = [pdbPrinterProperties, pdbNetwork, pdbPreview, pdbPageSetup]
+ ButtonsVisible = [pdbPrinterProperties, pdbNetwork, pdbPreview]
+ OptionsEnabled = [pdoAllPages, pdoPageRange]
+ Top = 112
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioBase.pas b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.pas
new file mode 100644
index 0000000..1c027bf
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioBase.pas
@@ -0,0 +1,307 @@
+unit uEditorCalendarioBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, dxLayoutLookAndFeels, JvAppStorage,
+ JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uBizCitas, uViewCalendarioBase, cxSchedulerStorage,
+ cxSchedulerDBStorage, DB, uDADataTable,
+
+
+ cxScheduler, cxSchedulerCustomControls, cxSchedulerCustomResourceView,
+ cxSchedulerDayView, cxSchedulerDateNavigator, cxSchedulerTimeGridView,
+ cxSchedulerUtils, cxSchedulerWeekView, cxSchedulerYearView, dxPSGlbl,
+ dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon,
+ dxPScxScheduler2Lnk;
+
+type
+ IEditorCalendarioBase = interface(IEditorBase)
+ ['{FC69C1D8-B566-4CBF-9F87-16728114D161}']
+ function GetCitas: IBizCitas;
+ procedure SetCitas(const Value: IBizCitas);
+ property Citas: IBizCitas read GetCitas write SetCitas;
+ end;
+
+ TfEditorCalendarioBase = class(TfEditorBase, IEditorCalendarioBase)
+ TBXItem7: TTBXItem;
+ TBXSeparatorItem14: TTBXSeparatorItem;
+ TBXItem33: TTBXItem;
+ TBXItem34: TTBXItem;
+ actDia: TAction;
+ actSemana: TAction;
+ actMes: TAction;
+ cxSchedulerDBStorage: TcxSchedulerDBStorage;
+ DADataSource: TDADataSource;
+ actSemana5: TAction;
+ dxComponentPrinter1: TdxComponentPrinter;
+ dxComponentPrinter1Link2: TcxSchedulerReportLink;
+ dxPrintDialog1: TdxPrintDialog;
+
+ procedure FormShow(Sender: TObject);
+ procedure actDiaExecute(Sender: TObject);
+ procedure actSemanaExecute(Sender: TObject);
+ procedure actMesExecute(Sender: TObject);
+ procedure actRefrescarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarUpdate(Sender: TObject);
+ procedure actEliminarUpdate(Sender: TObject);
+ procedure actSemana5Execute(Sender: TObject);
+ procedure actImprimirExecute(Sender: TObject);
+
+ procedure cxSchedulerBeforeEditing(Sender: TcxCustomScheduler;
+ AEvent: TcxSchedulerControlEvent; AInplace: Boolean;
+ var Allow: Boolean);
+
+ private
+ FCitas: IBizCitas;
+ FViewCitas: IViewCalendarioBase;
+
+ protected
+ function GetViewCitas: IViewCalendarioBase;
+ procedure SetViewCitas(const Value: IViewCalendarioBase);
+ function GetCitas: IBizCitas;
+ procedure SetCitas(const Value: IBizCitas);
+
+ procedure InicializarCampos; virtual;
+ procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); virtual;
+
+ public
+ property Citas: IBizCitas read GetCitas write SetCitas;
+ property ViewCitas: IViewCalendarioBase read GetViewCitas write SetViewCitas;
+ destructor Destroy; override;
+ end;
+
+var
+ fEditorCalendarioBase: TfEditorCalendarioBase;
+
+implementation
+{$R *.dfm}
+
+{ TfEditorCalendarioBase }
+
+uses schCitasClient_Intf;
+
+function TfEditorCalendarioBase.GetCitas: IBizCitas;
+begin
+ Result := FCitas;
+end;
+
+function TfEditorCalendarioBase.GetViewCitas: IViewCalendarioBase;
+begin
+ Result := FViewCitas;
+end;
+
+procedure TfEditorCalendarioBase.SetCitas(const Value: IBizCitas);
+begin
+ FCitas := Value;
+
+ if Assigned(FCitas) then
+ begin
+ DADataSource.DataTable := FCitas.DataTable;
+
+ if not DADataSource.DataTable.Active then
+ DADataSource.DataTable.Active := True;
+ end
+ else
+ DADataSource.DataTable := NIL;
+end;
+
+procedure TfEditorCalendarioBase.SetViewCitas(const Value: IViewCalendarioBase);
+begin
+ FViewCitas := Value;
+
+ if Assigned(FViewCitas) then
+ FViewCitas.Calendario.OnBeforeEditing := cxSchedulerBeforeEditing;
+end;
+
+procedure TfEditorCalendarioBase.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ InicializarCampos;
+
+ if not Assigned(FViewCitas) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Citas) then
+ raise Exception.Create('No hay ninguna cita asignada');
+
+
+end;
+
+destructor TfEditorCalendarioBase.Destroy;
+begin
+ FViewCitas := NIL;
+ FCitas := NIL;
+ inherited;
+end;
+
+procedure TfEditorCalendarioBase.actDiaExecute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ if not ViewWeek.Active then
+ FViewCitas.pAnchorDate := SelectedDays[0];
+ SelectDays([FViewCitas.pAnchorDate], True);
+
+ ViewDay.Active := True;
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actSemanaExecute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ if not ViewWeek.Active then
+ FViewCitas.pAnchorDate := SelectedDays[0];
+ SelectDays([FViewCitas.pAnchorDate], False);
+
+ ViewWeek.Active := True;
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actMesExecute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ if not ViewWeek.Active then
+ FViewCitas.pAnchorDate := SelectedDays[0];
+ SelectDays([FViewCitas.pAnchorDate], False);
+
+ GoToDate(SelectedDays[0], vmMonth);
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actRefrescarExecute(Sender: TObject);
+begin
+ cxSchedulerDBStorage.FullRefresh;
+end;
+
+procedure TfEditorCalendarioBase.actNuevoExecute(Sender: TObject);
+begin
+ FViewCitas.Calendario.CreateEventUsingDialog;
+end;
+
+procedure TfEditorCalendarioBase.actModificarExecute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ if (SelectedEventCount = 1) then
+ EditEventUsingDialog(SelectedEvents[0]);
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actEliminarExecute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ if (SelectedEventCount > 0) then
+ DeleteSelectedEvents();
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actModificarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FViewCitas.Calendario.SelectedEventCount = 1);
+end;
+
+procedure TfEditorCalendarioBase.actEliminarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FViewCitas.Calendario.SelectedEventCount > 0);
+end;
+
+procedure TfEditorCalendarioBase.actSemana5Execute(Sender: TObject);
+begin
+ with FViewCitas.Calendario do
+ begin
+ FViewCitas.pAnchorDate := SelectedDays[0];
+ SelectDays([FViewCitas.pAnchorDate], True);
+
+ SelectWorkDays(Date);
+ end;
+end;
+
+procedure TfEditorCalendarioBase.actImprimirExecute(Sender: TObject);
+begin
+ inherited;
+ with FViewCitas.Calendario do
+ begin
+ with dxComponentPrinter1Link2.PrintStyles do
+ begin
+ if ViewDay.Active then
+ begin
+ Daily.Active := True;
+ FViewCitas.pAnchorDate := SelectedDays.Items[0];
+ end
+ else
+ if ViewWeek.Active then
+ Weekly.Active := True
+ else begin
+ Monthly.Active := True;
+ FViewCitas.pAnchorDate := SelectedDays.Items[SelectedDays.Count DIV 2];
+ end;
+ end;
+ dxComponentPrinter1Link2.PrintRange.PrintFrom := FViewCitas.pAnchorDate;
+ dxComponentPrinter1Link2.PrintRange.PrintTo := FViewCitas.pAnchorDate;
+ dxComponentPrinter1.Print(True, nil, nil);
+ end;
+end;
+
+procedure TfEditorCalendarioBase.InicializarEvento(var aEvent: TcxSchedulerControlEvent);
+begin
+ //
+end;
+
+procedure TfEditorCalendarioBase.cxSchedulerBeforeEditing(
+ Sender: TcxCustomScheduler; AEvent: TcxSchedulerControlEvent;
+ AInplace: Boolean; var Allow: Boolean);
+begin
+ if VarIsNull(AEvent.ID) then
+ InicializarEvento(AEvent);
+ Allow := True;
+end;
+
+procedure TfEditorCalendarioBase.InicializarCampos;
+var
+ aField : TcxSchedulerDBStorageField;
+begin
+ inherited;
+
+ with cxSchedulerDBStorage.CustomFields do
+ begin
+ try
+ BeginUpdate;
+ Clear;
+
+ aField := Add;
+ aField.FieldName := fld_CITASTIPOTAREA;
+
+ aField := Add;
+ aField.FieldName := fld_CITASCODIGOCONTRATO;
+
+ aField := Add;
+ aField.FieldName := fld_CITASNOMBRECLIENTE;
+
+ aField := Add;
+ aField.FieldName := fld_CITASPARTIDA;
+
+ aField := Add;
+ aField.FieldName := fld_CITASCOMPLETADA;
+
+ aField := Add;
+ aField.FieldName := fld_CITASNOMBREPROVEEDOR;
+
+ finally
+ EndUpdate;
+ end;
+ end;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.ddp b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.dfm b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.dfm
new file mode 100644
index 0000000..625615f
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.dfm
@@ -0,0 +1,20 @@
+inherited fEditorCalendarioConFiltro: TfEditorCalendarioConFiltro
+ Caption = 'fEditorCalendarioConFiltro'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited EditorActionList: TActionList
+ object actVerTodos: TAction
+ Category = 'Calendario'
+ Caption = 'Ver todos'
+ OnExecute = actVerTodosExecute
+ end
+ end
+ inherited JvFormStorage: TJvFormStorage
+ OnSavePlacement = JvFormStorageSavePlacement
+ end
+ inherited dxComponentPrinter1: TdxComponentPrinter
+ inherited dxComponentPrinter1Link2: TcxSchedulerReportLink
+ BuiltInReportLink = True
+ end
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.pas b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.pas
new file mode 100644
index 0000000..654f289
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioConFiltro.pas
@@ -0,0 +1,132 @@
+unit uEditorCalendarioConFiltro;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorCalendarioBase, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
+ dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon, dxPScxScheduler2Lnk,
+ DB, uDADataTable, cxSchedulerStorage, cxSchedulerDBStorage,
+ dxLayoutLookAndFeels, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
+ ExtCtrls, JvExControls, JvComponent, JvNavigationPane;
+
+type
+ IEditorCalendarioConFiltro = interface(IEditorCalendarioBase)
+ ['{81ED9B0E-6F65-4B7D-884F-192AE45A7708}']
+ end;
+
+ TfEditorCalendarioConFiltro = class(TfEditorCalendarioBase, IEditorCalendarioConFiltro)
+ actVerTodos: TAction;
+ procedure actVerTodosExecute(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ procedure JvFormStorageSavePlacement(Sender: TObject);
+ protected
+ NombreLista: String;
+ procedure CargarLista; virtual;
+ public
+ destructor destroy; override;
+ end;
+
+var
+ fEditorCalendarioConFiltro: TfEditorCalendarioConFiltro;
+
+implementation
+{$R *.dfm}
+
+uses uViewCalendarioConFiltro;
+
+procedure TfEditorCalendarioConFiltro.actVerTodosExecute(Sender: TObject);
+var
+ I: Integer;
+begin
+ with (ViewCitas as IViewCalendarioConFiltro).Resources do
+ begin
+ Items.BeginUpdate;
+ try
+ for I := 0 to Items.Count - 1 do
+ begin
+ Items[I].Checked := True;
+ TcxSchedulerStorageResourceItem(Items[I].ItemObject).Visible := True;
+ end;
+ finally
+ Items.EndUpdate;
+ end;
+ end;
+end;
+
+procedure TfEditorCalendarioConFiltro.CargarLista;
+var
+ I: Integer;
+ cadena: String;
+begin
+ cadena := JvFormStorage.ReadString(NombreLista, '');
+
+ with (ViewCitas as IViewCalendarioConFiltro).Resources do
+ begin
+ Items.BeginUpdate;
+ try
+ Items.Clear;
+
+ for I := 0 to ViewCitas.Calendario.Storage.ResourceCount - 1 do
+ begin
+ with Items.Add do
+ begin
+ ImageIndex := 0;
+ Text := ViewCitas.Calendario.Storage.ResourceNames[I];
+ Checked := ViewCitas.Calendario.Storage.Resources.ResourceItems[I].Visible;
+ ItemObject := ViewCitas.Calendario.Storage.Resources.ResourceItems[I];
+ end;
+ end;
+ finally
+ Items.EndUpdate;
+ end;
+
+ for I := 0 to Items.Count - 1 do
+ if (Length(cadena) > 0) and (Pos('#' + IntToStr(i) + '#', cadena) = 0) then
+ begin
+ Items[i].Checked := False;
+ (Items[i].ItemObject as TcxSchedulerStorageResourceItem).Visible := False;
+ end;
+ end;
+end;
+
+destructor TfEditorCalendarioConFiltro.destroy;
+begin
+ inherited;
+end;
+
+procedure TfEditorCalendarioConFiltro.FormShow(Sender: TObject);
+begin
+ inherited FormShow(Sender);
+
+ try
+ ViewCitas.Calendario.BeginUpdate;
+ CargarLista;
+ finally;
+ ViewCitas.Calendario.EndUpdate;
+ end;
+
+ actSemana.Execute;
+end;
+
+procedure TfEditorCalendarioConFiltro.JvFormStorageSavePlacement(
+ Sender: TObject);
+var
+ i : integer;
+ cadena : string;
+begin
+ inherited;
+ with (ViewCitas as IViewCalendarioConFiltro).Resources do
+ begin
+ cadena := '#';
+ for i := 0 to Items.Count - 1 do
+ if Items[i].Checked then
+ cadena := cadena + IntToStr(i) + '#';
+ JvFormStorage.WriteString(NombreLista, cadena);
+ end;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.ddp b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.dfm b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.dfm
new file mode 100644
index 0000000..f9f32e6
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.dfm
@@ -0,0 +1,134 @@
+inherited fEditorCalendarioMediciones: TfEditorCalendarioMediciones
+ Left = 219
+ Top = 175
+ Width = 800
+ Height = 646
+ Caption = 'fEditorCalendarioMediciones'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 792
+ Caption = 'AGENDA'
+ inherited Image1: TImage
+ Left = 765
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
+ 00001C0806000000720DDF940000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000004D64944415478DABD957D5054
+ 5514C07F6FD905044492B5D6044CD210FCFE0C9B093533C4444B821C14AB51FE
+ 404873C26AC68FCCB226C5D132354B9D880835191D1D5304B2A6D148938F2C34
+ 244405D915C4E563835D78BBBDB7C88B6D91D8FEF0CCDC39F79E77CFFDBD73EE
+ 3BE709369B8DFB29820C14044131C4AFC8785152FBA5B1E0EB8F120EB87A604F
+ FE765637405BE6B6458C9FB58CA29C5D828BBC1EFD1560F09B854A5EA7984B49
+ 8E9B4FCA86548C6396BA9CB29EFC2B3E1C2F28C075D1A3EDC6DC43FB899F399D
+ B5DB37B27CCDC74E07B65BC16C81568BCD3E4C2DB2EE589BDB245D7648F1F79F
+ 9CA63C134B5751787267F7C088D061EC3E9CEE046C6D93615D00164798FC22B6
+ CA438ABFF7D8B4BBFB405DDE0350964B97CF3A007B0393E71E37B3157FB7B0CD
+ 76BB2CF704EA6F5CE7607A1A712FA5A20B0C720926DB04D30DAA8BB6E117BA82
+ BAB600E585EF09FCB7B80273DCE7788E13D0E5CFD145F12BD9F30F303BB7C416
+ 33738C4B07AC395049F6B1DFB971BDCEC11E18A425267A04CB676A11452BA2D5
+ CA915305ECCB3CFADFC04F324E3AD9F4EEC315D0CA9469786BFB4B69173B8645
+ A4C5D24EE6CE5C059CF8A42FC7F2CFF51E989230CB21AA6D3B7E6069EC281E19
+ 1B82A1BA960754CD840DF1E3F9C8CD1CCE5945E95523E78D7D308B36BECB3AC3
+ 6BC953D1592EFF3F60E8A2E344853F4CD098C7B85A7289D9E10F32794200CD2D
+ AD145FD4E3A90BC068B252F8D36F9CBB2922FAF861B8504EE2742B5F7D73C235
+ 606774EFBD1F4B45512949B121E8745E4859E48A41A4FA8E0D3715988C356C5D
+ B99025EBF6917EA69ECB3F96313DF00ED5B7CB9C81DDDD59A7ECC811ED772265
+ 8A886015E19307D9E767AFB4633283462D9543731D69AFC63167711233E6BDC0
+ D1C3BF9073BB2FD7F38B19EA7E86E2BCCF9C815D53D875ED1391CE9AF5F351D5
+ 5D2331360C51B0D128F5D19FCBDB259880A5C5C8A665F3895CB084C8D878346E
+ 022A53138BB79660F8B50A9D299FF20B5FBA064C5D3D8F89FD9B099FA0A35DB2
+ 15558AF6E8AACA0AF9E2835446854F65CEC25750BBC1C08041685ACD246F29A0
+ B4E816FD0C7954FF91E11A30E58D68B62C7E878CAC25F8870CA7418A502DA572
+ 7DC253AC7D7727EB5727A192FEADF2EF352DF320519336F1E8AC27A8AA6AC547
+ 9F87BE2CA3F777F8D6E70696AE8CE2E9000B6DBE03A482966182943AA9A599EE
+ B0213186ED47F2159B466D23A88F86675ECFE55291817EFA135497EDEF7D8472
+ 494C9D3B9E606E133C7A186A55C787A276EBD032447D57CB6B1F09DC58594BDC
+ 9E0A6ACE5748777842BA4317809D6511B9600A8F6B2D8C9838548209DDC23C24
+ 1DE4A92179D3F71498FD69CA3F89BF7B1925797B7B0FEC8C32242294D69A1A52
+ 660FC677D0000495CD218D7D352A06BAABF934EB02BB2E8AB4379A08AD3D4D4D
+ 53BD631D3E376314BB324FF5D8B0E53E2A473929269C56BD8184B1DECC891A49
+ 63730BE346BE8DB1762BB70C0DA46515937BCB13542ABC0A8E93103F8ECCEC5C
+ 4760F4B491F6CE6EEFF0F62E6FA35D997768AB54E97BCF3629CD3B70FA68A92E
+ F50CF65571F35A1DBA210FF167A3805AABA5ADDE8857C969E626BDDC7D2F9D1D
+ 11C6DE83F9F4461A1B4C7C9B574971BDB6DBE7FD340D0CF7AA21F2D9097879FB
+ D86D4EC08D5B76F70AD655CC52D36EAC1369B3796015540896BFF0F430D357EB
+ 89BBA7B7D37E05783FE56F92C591F6D1A442580000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 792
+ inherited tbxMenu: TTBXToolbar
+ Visible = False
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 593
+ Width = 792
+ end
+ inline frViewCalendarioMediciones: TfrViewCalendarioConFiltro [3]
+ Left = 0
+ Top = 76
+ Width = 792
+ Height = 517
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited cxScheduler: TcxScheduler
+ Width = 792
+ Height = 517
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ Storage = cxSchedulerDBStorage
+ Splitters = {
+ 89020000FA00000018030000FF00000084020000000000008902000005020000}
+ StoredClientBounds = {00000000000000001803000005020000}
+ inherited pnlVendedores: TPanel
+ Height = 262
+ inherited cxResources: TcxCheckListBox
+ Height = 225
+ end
+ inherited Panel2: TPanel
+ Caption = 'Vendedores'
+ end
+ inherited tbxMain: TTBXToolbar
+ Top = 243
+ Height = 19
+ inherited TBXItem5: TTBXItem
+ Action = actVerTodos
+ end
+ end
+ end
+ 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 cxSchedulerDBStorage: TcxSchedulerDBStorage [9]
+ Resources.DataSource = DADataSource2
+ end
+ inherited DADataSource: TDADataSource [10]
+ end
+ inherited dxComponentPrinter1: TdxComponentPrinter [11]
+ inherited dxComponentPrinter1Link2: TcxSchedulerReportLink
+ BuiltInReportLink = True
+ end
+ end
+ object DADataSource2: TDADataSource
+ Left = 96
+ Top = 80
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.pas b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.pas
new file mode 100644
index 0000000..d6caf2a
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioMediciones.pas
@@ -0,0 +1,104 @@
+unit uEditorCalendarioMediciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, dxLayoutLookAndFeels, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList,
+ ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls,
+ JvComponent, JvNavigationPane, uCustomView, uViewBase, uViewCalendarioBase,
+ cxSchedulerStorage, cxSchedulerDBStorage, DB,
+ uDADataTable, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap,
+ dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns,
+ dxPrnDlg, dxPSCore, dxPScxCommon, dxPScxScheduler2Lnk, Grids, DBGrids,
+
+ uBizCitas, uEditorCalendarioConFiltro, uViewCalendarioConFiltro,
+ uEditorCalendarioBase, uViewCalendarioMediciones;
+
+type
+ IEditorCalendarioMediciones = interface(IEditorCalendarioConFiltro)
+ ['{CA83B596-1408-455F-AD78-0BC121A452C3}']
+ function GetVendedores: IBizVendedores;
+ procedure SetVendedores(const Value: IBizVendedores);
+ property Vendedores : IBizVendedores read GetVendedores write SetVendedores;
+ end;
+
+ TfEditorCalendarioMediciones = class(TfEditorCalendarioConFiltro, IEditorCalendarioMediciones)
+ DADataSource2: TDADataSource;
+ frViewCalendarioMediciones: TfrViewCalendarioConFiltro;
+
+ private
+ FVendedores: IBizVendedores;
+ procedure CargarLista; override;
+ function GetVendedores: IBizVendedores;
+ procedure SetVendedores(const Value: IBizVendedores);
+
+ protected
+ procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); override;
+
+ public
+ property Vendedores : IBizVendedores read GetVendedores write SetVendedores;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ fEditorCalendarioMediciones: TfEditorCalendarioMediciones;
+
+implementation
+{$R *.dfm}
+
+{ TfEditorCalendarioMediciones }
+
+uses schCitasClient_Intf;
+
+
+constructor TfEditorCalendarioMediciones.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewCitas := frViewCalendarioMediciones;
+end;
+
+procedure TfEditorCalendarioMediciones.CargarLista;
+begin
+ NombreLista := 'Mediciones';
+ inherited;
+end;
+
+function TfEditorCalendarioMediciones.GetVendedores: IBizVendedores;
+begin
+ Result := FVendedores;
+end;
+
+procedure TfEditorCalendarioMediciones.SetVendedores(const Value: IBizVendedores);
+begin
+ FVendedores := Value;
+
+ if Assigned(FVendedores) then
+ begin
+ DADataSource2.DataTable := FVendedores.DataTable;
+
+ if not FVendedores.DataTable.Active then
+ FVendedores.DataTable.Active := True;
+ end
+ else
+ DADataSource2.DataTable := Nil;
+end;
+
+procedure TfEditorCalendarioMediciones.InicializarEvento(var aEvent: TcxSchedulerControlEvent);
+begin
+ inherited;
+ with AEvent do
+ begin
+ SetCustomFieldValueByName(fld_CITASTIPOTAREA, TextoTipoCita[Ord(tcMedicion)]);
+ end;
+end;
+
+destructor TfEditorCalendarioMediciones.Destroy;
+begin
+ FVendedores := Nil;
+ inherited;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.ddp b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.dfm b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.dfm
new file mode 100644
index 0000000..daf0712
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.dfm
@@ -0,0 +1,76 @@
+inherited fEditorCalendarioMontajes: TfEditorCalendarioMontajes
+ Caption = 'fEditorCalendarioMontajes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'CALENDARIO MONTAJES'
+ end
+ inline frViewCalendarioMontajes: TfrViewCalendarioConFiltro [3]
+ Left = 0
+ Top = 76
+ Width = 666
+ Height = 387
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited cxScheduler: TcxScheduler
+ Width = 666
+ Height = 387
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ Storage = cxSchedulerDBStorage
+ Selection = 28
+ Splitters = {
+ 0B020000FA0000009A020000FF00000006020000000000000B02000083010000}
+ StoredClientBounds = {00000000000000009A02000083010000}
+ inherited pnlVendedores: TPanel
+ Height = 132
+ inherited cxResources: TcxCheckListBox
+ Height = 95
+ end
+ inherited Panel2: TPanel
+ Caption = 'Instaladores'
+ end
+ inherited tbxMain: TTBXToolbar
+ Top = 113
+ Height = 19
+ inherited TBXItem5: TTBXItem
+ Action = actVerTodos
+ end
+ end
+ end
+ 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 dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList [9]
+ end
+ inherited cxSchedulerDBStorage: TcxSchedulerDBStorage [10]
+ Resources.DataSource = DADataSource2
+ end
+ inherited DADataSource: TDADataSource [11]
+ end
+ inherited dxComponentPrinter1: TdxComponentPrinter [12]
+ inherited dxComponentPrinter1Link2: TcxSchedulerReportLink
+ BuiltInReportLink = True
+ end
+ end
+ object DADataSource2: TDADataSource
+ Left = 96
+ Top = 80
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.pas b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.pas
new file mode 100644
index 0000000..8d20d89
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioMontajes.pas
@@ -0,0 +1,149 @@
+unit uEditorCalendarioMontajes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorCalendarioBase, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
+ dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon, dxPScxScheduler2Lnk,
+ DB, uDADataTable, cxSchedulerStorage, cxSchedulerDBStorage,
+ dxLayoutLookAndFeels, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
+ ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView,
+ uViewBase, uViewCalendarioBase, uViewCalendarioConFiltro,
+ uEditorCalendarioConFiltro, uBizCitas;
+
+type
+ IEditorCalendarioMontajes = interface(IEditorCalendarioConFiltro)
+ ['{158B8A5F-5CF6-43F2-BBD0-C65212089035}']
+ function GetInstaladores: IBizInstaladores;
+ procedure SetInstaladores(const Value: IBizInstaladores);
+ property Instaladores : IBizInstaladores read GetInstaladores write SetInstaladores;
+ end;
+
+ TfEditorCalendarioMontajes = class(TfEditorCalendarioConFiltro, IEditorCalendarioMontajes)
+ frViewCalendarioMontajes: TfrViewCalendarioConFiltro;
+ DADataSource2: TDADataSource;
+
+ procedure EventDisplayText(Sender: TObject; AEvent: TcxSchedulerControlEvent;
+ var AText: String);
+ procedure EventHintText(Sender: TObject; AEvent: TcxSchedulerControlEvent;
+ var AText: String);
+ procedure FormShow(Sender: TObject);
+ private
+ FInstaladores: IBizInstaladores;
+ procedure CargarLista; override;
+ function GetInstaladores: IBizInstaladores;
+ procedure SetInstaladores(const Value: IBizInstaladores);
+
+ protected
+ procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); override;
+
+ public
+ property Instaladores : IBizInstaladores read GetInstaladores write SetInstaladores;
+ constructor Create(AOwner: TComponent); override;
+ destructor destroy; override;
+ end;
+
+var
+ fEditorCalendarioMontajes: TfEditorCalendarioMontajes;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorCalendarioMontajes }
+
+uses schCitasClient_Intf;
+
+procedure TfEditorCalendarioMontajes.CargarLista;
+begin
+ NombreLista := 'Instaladores';
+ inherited;
+end;
+
+constructor TfEditorCalendarioMontajes.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewCitas := frViewCalendarioMontajes;
+end;
+
+function TfEditorCalendarioMontajes.GetInstaladores: IBizInstaladores;
+begin
+ Result := FInstaladores;
+end;
+
+procedure TfEditorCalendarioMontajes.InicializarEvento(var aEvent: TcxSchedulerControlEvent);
+begin
+ inherited;
+
+ with AEvent do
+ begin
+ SetCustomFieldValueByName(fld_CITASTIPOTAREA, TextoTipoCita[Ord(tcMontaje)]);
+ AllDayEvent := True;
+ end;
+end;
+
+procedure TfEditorCalendarioMontajes.SetInstaladores(const Value: IBizInstaladores);
+begin
+ FInstaladores := Value;
+
+ if Assigned(FInstaladores) then
+ begin
+ DADataSource2.DataTable := FInstaladores.DataTable;
+
+ if not FInstaladores.DataTable.Active then
+ FInstaladores.DataTable.Active := True;
+ end
+ else
+ DADataSource2.DataTable := Nil;
+end;
+
+procedure TfEditorCalendarioMontajes.EventDisplayText(Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
+var
+ Nombre : String;
+ Tipo : String;
+
+begin
+ inherited;
+
+ if not VarIsNull(AEvent.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE)) then
+ begin
+ Nombre := VarToStr(AEvent.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE));
+ Tipo := VarToStr(AEvent.GetCustomFieldValueByName(fld_CITASTIPOTAREA));
+ AText := AEvent.Caption + ' - ' + Tipo + ' (' + Nombre + ')';
+ end;
+end;
+
+procedure TfEditorCalendarioMontajes.EventHintText(Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
+var
+ Nombre : String;
+ Tipo : String;
+begin
+ inherited;
+ if not VarIsNull(AEvent.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE)) then
+ begin
+ Nombre := VarToStr(AEvent.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE));
+ Tipo := VarToStr(AEvent.GetCustomFieldValueByName(fld_CITASTIPOTAREA));
+ AText := AEvent.Caption + #10#13 + Tipo + ' (' + Nombre + ')';
+ end;
+end;
+
+procedure TfEditorCalendarioMontajes.FormShow(Sender: TObject);
+begin
+ inherited FormShow(Sender);
+
+ ViewCitas.Calendario.OnGetEventDisplayText := EventDisplayText;
+ ViewCitas.Calendario.OnGetEventHintText := EventHintText;
+end;
+
+destructor TfEditorCalendarioMontajes.destroy;
+begin
+ ViewCitas.Calendario.OnGetEventDisplayText := Nil;
+ ViewCitas.Calendario.OnGetEventHintText := Nil;
+
+ inherited;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.ddp b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.dfm b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.dfm
new file mode 100644
index 0000000..9d7a5c7
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.dfm
@@ -0,0 +1,67 @@
+inherited fEditorCalendarioRecepciones: TfEditorCalendarioRecepciones
+ Caption = 'fEditorCalendarioRecepciones'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inline frViewCalendarioRecepciones: TfrViewCalendarioConFiltro [3]
+ Left = 0
+ Top = 76
+ Width = 630
+ Height = 319
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited cxScheduler: TcxScheduler
+ Height = 319
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ Storage = cxSchedulerDBStorage
+ Selection = 56
+ Splitters = {
+ E7010000FA00000076020000FF000000E201000000000000E70100003F010000}
+ StoredClientBounds = {0000000000000000760200003F010000}
+ inherited pnlVendedores: TPanel
+ Height = 64
+ inherited cxResources: TcxCheckListBox
+ Height = 40
+ end
+ inherited tbxMain: TTBXToolbar
+ Top = 58
+ Visible = False
+ end
+ end
+ 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 dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList [9]
+ end
+ inherited cxSchedulerDBStorage: TcxSchedulerDBStorage [10]
+ Resources.DataSource = DADataSource2
+ Resources.ResourceName = 'DESCRIPCION'
+ end
+ inherited DADataSource: TDADataSource [11]
+ end
+ inherited dxComponentPrinter1: TdxComponentPrinter [12]
+ inherited dxComponentPrinter1Link2: TcxSchedulerReportLink
+ BuiltInReportLink = True
+ end
+ end
+ object DADataSource2: TDADataSource
+ Left = 95
+ Top = 80
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.pas b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.pas
new file mode 100644
index 0000000..491d66c
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uEditorCalendarioRecepciones.pas
@@ -0,0 +1,142 @@
+unit uEditorCalendarioRecepciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorCalendarioConFiltro, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon, dxPScxScheduler2Lnk,
+ DB, uDADataTable, cxSchedulerStorage, cxSchedulerDBStorage,
+ dxLayoutLookAndFeels, JvAppStorage, JvAppRegistryStorage, cxCheckBox,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
+ ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView,
+ uViewBase, uViewCalendarioBase, uViewCalendarioConFiltro, uBizCitas;
+
+type
+ IEditorCalendarioRecepciones = interface(IEditorCalendarioConFiltro)
+ ['{108A5E35-18F4-4100-B4EB-F059AC86BBB4}']
+ function GetDocumentos: IBizDocumentos;
+ procedure SetDocumentos(const Value: IBizDocumentos);
+ property Documentos : IBizDocumentos read GetDocumentos write SetDocumentos;
+ end;
+
+ TfEditorCalendarioRecepciones = class(TfEditorCalendarioConFiltro, IEditorCalendarioRecepciones)
+ frViewCalendarioRecepciones: TfrViewCalendarioConFiltro;
+ DADataSource2: TDADataSource;
+
+ private
+ FDocumentos: IBizDocumentos;
+ procedure CargarLista; override;
+ function GetDocumentos: IBizDocumentos;
+ procedure SetDocumentos(const Value: IBizDocumentos);
+
+ protected
+ procedure InicializarCampos; override;
+ procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); override;
+
+ public
+ property Documentos : IBizDocumentos read GetDocumentos write SetDocumentos;
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorCalendarioRecepciones: TfEditorCalendarioRecepciones;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorCalendarioRecepciones }
+uses schCitasClient_Intf, uEditorCalendarioBase, uDataModuleCalendarios;
+
+procedure TfEditorCalendarioRecepciones.CargarLista;
+begin
+ NombreLista := 'Documentos';
+ inherited;
+end;
+
+constructor TfEditorCalendarioRecepciones.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewCitas := frViewCalendarioRecepciones;
+// (ViewCitas as IViewCalendarioConFiltro).Resources.OnEditValueChanged := Nil;
+end;
+
+function TfEditorCalendarioRecepciones.GetDocumentos: IBizDocumentos;
+begin
+ Result := FDocumentos;
+end;
+
+procedure TfEditorCalendarioRecepciones.InicializarCampos;
+var
+ aField : TcxSchedulerDBStorageField;
+begin
+ inherited;
+
+ with cxSchedulerDBStorage.CustomFields do
+ begin
+ try
+ BeginUpdate;
+
+ aField := Add;
+ aField.FieldName := CTE_TIPO_DOCUMENTO;
+
+ finally
+ EndUpdate;
+ end;
+ end;
+
+end;
+
+procedure TfEditorCalendarioRecepciones.InicializarEvento(var aEvent: TcxSchedulerControlEvent);
+var
+ ItemSeleccionado: Integer;
+ ItemTextSeleccionado: String;
+ ADocumento : IBizDocumentos;
+begin
+ inherited;
+
+ with AEvent do
+ begin
+ SetCustomFieldValueByName(fld_CITASTIPOTAREA, TextoTipoCita[Ord(tcRecepcion)]);
+
+ //Preparamos la fuente de datos para que se cargen los tipos de pedido del documento seleccionado
+ //CAMBIARÁ
+
+
+ with (ViewCitas as IViewCalendarioConFiltro).Resources do
+ begin
+ Items.BeginUpdate;
+ for ItemSeleccionado := 0 to Items.Count - 1 do
+ if Items[ItemSeleccionado].Checked then
+ Break;
+ Items.EndUpdate;
+ end;
+ ItemTextSeleccionado := (ViewCitas as IViewCalendarioConFiltro).Resources.Items[ItemSeleccionado].Text;
+
+ ADocumento := dmCalendarios.GetDocumento(ItemTextSeleccionado);
+ ADocumento.DataTable.Active := True;
+ SetCustomFieldValueByName(CTE_TIPO_DOCUMENTO, ADocumento.CODIGO);
+ ADocumento := Nil;
+
+ AllDayEvent := True;
+ end;
+end;
+
+procedure TfEditorCalendarioRecepciones.SetDocumentos(const Value: IBizDocumentos);
+begin
+ FDocumentos := Value;
+
+ if Assigned(FDocumentos) then
+ begin
+ DADataSource2.DataTable := FDocumentos.DataTable;
+
+ if not FDocumentos.DataTable.Active then
+ FDocumentos.DataTable.Active := True;
+ end
+ else
+ DADataSource2.DataTable := Nil;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.ddp b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.dfm b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.dfm
new file mode 100644
index 0000000..99c3414
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.dfm
@@ -0,0 +1,176 @@
+object ModuleCalendarios: TModuleCalendarios
+ OldCreateOrder = True
+ DefaultAction = actMediciones
+ Description = 'Agenda'
+ ModuleMenu = MainMenu
+ ModuleName = 'Agenda'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 743
+ Top = 220
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000003F74944415478DA
+ BD957B4C5B6514C07F2D2D9416A40B38B083B291381DD98693988118A6892608
+ D14D668CD1CD6982A8F860EA8C7F684C4C9C5B14B30D8D9338CC1E42946C6C63
+ 43C79AC5B94D200B5319E1FD280104DA1568A1406F1FB7DE768C50C7A3FEA127
+ 3939E77B9CF3CB3DDF77CF27F37ABDFC9722FBDF003299CC6F9F2B3CB65F3285
+ 921E283FB07D673049168B990FE02DDBBF8DFBB30AF8A3E6A02C48C08231B380
+ A4F77FF73BE9420B996BEEA6E4E411AC2979419561A118E367A9B200C0474FAC
+ C770FC07FFB8B5AD96B73E2C0E4834E5F03229E94D7B733C2559A1EBF86C8C3A
+ A5C83F6F55B5CF0F18EEEFA3E24811CFECD8455C827EC9E4D302386DFD18AFEE
+ E3CE753BB9E15C81DB0376CD0280F964B1E47E5FF0CEFABEE43E9917F06FAFE0
+ 521200386168F46E7D2C65C920B75BC470CD44EBB093419B07BBD383522E121B
+ 0E69492A925769A9ACA9E3BBB22AFF8D5A14F0D5B17301E391090FA30A3DFAD5
+ AB707A44CC9609C6C6EC84466A10E572C99F241E1B892A13DF5754070778637B
+ 96DFFFF8EB6AE4BA0D444447611E1A637D8292C45825A72AEAC8DC9CC1E5261B
+ ED2607823C0487B193B1EB55341ABE090EE02BCBBBA5CDAC4C4EC2661A212FFB
+ 2ED46A39E3D2A1769A44AC935E5C8E712C374638D7EC66C42DC77CF114BD3F7F
+ 703BE09F65F149B719E2531FC262B65290134B84464EDFA848EBA048885C3A17
+ E704BB5FC965CB8E7CD6A63FCE9ED37D8C5B46E92DDF9B382FE056596EF9FBAA
+ FA7168A2D0874F93FD600C6E29E4B74E372E3788AE293E7D6D2B9B72B6F0D44B
+ F9A89532BE3DDDCD9501277D35D56F070578EF680FEE3015CF6744B2325E4DAF
+ 45C4681699B49A38BAE71D6256E879FAE5D789940E3B4A7B07B5B5FD94363A30
+ 35D4960555A26B1389C8140A428DD7C9DFF5243D5272450874345CA4E3D79334
+ 751AF1F5CA0D69E9E4BE584071D12F74E9EEC5DC507736A82F283CDCC1B442CD
+ 03496AB45A0D4A0533EA458E1B954A895202864A73DA5019672E0D72B0DEC6E0
+ 65C3E1A0004595DDB409E1C484B848BB2F6E0E60466792FB7CBD4AC1B6E226DA
+ A54BD0F5E397AF0655A2018B93CEB03588A2C80B9BE2D044A96E4BEE535D9882
+ B3F5837C72DE82BDBB8DC1F23C5D0060F323EBA466E5F1DF7BB7470CF03FAFEC
+ A2C3AB25CC25F066968EB8B8081CD2BACD3AC1EA782DCBA443A9ACFB8BBDE7CD
+ 08820BE1D22106EA4B03FF839CCC640E555C98B707395D1ECEB4C8995A9E8830
+ 25B051AF62ED72053F9DB84AF6B319185AACB48F79F10802BAA12B4C0C77F1A7
+ A12410B0FB8B92451B9D287AB12912A4D6BB91B098E8D967D6BF26F5697B4F3B
+ F29E0BC4442A9049BD29A017CDDDBCA42C7B541F7ECFC3B9AA98E854294AEB9E
+ B65BEC7DCDF562674595F42A0CCDDDFA374E2097A403759C690000000049454E
+ 44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actMediciones: TAction
+ Category = 'Agenda'
+ Caption = 'Agenda'
+ ImageIndex = 0
+ OnExecute = actMedicionesExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 90
+ Caption = 'A&genda'
+ GroupIndex = 1
+ ImageIndex = 0
+ OnClick = actMedicionesExecute
+ object Calendario1: TMenuItem
+ Tag = 90
+ Action = actMediciones
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000020E4944415478DA
+ A5935148535118C77FD7B995E5C21CA68B066A08D540849E4620410F93C256AE
+ 20230823F42924CAA8071D7B08E9A1879EB37AAA204741413D15962D7CD0A264
+ D440289DC26ACEB5ED7AB7DDDDED76B7B5626CEB213F38FC0FE79CEFF7FD0FDF
+ 3942DB9539950D8490038CF576966DA4D2105B57898AD9BCC6122AB2B6169754
+ 44A9A0D9CF23950195928B4945402E6A177E03FED77EC3C709048F6752753A4F
+ FCF36026AB925632DA1514D2E94C7EEE79F18EBBF79F9603DC6E7749B2AAF95B
+ 150D289B9A51F57564D6C30C0F9EE4F5CC87EA0097CB95D78B97AE71F9C6130E
+ D9BB097C8FB1B8A6407D1391509446C9CFDBA9E77F01952A7F93F7D269B3D165
+ D1B3D3A4239294F185B6303B1F6439AAE3EBCB3BA58062E59C5E1819A7C6DACF
+ E90346AC1D26225A6796B58E8C9F3D86AD6F884FD1DDBC9FF3557710485868DC
+ 7790D1336DC43302B32B1213C3FDEC393240778F03EFF4021E6FB8BA83C1B187
+ 44B20D5C3DDF85683473F39CA3A4407DC729BCB1D6EA0E96E226A2663B037DED
+ 246A7424D3DA238A49646BB7D2BE0D269FCDF3783A5800F43A8EFFE9AF9C536D
+ ACFE4C30FAE807965D469CF65616E302920CE63AD08B6B0CDDF22107BF14003D
+ 878F72CFF3AAEC01F9571466C22DB46C376035496C1652C4754D3C78134289C7
+ 6896A60A80EBB7CB938B91CC1A499AF69334EC20256B1F4A4E61100398053F06
+ 240455DDD06FE617B61D3A44F24E4F720000000049454E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000004D64944415478DA
+ BD957D50545514C07F6FD905044492B5D6044CD210FCFE0C9B093533C4444B82
+ 1C14AB51FE404873C26AC68FCCB226C5D132354B9D880835191D1D5304B2A6D1
+ 48938F2C34244405D915C4E563835D78BBBDB7C88B6D91D8FEF0CCDC39F79E77
+ CFFDBD73EE3BE709369B8DFB29820C14044131C4AFC8785152FBA5B1E0EB8F12
+ 0EB87A604FFE765637405BE6B6458C9FB58CA29C5D828BBC1EFD1560F09B854A
+ 5EA7984B498E9B4FCA86548C6396BA9CB29EFC2B3E1C2F28C075D1A3EDC6DC43
+ FB899F399DB5DB37B27CCDC74E07B65BC16C81568BCD3E4C2DB2EE589BDB245D
+ 7648F1F79F9CA63C134B5751787267F7C088D061EC3E9CEE046C6D93615D0016
+ 4798FC22B6CA438ABFF7D8B4BBFB405DDE0350964B97CF3A007B0393E71E37B3
+ 157FB7B0CD76BB2CF704EA6F5CE7607A1A712FA5A20B0C720926DB04D30DAA8B
+ B6E117BA82BAB600E585EF09FCB7B80273DCE7788E13D0E5CFD145F12BD9F30F
+ 303BB7C41633738C4B07AC395049F6B1DFB971BDCEC11E18A425267A04CB676A
+ 11452BA2D5CA915305ECCB3CFADFC04F324E3AD9F4EEC315D0CA9469786BFB4B
+ 69173B8645A4C5D24EE6CE5C059CF8A42FC7F2CFF51E989230CB21AA6D3B7E60
+ 69EC281E191B82A1BA960754CD840DF1E3F9C8CD1CCE5945E95523E78D7D308B
+ 36BECB3AC36BC953D1592EFF3F60E8A2E344853F4CD098C7B85A7289D9E10F32
+ 794200CD2DAD145FD4E3A90BC068B252F8D36F9CBB2922FAF861B8504EE2742B
+ 5F7D73C235606774EFBD1F4B45512949B121E8745E4859E48A41A4FA8E0D3715
+ 988C356C5DB99025EBF6917EA69ECB3F96313DF00ED5B7CB9C81DDDD59A7ECC8
+ 11ED7722658A886015E19307D9E767AFB4633283462D9543731D69AFC6316771
+ 1233E6BDC0D1C3BF9073BB2FD7F38B19EA7E86E2BCCF9C815D53D875ED1391CE
+ 9AF5F351D55D2331360C51B0D128F5D19FCBDB259880A5C5C8A665F3895CB084
+ C8D878346E022A53138BB79660F8B50A9D299FF20B5FBA064C5D3D8F89FD9B09
+ 9FA0A35DB215558AF6E8AACA0AF9E2835446854F65CEC25750BBC1C08041685A
+ CD246F29A0B4E816FD0C7954FF91E11A30E58D68B62C7E878CAC25F8870CA741
+ 8A502DA5727DC253AC7D7727EB5727A192FEADF2EF352DF320519336F1E8AC27
+ A8AA6AC5479F87BE2CA3F777F8D6E70696AE8CE2E9000B6DBE03A48296618294
+ 3AA9A599EEB0213186ED47F2159B466D23A88F86675ECFE55291817EFA135497
+ EDEF7D8472494C9D3B9E606E133C7A186A55C787A276EBD032447D57CB6B1F09
+ DC58594BDC9E0A6ACE5748777842BA4317809D6511B9600A8F6B2D8C98385482
+ 09DDC23C241DE4A92179D3F71498FD69CA3F89BF7B1925797B7B0FEC8C322422
+ 94D69A1A52660FC677D0000495CD218D7D352A06BAABF934EB02BB2E8AB4379A
+ 08AD3D4D4D53BD631D3E376314BB324FF5D8B0E53E2A473929269C56BD8184B1
+ DECC891A4963730BE346BE8DB1762BB70C0DA46515937BCB13542ABC0A8E9310
+ 3F8ECCEC5C4760F4B491F6CE6EEFF0F62E6FA35D997768AB54E97BCF3629CD3B
+ 70FA68A92EF50CF65571F35A1DBA210FF167A3805AABA5ADDE8857C969E626BD
+ DC7D2F9D1D11C6DE83F9F4461A1B4C7C9B574971BDB6DBE7FD340D0CF7AA21F2
+ D9097879FBD86D4EC08D5B76F70AD655CC52D36EAC1369B3796015540896BFF0
+ F430D357EB89BBA7B7D37E05783FE56F92C591F6D1A442580000000049454E44
+ AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.pas b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.pas
new file mode 100644
index 0000000..72ec666
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uPluginControllerCalendarios.pas
@@ -0,0 +1,79 @@
+unit uPluginControllerCalendarios;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCCuentas = interface(IInterface)
+ ['{269979BB-DCF8-41FD-8F46-57022242FE86}']
+ end;
+
+ TModuleCalendarios = class(TModuleController, IMCCuentas)
+ actMediciones: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ Calendario1: TMenuItem;
+ SmallImages: TPngImageList;
+ procedure actMedicionesExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleCalendarios,
+ uBizCitas,
+
+ uEditorCalendarioMediciones, uEditorCalendarioBase,
+ uEditorCalendarioConFiltro;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleCalendarios.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleCalendarios.actMedicionesExecute(Sender: TObject);
+var
+ aObj: IEditorCalendarioMediciones;
+ ACitas : IBizCitas;
+ AVendedores : IBizVendedores;
+begin
+ ACitas := dmCalendarios.GetMediciones;
+ AVendedores := dmCalendarios.GetVendedores;
+ aObj := TfEditorCalendarioMediciones.Create(Application);
+ try
+ with aObj do
+ begin
+ Citas := ACitas;
+ Vendedores := AVendedores;
+ ShowEmbedded;
+ end;
+ finally
+ ACitas := NIL;
+ AVendedores := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleCalendarios);
+
+finalization
+ UnRegisterModuleClass(TModuleCalendarios);
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uPluginControllerCuentas.ddp b/Modulos/Calendarios/Cliente/uPluginControllerCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uPluginControllerCuentas.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioBase.ddp b/Modulos/Calendarios/Cliente/uViewCalendarioBase.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uViewCalendarioBase.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioBase.dfm b/Modulos/Calendarios/Cliente/uViewCalendarioBase.dfm
new file mode 100644
index 0000000..bb74873
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioBase.dfm
@@ -0,0 +1,45 @@
+inherited frViewCalendarioBase: TfrViewCalendarioBase
+ Width = 443
+ Height = 270
+ Align = alClient
+ object cxScheduler: TcxScheduler
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 270
+ DateNavigator.RowCount = 2
+ DateNavigator.ShowWeekNumbers = False
+ ViewDay.Active = True
+ ViewDay.AutoContentHeight = True
+ ViewDay.GroupingKind = gkByDate
+ ViewTimeGrid.ShowTimeAsClock = True
+ ViewWeek.GroupingKind = gkByDate
+ ViewWeek.ShowTimeAsClock = True
+ ViewWeeks.GroupingKind = gkNone
+ ViewWeeks.ShowTimeAsClock = True
+ Align = alClient
+ BevelInner = bvNone
+ BevelOuter = bvNone
+ BorderStyle = cxcbsNone
+ ContentPopupMenu.Items = [cpmiNewEvent, cpmiToday, cpmiGoToThisDay]
+ DialogsLookAndFeel.NativeStyle = True
+ EventOperations.InplaceEditing = False
+ EventOperations.Recurrence = False
+ EventPopupMenu.Items = [epmiOpen, epmiDelete]
+ LookAndFeel.Kind = lfUltraFlat
+ LookAndFeel.NativeStyle = False
+ OptionsCustomize.DynamicSizing = True
+ OptionsView.DayBorderColor = clActiveCaption
+ OptionsView.ShowEventsWithoutResource = True
+ OptionsView.WorkDays = [dMonday, dTuesday, dWednesday, dThursday, dFriday, dSaturday]
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ ParentFont = True
+ ShowHint = True
+ TabOrder = 0
+ Selection = 1
+ Splitters = {
+ 2C010000FA000000BB010000FF00000027010000000000002C0100000E010000}
+ StoredClientBounds = {0000000000000000BB0100000E010000}
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioBase.pas b/Modulos/Calendarios/Cliente/uViewCalendarioBase.pas
new file mode 100644
index 0000000..6b79953
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioBase.pas
@@ -0,0 +1,79 @@
+unit uViewCalendarioBase;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, dxLayoutControl, cxControls, Menus, cxStyles,
+ cxGraphics, cxEdit, cxScheduler, cxSchedulerStorage,
+ cxSchedulerCustomControls, cxSchedulerCustomResourceView,
+ cxSchedulerDayView, cxSchedulerDateNavigator, cxSchedulerTimeGridView,
+ cxSchedulerUtils, cxSchedulerWeekView, cxSchedulerYearView, dxPrnDev,
+ dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon,
+ dxPScxScheduler2Lnk, dxPrnDlg, cxSchedulerDBStorage, ActnList, DB,
+ uDADataTable, uBizCitas, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, uViewGrid;
+
+type
+ IViewCalendarioBase = interface(IViewBase)
+ ['{A5CF0823-17C6-4FBA-9DC8-6E8D310503F5}']
+ function getCalendario: TcxScheduler;
+ property Calendario: TcxScheduler read getCalendario;
+
+ function GetpAnchorDate: TDateTime;
+ procedure SetpAnchorDate(const Value: TDateTime);
+ property pAnchorDate: TDateTime read GetpAnchorDate write SetpAnchorDate;
+ end;
+
+ TfrViewCalendarioBase = class(TfrViewBase, IViewCalendarioBase)
+ cxScheduler : TcxScheduler;
+ private
+ AnchorDate: TDateTime;
+
+ protected
+ function GetpAnchorDate: TDateTime;
+ procedure SetpAnchorDate(const Value: TDateTime);
+
+ function getCalendario: TcxScheduler;
+ public
+ property pAnchorDate: TDateTime read GetpAnchorDate write SetpAnchorDate;
+ property Calendario: TcxScheduler read getCalendario;
+ constructor Create(AOwner : TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ frViewCalendarioBase: TfrViewCalendarioBase;
+
+implementation
+
+{$R *.dfm}
+
+constructor TfrViewCalendarioBase.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ AnchorDate := Date;
+end;
+
+destructor TfrViewCalendarioBase.Destroy;
+begin
+ inherited;
+end;
+
+function TfrViewCalendarioBase.getCalendario: TcxScheduler;
+begin
+ Result := cxScheduler;
+end;
+
+function TfrViewCalendarioBase.GetpAnchorDate: TDateTime;
+begin
+ Result := AnchorDate;
+end;
+
+procedure TfrViewCalendarioBase.SetpAnchorDate(const Value: TDateTime);
+begin
+ AnchorDate := Value;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.ddp b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.ddp differ
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.dfm b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.dfm
new file mode 100644
index 0000000..e11a194
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.dfm
@@ -0,0 +1,624 @@
+inherited frViewCalendarioConFiltro: TfrViewCalendarioConFiltro
+ inherited cxScheduler: TcxScheduler
+ OnInitEventImages = cxSchedulerInitEventImages
+ ControlBox.Control = pnlVendedores
+ EventImages = ImageList1
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ Selection = 1
+ Splitters = {
+ 2C010000FA000000BB010000FF00000027010000000000002C0100000E010000}
+ StoredClientBounds = {0000000000000000BB0100000E010000}
+ object pnlVendedores: TPanel
+ Left = 0
+ Top = 0
+ Width = 143
+ Height = 15
+ Align = alClient
+ BevelOuter = bvNone
+ Color = 16383743
+ Constraints.MaxHeight = 440
+ ParentBackground = True
+ TabOrder = 0
+ object cxResources: TcxCheckListBox
+ Left = 0
+ Top = 18
+ Width = 143
+ Height = 416
+ Align = alClient
+ Items = <>
+ ParentFont = False
+ Sorted = True
+ Style.BorderStyle = cbsNone
+ Style.LookAndFeel.Kind = lfStandard
+ Style.TransparentBorder = False
+ StyleDisabled.BorderStyle = cbsNone
+ StyleDisabled.LookAndFeel.Kind = lfStandard
+ StyleFocused.BorderStyle = cbsNone
+ StyleFocused.LookAndFeel.Kind = lfStandard
+ StyleHot.BorderStyle = cbsNone
+ StyleHot.LookAndFeel.Kind = lfStandard
+ TabOrder = 0
+ OnEditValueChanged = cxResourcesEditValueChanged
+ end
+ object Panel2: TPanel
+ Left = 0
+ Top = 0
+ Width = 143
+ Height = 18
+ Align = alTop
+ BevelInner = bvSpace
+ BevelOuter = bvNone
+ Caption = 'Titulo filtro'
+ Color = 14280169
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 1
+ end
+ object tbxMain: TTBXToolbar
+ Left = 0
+ Top = 9
+ Width = 143
+ Height = 6
+ Align = alBottom
+ Caption = 'tbxMain'
+ ChevronHint = 'M'#225's botones|'
+ DockMode = dmCannotFloatOrChangeDocks
+ DockPos = -23
+ DockRow = 1
+ DragHandleStyle = dhNone
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 2
+ object TBXItem5: TTBXItem
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ end
+ end
+ object ImageList1: TImageList
+ Height = 32
+ Width = 32
+ Left = 744
+ Top = 280
+ Bitmap = {
+ 494C010101000400040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000800000002000000001002000000000000040
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000A0A0AFF0A0A
+ 0AFF0A0A0AFF0A0A0AFF0A0A0AFF000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000A0A0AFF0A0A
+ 0AFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF0000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000A0A0AFF0A0A0AFF76FC
+ FAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000A0A0AFF0A0A0AFF76FCFAFF76FC
+ FAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000A0A0AFF0A0A0AFF76FCFAFF76FCFAFF76FC
+ FAFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000A0A0AFF0A0A0AFF76FCFAFF76FCFAFF76FCFAFF76FC
+ FAFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A
+ 0AFF000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000A0A0AFF0A0A0AFF76FCFAFF76FCFAFF306074FF60B7
+ D0FF43CCFFFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A
+ 0AFF0A0A0AFF0000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000A0A0AFF0A0A0AFF306074FF0A0A0AFF43CC
+ FFFF76FCFAFF43CCFFFF306074FF43CCFFFF76FCFAFF76FCFAFF306074FF0A0A
+ 0AFF0A0A0AFF0A0A0AFF00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000A0A0AFF0A0A0AFF43CCFFFF76FC
+ FAFF43CCFFFF306074FF0A0A0AFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF3060
+ 74FF0A0A0AFF0A0A0AFF0A0A0AFF000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000A0A0AFF0A0A0AFF97DE
+ F3FF306074FF0A0A0AFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF76FC
+ FAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF0000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000A0A0AFF0A0A
+ 0AFF0A0A0AFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF43CCFFFF76FCFAFF76FC
+ FAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000A0A
+ 0AFF0A0A0AFF76FCFAFF76FCFAFF306074FF60B7D0FF43CCFFFF76FCFAFF76FC
+ FAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000A0A0AFF0A0A0AFF306074FF0A0A0AFF43CCFFFF76FCFAFF43CCFFFF3060
+ 74FF43CCFFFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A0AFF0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000A0A0AFF0A0A0AFF43CCFFFF76FCFAFF43CCFFFF306074FF0A0A
+ 0AFF60B7D0FF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A0AFF0A0A
+ 0AFF000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000A0A0AFF0A0A0AFF43CCFFFF306074FF0A0A0AFF43CC
+ FFFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0A0A
+ 0AFF000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000A0A0AFF0A0A0AFF0A0A0AFF43CCFFFF76FC
+ FAFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A
+ 0AFF000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000A0A0AFF0A0A0AFF97DEF3FF76FC
+ FAFF306074FF60B7D0FF43CCFFFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A
+ 0AFF000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000A0A0AFF0A0A0AFF3060
+ 74FF0A0A0AFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000A0A0AFF0A0A
+ 0AFF43CCFFFF76FCFAFF76FCFAFF76FCFAFF306074FF0A0A0AFF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000A0A
+ 0AFF0A0A0AFF76FCFAFF76FCFAFF306074FF0A0A0AFF00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000A0A0AFF0A0A0AFF306074FF0A0A0AFF0000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000A0A0AFF0A0A0AFF000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000424D3E000000000000003E000000
+ 2800000080000000200000000100010000000000000200000000000000000000
+ 000000000000000000000000FFFFFF00FFFFFFFF000000000000000000000000
+ FFFFFFFF000000000000000000000000FFFFFFFF000000000000000000000000
+ FFFFFFFF000000000000000000000000FFC1FFFF000000000000000000000000
+ FFC0FFFF000000000000000000000000FF807FFF000000000000000000000000
+ FF003FFF000000000000000000000000FE001FFF000000000000000000000000
+ FC000FFF000000000000000000000000FC0007FF000000000000000000000000
+ FE0003FF000000000000000000000000FF0001FF000000000000000000000000
+ FF8000FF000000000000000000000000FFC0007F000000000000000000000000
+ FFE0003F000000000000000000000000FFF0001F000000000000000000000000
+ FFF8000F000000000000000000000000FFFC000F000000000000000000000000
+ FFFE000F000000000000000000000000FFFF000F000000000000000000000000
+ FFFF801F000000000000000000000000FFFFC03F000000000000000000000000
+ FFFFE07F000000000000000000000000FFFFF0FF000000000000000000000000
+ FFFFF9FF000000000000000000000000FFFFFFFF000000000000000000000000
+ FFFFFFFF000000000000000000000000FFFFFFFF000000000000000000000000
+ FFFFFFFF000000000000000000000000FFFFFFFF000000000000000000000000
+ FFFFFFFF00000000000000000000000000000000000000000000000000000000
+ 000000000000}
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.pas b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.pas
new file mode 100644
index 0000000..0430111
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioConFiltro.pas
@@ -0,0 +1,119 @@
+unit uViewCalendarioConFiltro;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewCalendarioBase, Menus, cxStyles, cxGraphics, cxEdit,
+ cxScheduler, cxSchedulerStorage, cxSchedulerCustomControls,
+ cxSchedulerCustomResourceView, cxSchedulerDayView,
+ cxSchedulerDateNavigator, cxSchedulerTimeGridView, cxSchedulerUtils,
+ cxSchedulerWeekView, cxSchedulerYearView, dxPrnDev, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxContainer, cxCheckListBox, ExtCtrls,
+ dxPSCore, dxPScxCommon, dxPScxScheduler2Lnk, dxPrnDlg,
+ cxSchedulerDBStorage, ActnList, cxControls, JvAppStorage,
+ JvAppRegistryStorage, JvComponentBase, JvFormPlacement, TB2Item, TBX,
+ TB2Dock, TB2Toolbar, DB, uDADataTable, ImgList;
+
+type
+ IViewCalendarioConFiltro = interface(IViewCalendarioBase)
+ ['{636C30A6-74A9-4B6D-A68A-2B26DE208A7F}']
+ function getResources: TcxCheckListBox;
+ property Resources: TcxCheckListBox read getResources;
+ end;
+
+ TfrViewCalendarioConFiltro = class(TfrViewCalendarioBase, IViewCalendarioConFiltro)
+ pnlVendedores: TPanel;
+ cxResources: TcxCheckListBox;
+ Panel2: TPanel;
+ tbxMain: TTBXToolbar;
+ TBXItem5: TTBXItem;
+ ImageList1: TImageList;
+ procedure cxResourcesEditValueChanged(Sender: TObject);
+ procedure cxSchedulerInitEventImages(Sender: TcxCustomScheduler;
+ AEvent: TcxSchedulerControlEvent; AImages: TcxSchedulerEventImages);
+ protected
+ function getResources: TcxCheckListBox;
+ public
+ property Resources: TcxCheckListBox read getResources;
+
+ public
+ constructor Create(AOwner : TComponent); override;
+ end;
+
+var
+ frViewCalendarioConFiltro: TfrViewCalendarioConFiltro;
+
+implementation
+
+{$R *.dfm}
+
+procedure TfrViewCalendarioConFiltro.cxResourcesEditValueChanged(Sender: TObject);
+var
+ AIndex: Integer;
+begin
+ AIndex := cxResources.ItemIndex;
+
+ if AIndex < 0 then
+ Exit;
+ with cxResources.Items[AIndex] do
+ TcxSchedulerStorageResourceItem(ItemObject).Visible := Checked;
+
+ if cxScheduler.Storage.Resources.ResourceItems.VisibleResourceCount = 0 then
+ begin
+ cxResources.Items[AIndex].Checked := True;
+ Exit;
+ end;
+end;
+
+procedure TfrViewCalendarioConFiltro.cxSchedulerInitEventImages(
+ Sender: TcxCustomScheduler; AEvent: TcxSchedulerControlEvent;
+ AImages: TcxSchedulerEventImages);
+begin
+ inherited;
+ if not cxScheduler.ViewWeeks.Active then
+ if AEvent.LabelColor = EventLabelColors[6] then
+ AImages.Add(0);
+end;
+
+constructor TfrViewCalendarioConFiltro.Create(AOwner: TComponent);
+begin
+ inherited;
+ {
+ dsCitas.DataSet := TablaCitas;
+ dsVendedores.DataSet := TablaVendedores;
+
+ with TablaCitas do
+ begin
+ Database := dmBaseDatos.BD;
+ Transaction := dmBaseDatos.Transaccion;
+ SelectSQL.Assign(dmTablaCitas.sqlConsultar);
+ SelectSQL.Add('WHERE TIPOTAREA = ''' + TextoTipoCita[Ord(tcMedicion)] + '''');
+ InsertSQL.Assign(dmTablaCitas.sqlInsertar);
+ ModifySQL.Assign(dmTablaCitas.sqlModificar);
+ DeleteSQL.Assign(dmTablaCitas.sqlEliminar);
+ RefreshSQL.Assign(dmTablaCitas.sqlRefrescar);
+ RefreshSQL.Add('and TIPOTAREA = ''' + TextoTipoCita[Ord(tcMedicion)] + '''');
+
+ BeforePost := TablaCitasBeforePost;
+ AfterPost := TablaCitasAfterPost;
+ Prepare;
+ end;
+
+ with TablaVendedores do
+ begin
+ Database := dmBaseDatos.BD;
+ Transaction := dmBaseDatos.Transaccion;
+ SelectSQL.Add('select * from VENDEDORES');
+ Prepare;
+ end;
+}
+end;
+
+function TfrViewCalendarioConFiltro.getResources: TcxCheckListBox;
+begin
+ Result := cxResources;
+end;
+
+end.
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.dfm b/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.dfm
new file mode 100644
index 0000000..4959589
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.dfm
@@ -0,0 +1,26 @@
+inherited frViewCalendarioMediciones: TfrViewCalendarioMediciones
+ Width = 586
+ Height = 406
+ inherited cxScheduler: TcxScheduler
+ Width = 586
+ Height = 406
+ OptionsView.WorkStart = 0.416666666666666700
+ OptionsView.WorkFinish = 0.854166666666666800
+ Selection = 231
+ Splitters = {
+ BB010000FA0000004A020000FF000000B601000000000000BB01000096010000}
+ StoredClientBounds = {00000000000000004A02000096010000}
+ inherited pnlVendedores: TPanel
+ Height = 151
+ inherited cxResources: TcxCheckListBox
+ Height = 127
+ end
+ inherited Panel2: TPanel
+ Caption = 'Vendedores'
+ end
+ inherited tbxMain: TTBXToolbar
+ Top = 145
+ end
+ end
+ end
+end
diff --git a/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.pas b/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.pas
new file mode 100644
index 0000000..79dadb4
--- /dev/null
+++ b/Modulos/Calendarios/Cliente/uViewCalendarioMediciones.pas
@@ -0,0 +1,29 @@
+unit uViewCalendarioMediciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewCalendarioConFiltro, Menus, cxStyles, cxGraphics, cxEdit,
+ cxScheduler, cxSchedulerStorage, cxSchedulerCustomControls,
+ cxSchedulerCustomResourceView, cxSchedulerDayView,
+ cxSchedulerDateNavigator, cxSchedulerTimeGridView, cxSchedulerUtils,
+ cxSchedulerWeekView, cxSchedulerYearView, ImgList, TB2Item, TBX, TB2Dock,
+ TB2Toolbar, cxContainer, cxCheckListBox, ExtCtrls, cxControls;
+
+type
+ TfrViewCalendarioMediciones = class(TfrViewCalendarioConFiltro)
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewCalendarioMediciones: TfrViewCalendarioMediciones;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Calendarios/Reglas/schCitasClient_Intf.pas b/Modulos/Calendarios/Reglas/schCitasClient_Intf.pas
new file mode 100644
index 0000000..5437e2d
--- /dev/null
+++ b/Modulos/Calendarios/Reglas/schCitasClient_Intf.pas
@@ -0,0 +1,862 @@
+unit schCitasClient_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_CITAS = '{8A00AC3C-FD7C-4241-B7C7-8EFD1937F000}';
+ RID_VENDEDORES = '{59850C69-DF4D-44E2-BA00-C4FDC03E39E0}';
+
+ { Data table names }
+ nme_CITAS = 'CITAS';
+ nme_VENDEDORES = 'VENDEDORES';
+
+ { CITAS fields }
+ fld_CITASID = 'ID';
+ fld_CITASPARENTID = 'PARENTID';
+ fld_CITASSTART = 'START';
+ fld_CITASTIPO = 'TIPO';
+ fld_CITASFINISH = 'FINISH';
+ fld_CITASOPTIONS = 'OPTIONS';
+ fld_CITASCAPTION = 'CAPTION';
+ fld_CITASMENSAJE = 'MENSAJE';
+ fld_CITASRECURRENCEINDEX = 'RECURRENCEINDEX';
+ fld_CITASRESOURCEID = 'RESOURCEID';
+ fld_CITASLOCATION = 'LOCATION';
+ fld_CITASREMINDER = 'REMINDER';
+ fld_CITASSTATE = 'STATE';
+ fld_CITASLABELCOLOR = 'LABELCOLOR';
+ fld_CITASCODIGOCONTRATO = 'CODIGOCONTRATO';
+ fld_CITASTIPOTAREA = 'TIPOTAREA';
+ fld_CITASNOMBRECLIENTE = 'NOMBRECLIENTE';
+ fld_CITASPARTIDA = 'PARTIDA';
+ fld_CITASCOMPLETADA = 'COMPLETADA';
+ fld_CITASNOMBREPROVEEDOR = 'NOMBREPROVEEDOR';
+ fld_CITASCODIGOCOLUMNA = 'CODIGOCOLUMNA';
+ fld_CITASCODIGOFILA = 'CODIGOFILA';
+ fld_CITASEMPRESA = 'EMPRESA';
+
+ { CITAS field indexes }
+ idx_CITASID = 0;
+ idx_CITASPARENTID = 1;
+ idx_CITASSTART = 2;
+ idx_CITASTIPO = 3;
+ idx_CITASFINISH = 4;
+ idx_CITASOPTIONS = 5;
+ idx_CITASCAPTION = 6;
+ idx_CITASMENSAJE = 7;
+ idx_CITASRECURRENCEINDEX = 8;
+ idx_CITASRESOURCEID = 9;
+ idx_CITASLOCATION = 10;
+ idx_CITASREMINDER = 11;
+ idx_CITASSTATE = 12;
+ idx_CITASLABELCOLOR = 13;
+ idx_CITASCODIGOCONTRATO = 14;
+ idx_CITASTIPOTAREA = 15;
+ idx_CITASNOMBRECLIENTE = 16;
+ idx_CITASPARTIDA = 17;
+ idx_CITASCOMPLETADA = 18;
+ idx_CITASNOMBREPROVEEDOR = 19;
+ idx_CITASCODIGOCOLUMNA = 20;
+ idx_CITASCODIGOFILA = 21;
+ idx_CITASEMPRESA = 22;
+
+ { VENDEDORES fields }
+ fld_VENDEDORESCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_VENDEDORESCODIGO = 'CODIGO';
+ fld_VENDEDORESFECHAALTA = 'FECHAALTA';
+ fld_VENDEDORESUSUARIO = 'USUARIO';
+ fld_VENDEDORESNIFCIF = 'NIFCIF';
+ fld_VENDEDORESNOMBRE = 'NOMBRE';
+ fld_VENDEDORESNOTAS = 'NOTAS';
+ fld_VENDEDORESCALLE = 'CALLE';
+ fld_VENDEDORESPROVINCIA = 'PROVINCIA';
+ fld_VENDEDORESCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_VENDEDORESPOBLACION = 'POBLACION';
+ fld_VENDEDORESTELEFONO1 = 'TELEFONO1';
+ fld_VENDEDORESTELEFONO2 = 'TELEFONO2';
+ fld_VENDEDORESMOVIL = 'MOVIL';
+ fld_VENDEDORESFAX = 'FAX';
+ fld_VENDEDORESCORREO1 = 'CORREO1';
+ fld_VENDEDORESCORREO2 = 'CORREO2';
+ fld_VENDEDORESPAGINAWEB = 'PAGINAWEB';
+ fld_VENDEDORESPERSONACONTACTO = 'PERSONACONTACTO';
+
+ { VENDEDORES field indexes }
+ idx_VENDEDORESCODIGOEMPRESA = 0;
+ idx_VENDEDORESCODIGO = 1;
+ idx_VENDEDORESFECHAALTA = 2;
+ idx_VENDEDORESUSUARIO = 3;
+ idx_VENDEDORESNIFCIF = 4;
+ idx_VENDEDORESNOMBRE = 5;
+ idx_VENDEDORESNOTAS = 6;
+ idx_VENDEDORESCALLE = 7;
+ idx_VENDEDORESPROVINCIA = 8;
+ idx_VENDEDORESCODIGOPOSTAL = 9;
+ idx_VENDEDORESPOBLACION = 10;
+ idx_VENDEDORESTELEFONO1 = 11;
+ idx_VENDEDORESTELEFONO2 = 12;
+ idx_VENDEDORESMOVIL = 13;
+ idx_VENDEDORESFAX = 14;
+ idx_VENDEDORESCORREO1 = 15;
+ idx_VENDEDORESCORREO2 = 16;
+ idx_VENDEDORESPAGINAWEB = 17;
+ idx_VENDEDORESPERSONACONTACTO = 18;
+
+type
+ { ICITAS }
+ ICITAS = interface(IDAStronglyTypedDataTable)
+ ['{03AC3728-729B-4224-B900-4A4A1666746B}']
+ { Property getters and setters }
+ function GetIDValue: Integer;
+ procedure SetIDValue(const aValue: Integer);
+ function GetPARENTIDValue: Integer;
+ procedure SetPARENTIDValue(const aValue: Integer);
+ function GetSTARTValue: DateTime;
+ procedure SetSTARTValue(const aValue: DateTime);
+ function GetTIPOValue: Integer;
+ procedure SetTIPOValue(const aValue: Integer);
+ function GetFINISHValue: DateTime;
+ procedure SetFINISHValue(const aValue: DateTime);
+ function GetOPTIONSValue: Integer;
+ procedure SetOPTIONSValue(const aValue: Integer);
+ function GetCAPTIONValue: String;
+ procedure SetCAPTIONValue(const aValue: String);
+ function GetMENSAJEValue: String;
+ procedure SetMENSAJEValue(const aValue: String);
+ function GetRECURRENCEINDEXValue: Integer;
+ procedure SetRECURRENCEINDEXValue(const aValue: Integer);
+ function GetRESOURCEIDValue: Integer;
+ procedure SetRESOURCEIDValue(const aValue: Integer);
+ function GetLOCATIONValue: String;
+ procedure SetLOCATIONValue(const aValue: String);
+ function GetREMINDERValue: Integer;
+ procedure SetREMINDERValue(const aValue: Integer);
+ function GetSTATEValue: Integer;
+ procedure SetSTATEValue(const aValue: Integer);
+ function GetLABELCOLORValue: Integer;
+ procedure SetLABELCOLORValue(const aValue: Integer);
+ function GetCODIGOCONTRATOValue: String;
+ procedure SetCODIGOCONTRATOValue(const aValue: String);
+ function GetTIPOTAREAValue: String;
+ procedure SetTIPOTAREAValue(const aValue: String);
+ function GetNOMBRECLIENTEValue: String;
+ procedure SetNOMBRECLIENTEValue(const aValue: String);
+ function GetPARTIDAValue: String;
+ procedure SetPARTIDAValue(const aValue: String);
+ function GetCOMPLETADAValue: DateTime;
+ procedure SetCOMPLETADAValue(const aValue: DateTime);
+ function GetNOMBREPROVEEDORValue: String;
+ procedure SetNOMBREPROVEEDORValue(const aValue: String);
+ function GetCODIGOCOLUMNAValue: Integer;
+ procedure SetCODIGOCOLUMNAValue(const aValue: Integer);
+ function GetCODIGOFILAValue: Integer;
+ procedure SetCODIGOFILAValue(const aValue: Integer);
+ function GetEMPRESAValue: Integer;
+ procedure SetEMPRESAValue(const aValue: Integer);
+
+
+ { Properties }
+ property ID: Integer read GetIDValue write SetIDValue;
+ property PARENTID: Integer read GetPARENTIDValue write SetPARENTIDValue;
+ property START: DateTime read GetSTARTValue write SetSTARTValue;
+ property TIPO: Integer read GetTIPOValue write SetTIPOValue;
+ property FINISH: DateTime read GetFINISHValue write SetFINISHValue;
+ property OPTIONS: Integer read GetOPTIONSValue write SetOPTIONSValue;
+ property CAPTION: String read GetCAPTIONValue write SetCAPTIONValue;
+ property MENSAJE: String read GetMENSAJEValue write SetMENSAJEValue;
+ property RECURRENCEINDEX: Integer read GetRECURRENCEINDEXValue write SetRECURRENCEINDEXValue;
+ property RESOURCEID: Integer read GetRESOURCEIDValue write SetRESOURCEIDValue;
+ property LOCATION: String read GetLOCATIONValue write SetLOCATIONValue;
+ property REMINDER: Integer read GetREMINDERValue write SetREMINDERValue;
+ property STATE: Integer read GetSTATEValue write SetSTATEValue;
+ property LABELCOLOR: Integer read GetLABELCOLORValue write SetLABELCOLORValue;
+ property CODIGOCONTRATO: String read GetCODIGOCONTRATOValue write SetCODIGOCONTRATOValue;
+ property TIPOTAREA: String read GetTIPOTAREAValue write SetTIPOTAREAValue;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property PARTIDA: String read GetPARTIDAValue write SetPARTIDAValue;
+ property COMPLETADA: DateTime read GetCOMPLETADAValue write SetCOMPLETADAValue;
+ property NOMBREPROVEEDOR: String read GetNOMBREPROVEEDORValue write SetNOMBREPROVEEDORValue;
+ property CODIGOCOLUMNA: Integer read GetCODIGOCOLUMNAValue write SetCODIGOCOLUMNAValue;
+ property CODIGOFILA: Integer read GetCODIGOFILAValue write SetCODIGOFILAValue;
+ property EMPRESA: Integer read GetEMPRESAValue write SetEMPRESAValue;
+ end;
+
+ { TCITASDataTableRules }
+ TCITASDataTableRules = class(TDADataTableRules, ICITAS)
+ private
+ protected
+ { Property getters and setters }
+ function GetIDValue: Integer; virtual;
+ procedure SetIDValue(const aValue: Integer); virtual;
+ function GetPARENTIDValue: Integer; virtual;
+ procedure SetPARENTIDValue(const aValue: Integer); virtual;
+ function GetSTARTValue: DateTime; virtual;
+ procedure SetSTARTValue(const aValue: DateTime); virtual;
+ function GetTIPOValue: Integer; virtual;
+ procedure SetTIPOValue(const aValue: Integer); virtual;
+ function GetFINISHValue: DateTime; virtual;
+ procedure SetFINISHValue(const aValue: DateTime); virtual;
+ function GetOPTIONSValue: Integer; virtual;
+ procedure SetOPTIONSValue(const aValue: Integer); virtual;
+ function GetCAPTIONValue: String; virtual;
+ procedure SetCAPTIONValue(const aValue: String); virtual;
+ function GetMENSAJEValue: String; virtual;
+ procedure SetMENSAJEValue(const aValue: String); virtual;
+ function GetRECURRENCEINDEXValue: Integer; virtual;
+ procedure SetRECURRENCEINDEXValue(const aValue: Integer); virtual;
+ function GetRESOURCEIDValue: Integer; virtual;
+ procedure SetRESOURCEIDValue(const aValue: Integer); virtual;
+ function GetLOCATIONValue: String; virtual;
+ procedure SetLOCATIONValue(const aValue: String); virtual;
+ function GetREMINDERValue: Integer; virtual;
+ procedure SetREMINDERValue(const aValue: Integer); virtual;
+ function GetSTATEValue: Integer; virtual;
+ procedure SetSTATEValue(const aValue: Integer); virtual;
+ function GetLABELCOLORValue: Integer; virtual;
+ procedure SetLABELCOLORValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTRATOValue: String; virtual;
+ procedure SetCODIGOCONTRATOValue(const aValue: String); virtual;
+ function GetTIPOTAREAValue: String; virtual;
+ procedure SetTIPOTAREAValue(const aValue: String); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+ function GetPARTIDAValue: String; virtual;
+ procedure SetPARTIDAValue(const aValue: String); virtual;
+ function GetCOMPLETADAValue: DateTime; virtual;
+ procedure SetCOMPLETADAValue(const aValue: DateTime); virtual;
+ function GetNOMBREPROVEEDORValue: String; virtual;
+ procedure SetNOMBREPROVEEDORValue(const aValue: String); virtual;
+ function GetCODIGOCOLUMNAValue: Integer; virtual;
+ procedure SetCODIGOCOLUMNAValue(const aValue: Integer); virtual;
+ function GetCODIGOFILAValue: Integer; virtual;
+ procedure SetCODIGOFILAValue(const aValue: Integer); virtual;
+ function GetEMPRESAValue: Integer; virtual;
+ procedure SetEMPRESAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property ID: Integer read GetIDValue write SetIDValue;
+ property PARENTID: Integer read GetPARENTIDValue write SetPARENTIDValue;
+ property START: DateTime read GetSTARTValue write SetSTARTValue;
+ property TIPO: Integer read GetTIPOValue write SetTIPOValue;
+ property FINISH: DateTime read GetFINISHValue write SetFINISHValue;
+ property OPTIONS: Integer read GetOPTIONSValue write SetOPTIONSValue;
+ property CAPTION: String read GetCAPTIONValue write SetCAPTIONValue;
+ property MENSAJE: String read GetMENSAJEValue write SetMENSAJEValue;
+ property RECURRENCEINDEX: Integer read GetRECURRENCEINDEXValue write SetRECURRENCEINDEXValue;
+ property RESOURCEID: Integer read GetRESOURCEIDValue write SetRESOURCEIDValue;
+ property LOCATION: String read GetLOCATIONValue write SetLOCATIONValue;
+ property REMINDER: Integer read GetREMINDERValue write SetREMINDERValue;
+ property STATE: Integer read GetSTATEValue write SetSTATEValue;
+ property LABELCOLOR: Integer read GetLABELCOLORValue write SetLABELCOLORValue;
+ property CODIGOCONTRATO: String read GetCODIGOCONTRATOValue write SetCODIGOCONTRATOValue;
+ property TIPOTAREA: String read GetTIPOTAREAValue write SetTIPOTAREAValue;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property PARTIDA: String read GetPARTIDAValue write SetPARTIDAValue;
+ property COMPLETADA: DateTime read GetCOMPLETADAValue write SetCOMPLETADAValue;
+ property NOMBREPROVEEDOR: String read GetNOMBREPROVEEDORValue write SetNOMBREPROVEEDORValue;
+ property CODIGOCOLUMNA: Integer read GetCODIGOCOLUMNAValue write SetCODIGOCOLUMNAValue;
+ property CODIGOFILA: Integer read GetCODIGOFILAValue write SetCODIGOFILAValue;
+ property EMPRESA: Integer read GetEMPRESAValue write SetEMPRESAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IVENDEDORES }
+ IVENDEDORES = interface(IDAStronglyTypedDataTable)
+ ['{97DEA09F-C83C-47D3-8854-74212F62078A}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetNOTASValue: String;
+ procedure SetNOTASValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+ function GetFAXValue: String;
+ procedure SetFAXValue(const aValue: String);
+ function GetCORREO1Value: String;
+ procedure SetCORREO1Value(const aValue: String);
+ function GetCORREO2Value: String;
+ procedure SetCORREO2Value(const aValue: String);
+ function GetPAGINAWEBValue: String;
+ procedure SetPAGINAWEBValue(const aValue: String);
+ function GetPERSONACONTACTOValue: String;
+ procedure SetPERSONACONTACTOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property CORREO1: String read GetCORREO1Value write SetCORREO1Value;
+ property CORREO2: String read GetCORREO2Value write SetCORREO2Value;
+ property PAGINAWEB: String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ end;
+
+ { TVENDEDORESDataTableRules }
+ TVENDEDORESDataTableRules = class(TDADataTableRules, IVENDEDORES)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetCORREO1Value: String; virtual;
+ procedure SetCORREO1Value(const aValue: String); virtual;
+ function GetCORREO2Value: String; virtual;
+ procedure SetCORREO2Value(const aValue: String); virtual;
+ function GetPAGINAWEBValue: String; virtual;
+ procedure SetPAGINAWEBValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property CORREO1: String read GetCORREO1Value write SetCORREO1Value;
+ property CORREO2: String read GetCORREO2Value write SetCORREO2Value;
+ property PAGINAWEB: String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TCITASDataTableRules }
+constructor TCITASDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCITASDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCITASDataTableRules.GetIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASID].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASID].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetPARENTIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASPARENTID].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetPARENTIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASPARENTID].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetSTARTValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CITASSTART].AsDateTime;
+end;
+
+procedure TCITASDataTableRules.SetSTARTValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CITASSTART].AsDateTime := aValue;
+end;
+
+function TCITASDataTableRules.GetTIPOValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASTIPO].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetTIPOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASTIPO].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetFINISHValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CITASFINISH].AsDateTime;
+end;
+
+procedure TCITASDataTableRules.SetFINISHValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CITASFINISH].AsDateTime := aValue;
+end;
+
+function TCITASDataTableRules.GetOPTIONSValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASOPTIONS].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetOPTIONSValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASOPTIONS].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetCAPTIONValue: String;
+begin
+ result := DataTable.Fields[idx_CITASCAPTION].AsString;
+end;
+
+procedure TCITASDataTableRules.SetCAPTIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASCAPTION].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetMENSAJEValue: String;
+begin
+ result := DataTable.Fields[idx_CITASMENSAJE].AsString;
+end;
+
+procedure TCITASDataTableRules.SetMENSAJEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASMENSAJE].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetRECURRENCEINDEXValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASRECURRENCEINDEX].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetRECURRENCEINDEXValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASRECURRENCEINDEX].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetRESOURCEIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASRESOURCEID].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetRESOURCEIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASRESOURCEID].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetLOCATIONValue: String;
+begin
+ result := DataTable.Fields[idx_CITASLOCATION].AsString;
+end;
+
+procedure TCITASDataTableRules.SetLOCATIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASLOCATION].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetREMINDERValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASREMINDER].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetREMINDERValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASREMINDER].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetSTATEValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASSTATE].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetSTATEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASSTATE].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetLABELCOLORValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASLABELCOLOR].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetLABELCOLORValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASLABELCOLOR].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetCODIGOCONTRATOValue: String;
+begin
+ result := DataTable.Fields[idx_CITASCODIGOCONTRATO].AsString;
+end;
+
+procedure TCITASDataTableRules.SetCODIGOCONTRATOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASCODIGOCONTRATO].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetTIPOTAREAValue: String;
+begin
+ result := DataTable.Fields[idx_CITASTIPOTAREA].AsString;
+end;
+
+procedure TCITASDataTableRules.SetTIPOTAREAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASTIPOTAREA].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_CITASNOMBRECLIENTE].AsString;
+end;
+
+procedure TCITASDataTableRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASNOMBRECLIENTE].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetPARTIDAValue: String;
+begin
+ result := DataTable.Fields[idx_CITASPARTIDA].AsString;
+end;
+
+procedure TCITASDataTableRules.SetPARTIDAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASPARTIDA].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetCOMPLETADAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CITASCOMPLETADA].AsDateTime;
+end;
+
+procedure TCITASDataTableRules.SetCOMPLETADAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CITASCOMPLETADA].AsDateTime := aValue;
+end;
+
+function TCITASDataTableRules.GetNOMBREPROVEEDORValue: String;
+begin
+ result := DataTable.Fields[idx_CITASNOMBREPROVEEDOR].AsString;
+end;
+
+procedure TCITASDataTableRules.SetNOMBREPROVEEDORValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CITASNOMBREPROVEEDOR].AsString := aValue;
+end;
+
+function TCITASDataTableRules.GetCODIGOCOLUMNAValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASCODIGOCOLUMNA].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetCODIGOCOLUMNAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASCODIGOCOLUMNA].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetCODIGOFILAValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASCODIGOFILA].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetCODIGOFILAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASCODIGOFILA].AsInteger := aValue;
+end;
+
+function TCITASDataTableRules.GetEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_CITASEMPRESA].AsInteger;
+end;
+
+procedure TCITASDataTableRules.SetEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CITASEMPRESA].AsInteger := aValue;
+end;
+
+
+{ TVENDEDORESDataTableRules }
+constructor TVENDEDORESDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TVENDEDORESDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TVENDEDORESDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_VENDEDORESCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCODIGO].AsInteger;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_VENDEDORESCODIGO].AsInteger := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_VENDEDORESFECHAALTA].AsDateTime;
+end;
+
+procedure TVENDEDORESDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_VENDEDORESFECHAALTA].AsDateTime := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESUSUARIO].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESUSUARIO].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESNIFCIF].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESNIFCIF].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESNOMBRE].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESNOMBRE].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetNOTASValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESNOTAS].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetNOTASValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESNOTAS].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCALLE].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESCALLE].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESPROVINCIA].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESPROVINCIA].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCODIGOPOSTAL].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESPOBLACION].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESPOBLACION].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESTELEFONO1].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESTELEFONO1].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESTELEFONO2].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESTELEFONO2].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESMOVIL].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESMOVIL].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetFAXValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESFAX].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetFAXValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESFAX].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetCORREO1Value: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCORREO1].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCORREO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESCORREO1].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetCORREO2Value: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCORREO2].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetCORREO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESCORREO2].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetPAGINAWEBValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESPAGINAWEB].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetPAGINAWEBValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESPAGINAWEB].AsString := aValue;
+end;
+
+function TVENDEDORESDataTableRules.GetPERSONACONTACTOValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESPERSONACONTACTO].AsString;
+end;
+
+procedure TVENDEDORESDataTableRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESPERSONACONTACTO].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_CITAS, TCITASDataTableRules);
+ RegisterDataTableRules(RID_VENDEDORES, TVENDEDORESDataTableRules);
+
+end.
diff --git a/Modulos/Calendarios/Reglas/schCitasServer_Intf.pas b/Modulos/Calendarios/Reglas/schCitasServer_Intf.pas
new file mode 100644
index 0000000..f325294
--- /dev/null
+++ b/Modulos/Calendarios/Reglas/schCitasServer_Intf.pas
@@ -0,0 +1,1017 @@
+unit schCitasServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schCitasClient_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_CITASDelta = '{5090F644-9CFB-4232-9EEE-7F7E7168EBB7}';
+ RID_VENDEDORESDelta = '{DD67A3C2-3DE7-439A-B460-DC5BD2BB3032}';
+
+type
+ { ICITASDelta }
+ ICITASDelta = interface(ICITAS)
+ ['{5090F644-9CFB-4232-9EEE-7F7E7168EBB7}']
+ { Property getters and setters }
+ function GetOldIDValue : Integer;
+ function GetOldPARENTIDValue : Integer;
+ function GetOldSTARTValue : DateTime;
+ function GetOldTIPOValue : Integer;
+ function GetOldFINISHValue : DateTime;
+ function GetOldOPTIONSValue : Integer;
+ function GetOldCAPTIONValue : String;
+ function GetOldMENSAJEValue : String;
+ function GetOldRECURRENCEINDEXValue : Integer;
+ function GetOldRESOURCEIDValue : Integer;
+ function GetOldLOCATIONValue : String;
+ function GetOldREMINDERValue : Integer;
+ function GetOldSTATEValue : Integer;
+ function GetOldLABELCOLORValue : Integer;
+ function GetOldCODIGOCONTRATOValue : String;
+ function GetOldTIPOTAREAValue : String;
+ function GetOldNOMBRECLIENTEValue : String;
+ function GetOldPARTIDAValue : String;
+ function GetOldCOMPLETADAValue : DateTime;
+ function GetOldNOMBREPROVEEDORValue : String;
+ function GetOldCODIGOCOLUMNAValue : Integer;
+ function GetOldCODIGOFILAValue : Integer;
+ function GetOldEMPRESAValue : Integer;
+
+ { Properties }
+ property OldID : Integer read GetOldIDValue;
+ property OldPARENTID : Integer read GetOldPARENTIDValue;
+ property OldSTART : DateTime read GetOldSTARTValue;
+ property OldTIPO : Integer read GetOldTIPOValue;
+ property OldFINISH : DateTime read GetOldFINISHValue;
+ property OldOPTIONS : Integer read GetOldOPTIONSValue;
+ property OldCAPTION : String read GetOldCAPTIONValue;
+ property OldMENSAJE : String read GetOldMENSAJEValue;
+ property OldRECURRENCEINDEX : Integer read GetOldRECURRENCEINDEXValue;
+ property OldRESOURCEID : Integer read GetOldRESOURCEIDValue;
+ property OldLOCATION : String read GetOldLOCATIONValue;
+ property OldREMINDER : Integer read GetOldREMINDERValue;
+ property OldSTATE : Integer read GetOldSTATEValue;
+ property OldLABELCOLOR : Integer read GetOldLABELCOLORValue;
+ property OldCODIGOCONTRATO : String read GetOldCODIGOCONTRATOValue;
+ property OldTIPOTAREA : String read GetOldTIPOTAREAValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+ property OldPARTIDA : String read GetOldPARTIDAValue;
+ property OldCOMPLETADA : DateTime read GetOldCOMPLETADAValue;
+ property OldNOMBREPROVEEDOR : String read GetOldNOMBREPROVEEDORValue;
+ property OldCODIGOCOLUMNA : Integer read GetOldCODIGOCOLUMNAValue;
+ property OldCODIGOFILA : Integer read GetOldCODIGOFILAValue;
+ property OldEMPRESA : Integer read GetOldEMPRESAValue;
+ end;
+
+ { TCITASBusinessProcessorRules }
+ TCITASBusinessProcessorRules = class(TDABusinessProcessorRules, ICITAS, ICITASDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetIDValue: Integer; virtual;
+ function GetOldIDValue: Integer; virtual;
+ procedure SetIDValue(const aValue: Integer); virtual;
+ function GetPARENTIDValue: Integer; virtual;
+ function GetOldPARENTIDValue: Integer; virtual;
+ procedure SetPARENTIDValue(const aValue: Integer); virtual;
+ function GetSTARTValue: DateTime; virtual;
+ function GetOldSTARTValue: DateTime; virtual;
+ procedure SetSTARTValue(const aValue: DateTime); virtual;
+ function GetTIPOValue: Integer; virtual;
+ function GetOldTIPOValue: Integer; virtual;
+ procedure SetTIPOValue(const aValue: Integer); virtual;
+ function GetFINISHValue: DateTime; virtual;
+ function GetOldFINISHValue: DateTime; virtual;
+ procedure SetFINISHValue(const aValue: DateTime); virtual;
+ function GetOPTIONSValue: Integer; virtual;
+ function GetOldOPTIONSValue: Integer; virtual;
+ procedure SetOPTIONSValue(const aValue: Integer); virtual;
+ function GetCAPTIONValue: String; virtual;
+ function GetOldCAPTIONValue: String; virtual;
+ procedure SetCAPTIONValue(const aValue: String); virtual;
+ function GetMENSAJEValue: String; virtual;
+ function GetOldMENSAJEValue: String; virtual;
+ procedure SetMENSAJEValue(const aValue: String); virtual;
+ function GetRECURRENCEINDEXValue: Integer; virtual;
+ function GetOldRECURRENCEINDEXValue: Integer; virtual;
+ procedure SetRECURRENCEINDEXValue(const aValue: Integer); virtual;
+ function GetRESOURCEIDValue: Integer; virtual;
+ function GetOldRESOURCEIDValue: Integer; virtual;
+ procedure SetRESOURCEIDValue(const aValue: Integer); virtual;
+ function GetLOCATIONValue: String; virtual;
+ function GetOldLOCATIONValue: String; virtual;
+ procedure SetLOCATIONValue(const aValue: String); virtual;
+ function GetREMINDERValue: Integer; virtual;
+ function GetOldREMINDERValue: Integer; virtual;
+ procedure SetREMINDERValue(const aValue: Integer); virtual;
+ function GetSTATEValue: Integer; virtual;
+ function GetOldSTATEValue: Integer; virtual;
+ procedure SetSTATEValue(const aValue: Integer); virtual;
+ function GetLABELCOLORValue: Integer; virtual;
+ function GetOldLABELCOLORValue: Integer; virtual;
+ procedure SetLABELCOLORValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTRATOValue: String; virtual;
+ function GetOldCODIGOCONTRATOValue: String; virtual;
+ procedure SetCODIGOCONTRATOValue(const aValue: String); virtual;
+ function GetTIPOTAREAValue: String; virtual;
+ function GetOldTIPOTAREAValue: String; virtual;
+ procedure SetTIPOTAREAValue(const aValue: String); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ function GetOldNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+ function GetPARTIDAValue: String; virtual;
+ function GetOldPARTIDAValue: String; virtual;
+ procedure SetPARTIDAValue(const aValue: String); virtual;
+ function GetCOMPLETADAValue: DateTime; virtual;
+ function GetOldCOMPLETADAValue: DateTime; virtual;
+ procedure SetCOMPLETADAValue(const aValue: DateTime); virtual;
+ function GetNOMBREPROVEEDORValue: String; virtual;
+ function GetOldNOMBREPROVEEDORValue: String; virtual;
+ procedure SetNOMBREPROVEEDORValue(const aValue: String); virtual;
+ function GetCODIGOCOLUMNAValue: Integer; virtual;
+ function GetOldCODIGOCOLUMNAValue: Integer; virtual;
+ procedure SetCODIGOCOLUMNAValue(const aValue: Integer); virtual;
+ function GetCODIGOFILAValue: Integer; virtual;
+ function GetOldCODIGOFILAValue: Integer; virtual;
+ procedure SetCODIGOFILAValue(const aValue: Integer); virtual;
+ function GetEMPRESAValue: Integer; virtual;
+ function GetOldEMPRESAValue: Integer; virtual;
+ procedure SetEMPRESAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property ID : Integer read GetIDValue write SetIDValue;
+ property OldID : Integer read GetOldIDValue;
+ property PARENTID : Integer read GetPARENTIDValue write SetPARENTIDValue;
+ property OldPARENTID : Integer read GetOldPARENTIDValue;
+ property START : DateTime read GetSTARTValue write SetSTARTValue;
+ property OldSTART : DateTime read GetOldSTARTValue;
+ property TIPO : Integer read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : Integer read GetOldTIPOValue;
+ property FINISH : DateTime read GetFINISHValue write SetFINISHValue;
+ property OldFINISH : DateTime read GetOldFINISHValue;
+ property OPTIONS : Integer read GetOPTIONSValue write SetOPTIONSValue;
+ property OldOPTIONS : Integer read GetOldOPTIONSValue;
+ property CAPTION : String read GetCAPTIONValue write SetCAPTIONValue;
+ property OldCAPTION : String read GetOldCAPTIONValue;
+ property MENSAJE : String read GetMENSAJEValue write SetMENSAJEValue;
+ property OldMENSAJE : String read GetOldMENSAJEValue;
+ property RECURRENCEINDEX : Integer read GetRECURRENCEINDEXValue write SetRECURRENCEINDEXValue;
+ property OldRECURRENCEINDEX : Integer read GetOldRECURRENCEINDEXValue;
+ property RESOURCEID : Integer read GetRESOURCEIDValue write SetRESOURCEIDValue;
+ property OldRESOURCEID : Integer read GetOldRESOURCEIDValue;
+ property LOCATION : String read GetLOCATIONValue write SetLOCATIONValue;
+ property OldLOCATION : String read GetOldLOCATIONValue;
+ property REMINDER : Integer read GetREMINDERValue write SetREMINDERValue;
+ property OldREMINDER : Integer read GetOldREMINDERValue;
+ property STATE : Integer read GetSTATEValue write SetSTATEValue;
+ property OldSTATE : Integer read GetOldSTATEValue;
+ property LABELCOLOR : Integer read GetLABELCOLORValue write SetLABELCOLORValue;
+ property OldLABELCOLOR : Integer read GetOldLABELCOLORValue;
+ property CODIGOCONTRATO : String read GetCODIGOCONTRATOValue write SetCODIGOCONTRATOValue;
+ property OldCODIGOCONTRATO : String read GetOldCODIGOCONTRATOValue;
+ property TIPOTAREA : String read GetTIPOTAREAValue write SetTIPOTAREAValue;
+ property OldTIPOTAREA : String read GetOldTIPOTAREAValue;
+ property NOMBRECLIENTE : String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+ property PARTIDA : String read GetPARTIDAValue write SetPARTIDAValue;
+ property OldPARTIDA : String read GetOldPARTIDAValue;
+ property COMPLETADA : DateTime read GetCOMPLETADAValue write SetCOMPLETADAValue;
+ property OldCOMPLETADA : DateTime read GetOldCOMPLETADAValue;
+ property NOMBREPROVEEDOR : String read GetNOMBREPROVEEDORValue write SetNOMBREPROVEEDORValue;
+ property OldNOMBREPROVEEDOR : String read GetOldNOMBREPROVEEDORValue;
+ property CODIGOCOLUMNA : Integer read GetCODIGOCOLUMNAValue write SetCODIGOCOLUMNAValue;
+ property OldCODIGOCOLUMNA : Integer read GetOldCODIGOCOLUMNAValue;
+ property CODIGOFILA : Integer read GetCODIGOFILAValue write SetCODIGOFILAValue;
+ property OldCODIGOFILA : Integer read GetOldCODIGOFILAValue;
+ property EMPRESA : Integer read GetEMPRESAValue write SetEMPRESAValue;
+ property OldEMPRESA : Integer read GetOldEMPRESAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IVENDEDORESDelta }
+ IVENDEDORESDelta = interface(IVENDEDORES)
+ ['{DD67A3C2-3DE7-439A-B460-DC5BD2BB3032}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldNOTASValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+ function GetOldFAXValue : String;
+ function GetOldCORREO1Value : String;
+ function GetOldCORREO2Value : String;
+ function GetOldPAGINAWEBValue : String;
+ function GetOldPERSONACONTACTOValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property OldFAX : String read GetOldFAXValue;
+ property OldCORREO1 : String read GetOldCORREO1Value;
+ property OldCORREO2 : String read GetOldCORREO2Value;
+ property OldPAGINAWEB : String read GetOldPAGINAWEBValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+ end;
+
+ { TVENDEDORESBusinessProcessorRules }
+ TVENDEDORESBusinessProcessorRules = class(TDABusinessProcessorRules, IVENDEDORES, IVENDEDORESDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNOTASValue: String; virtual;
+ function GetOldNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ function GetOldFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetCORREO1Value: String; virtual;
+ function GetOldCORREO1Value: String; virtual;
+ procedure SetCORREO1Value(const aValue: String); virtual;
+ function GetCORREO2Value: String; virtual;
+ function GetOldCORREO2Value: String; virtual;
+ procedure SetCORREO2Value(const aValue: String); virtual;
+ function GetPAGINAWEBValue: String; virtual;
+ function GetOldPAGINAWEBValue: String; virtual;
+ procedure SetPAGINAWEBValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ function GetOldPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property NOTAS : String read GetNOTASValue write SetNOTASValue;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property FAX : String read GetFAXValue write SetFAXValue;
+ property OldFAX : String read GetOldFAXValue;
+ property CORREO1 : String read GetCORREO1Value write SetCORREO1Value;
+ property OldCORREO1 : String read GetOldCORREO1Value;
+ property CORREO2 : String read GetCORREO2Value write SetCORREO2Value;
+ property OldCORREO2 : String read GetOldCORREO2Value;
+ property PAGINAWEB : String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property OldPAGINAWEB : String read GetOldPAGINAWEBValue;
+ property PERSONACONTACTO : String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TCITASBusinessProcessorRules }
+constructor TCITASBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCITASBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCITASBusinessProcessorRules.GetIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASID];
+end;
+
+function TCITASBusinessProcessorRules.GetOldIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASID];
+end;
+
+procedure TCITASBusinessProcessorRules.SetIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASID] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetPARENTIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASPARENTID];
+end;
+
+function TCITASBusinessProcessorRules.GetOldPARENTIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASPARENTID];
+end;
+
+procedure TCITASBusinessProcessorRules.SetPARENTIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASPARENTID] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetSTARTValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASSTART];
+end;
+
+function TCITASBusinessProcessorRules.GetOldSTARTValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASSTART];
+end;
+
+procedure TCITASBusinessProcessorRules.SetSTARTValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASSTART] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetTIPOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASTIPO];
+end;
+
+function TCITASBusinessProcessorRules.GetOldTIPOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASTIPO];
+end;
+
+procedure TCITASBusinessProcessorRules.SetTIPOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASTIPO] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetFINISHValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASFINISH];
+end;
+
+function TCITASBusinessProcessorRules.GetOldFINISHValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASFINISH];
+end;
+
+procedure TCITASBusinessProcessorRules.SetFINISHValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASFINISH] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetOPTIONSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASOPTIONS];
+end;
+
+function TCITASBusinessProcessorRules.GetOldOPTIONSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASOPTIONS];
+end;
+
+procedure TCITASBusinessProcessorRules.SetOPTIONSValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASOPTIONS] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetCAPTIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCAPTION];
+end;
+
+function TCITASBusinessProcessorRules.GetOldCAPTIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASCAPTION];
+end;
+
+procedure TCITASBusinessProcessorRules.SetCAPTIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCAPTION] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetMENSAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASMENSAJE];
+end;
+
+function TCITASBusinessProcessorRules.GetOldMENSAJEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASMENSAJE];
+end;
+
+procedure TCITASBusinessProcessorRules.SetMENSAJEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASMENSAJE] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetRECURRENCEINDEXValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASRECURRENCEINDEX];
+end;
+
+function TCITASBusinessProcessorRules.GetOldRECURRENCEINDEXValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASRECURRENCEINDEX];
+end;
+
+procedure TCITASBusinessProcessorRules.SetRECURRENCEINDEXValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASRECURRENCEINDEX] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetRESOURCEIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASRESOURCEID];
+end;
+
+function TCITASBusinessProcessorRules.GetOldRESOURCEIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASRESOURCEID];
+end;
+
+procedure TCITASBusinessProcessorRules.SetRESOURCEIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASRESOURCEID] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetLOCATIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASLOCATION];
+end;
+
+function TCITASBusinessProcessorRules.GetOldLOCATIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASLOCATION];
+end;
+
+procedure TCITASBusinessProcessorRules.SetLOCATIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASLOCATION] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetREMINDERValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASREMINDER];
+end;
+
+function TCITASBusinessProcessorRules.GetOldREMINDERValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASREMINDER];
+end;
+
+procedure TCITASBusinessProcessorRules.SetREMINDERValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASREMINDER] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetSTATEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASSTATE];
+end;
+
+function TCITASBusinessProcessorRules.GetOldSTATEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASSTATE];
+end;
+
+procedure TCITASBusinessProcessorRules.SetSTATEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASSTATE] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetLABELCOLORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASLABELCOLOR];
+end;
+
+function TCITASBusinessProcessorRules.GetOldLABELCOLORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASLABELCOLOR];
+end;
+
+procedure TCITASBusinessProcessorRules.SetLABELCOLORValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASLABELCOLOR] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetCODIGOCONTRATOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOCONTRATO];
+end;
+
+function TCITASBusinessProcessorRules.GetOldCODIGOCONTRATOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASCODIGOCONTRATO];
+end;
+
+procedure TCITASBusinessProcessorRules.SetCODIGOCONTRATOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOCONTRATO] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetTIPOTAREAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASTIPOTAREA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldTIPOTAREAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASTIPOTAREA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetTIPOTAREAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASTIPOTAREA] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASNOMBRECLIENTE];
+end;
+
+function TCITASBusinessProcessorRules.GetOldNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASNOMBRECLIENTE];
+end;
+
+procedure TCITASBusinessProcessorRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASNOMBRECLIENTE] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetPARTIDAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASPARTIDA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldPARTIDAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASPARTIDA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetPARTIDAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASPARTIDA] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetCOMPLETADAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCOMPLETADA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldCOMPLETADAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASCOMPLETADA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetCOMPLETADAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCOMPLETADA] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetNOMBREPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASNOMBREPROVEEDOR];
+end;
+
+function TCITASBusinessProcessorRules.GetOldNOMBREPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASNOMBREPROVEEDOR];
+end;
+
+procedure TCITASBusinessProcessorRules.SetNOMBREPROVEEDORValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASNOMBREPROVEEDOR] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetCODIGOCOLUMNAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOCOLUMNA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldCODIGOCOLUMNAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASCODIGOCOLUMNA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetCODIGOCOLUMNAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOCOLUMNA] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetCODIGOFILAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOFILA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldCODIGOFILAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASCODIGOFILA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetCODIGOFILAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASCODIGOFILA] := aValue;
+end;
+
+function TCITASBusinessProcessorRules.GetEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CITASEMPRESA];
+end;
+
+function TCITASBusinessProcessorRules.GetOldEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CITASEMPRESA];
+end;
+
+procedure TCITASBusinessProcessorRules.SetEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CITASEMPRESA] := aValue;
+end;
+
+
+{ TVENDEDORESBusinessProcessorRules }
+constructor TVENDEDORESBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TVENDEDORESBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGOEMPRESA];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCODIGOEMPRESA];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGOEMPRESA] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGO];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCODIGO];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGO] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESFECHAALTA];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESFECHAALTA];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESFECHAALTA] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESUSUARIO];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESUSUARIO];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESUSUARIO] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNIFCIF];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESNIFCIF];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNIFCIF] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNOMBRE];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESNOMBRE];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNOMBRE] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNOTAS];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESNOTAS];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetNOTASValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESNOTAS] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCALLE];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCALLE];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCALLE] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPROVINCIA];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESPROVINCIA];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPROVINCIA] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGOPOSTAL];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCODIGOPOSTAL];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCODIGOPOSTAL] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPOBLACION];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESPOBLACION];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPOBLACION] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESTELEFONO1];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESTELEFONO1];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESTELEFONO1] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESTELEFONO2];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESTELEFONO2];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESTELEFONO2] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESMOVIL];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESMOVIL];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESMOVIL] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESFAX];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESFAX];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetFAXValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESFAX] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCORREO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCORREO1];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCORREO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCORREO1];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCORREO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCORREO1] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetCORREO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCORREO2];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldCORREO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCORREO2];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetCORREO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCORREO2] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetPAGINAWEBValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPAGINAWEB];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldPAGINAWEBValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESPAGINAWEB];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetPAGINAWEBValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPAGINAWEB] := aValue;
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPERSONACONTACTO];
+end;
+
+function TVENDEDORESBusinessProcessorRules.GetOldPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESPERSONACONTACTO];
+end;
+
+procedure TVENDEDORESBusinessProcessorRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESPERSONACONTACTO] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_CITASDelta, TCITASBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_VENDEDORESDelta, TVENDEDORESBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Calendarios/Reglas/uBizCitas.pas b/Modulos/Calendarios/Reglas/uBizCitas.pas
new file mode 100644
index 0000000..fa9c97b
--- /dev/null
+++ b/Modulos/Calendarios/Reglas/uBizCitas.pas
@@ -0,0 +1,193 @@
+unit uBizCitas;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, Classes, DBGrids, uDBSelectionList, DB,
+ uExceptions, Controls,
+
+ schCitasClient_Intf;
+
+const
+ BIZ_CITAS = 'BizCitas';
+ BIZ_VENDEDORES = 'BizVendedores';
+ BIZ_INSTALADORES = 'BizInstaladores';
+ BIZ_DOCUMENTOS = 'BizDocumentos';
+ BIZ_TIPOSPEDIDODOCUMENTO = 'BizTiposPedidoDocumento';
+ CTE_TIPO_DOCUMENTO = 'TIPO_DOCUMENTO';
+ BIZ_OBRAS = 'BizObras';
+
+ TextoTipoCita: array[0..9] of String = ('PERSONAL', 'MEDICION', 'ENTREGA',
+ 'MONTAJE', 'REMATE', 'PEDIDO', 'CONFIRMACION',
+ 'RECEPCION', 'AVISO', 'ENTREGACLIENTE');
+
+ LiteralTipoCita: array[0..9] of String = ('Personal', 'Medición',
+ 'Entrega a instalador', 'Montaje', 'Remate', 'Pedido',
+ 'Confirmación de pedido', 'Recepción de pedido', 'Aviso transportista',
+ 'Entrega al cliente');
+
+ TextoPartidasObra: array[0..3] of String = ('COCINA', 'ENCIMERAS',
+ 'ELECTRO', 'VARIOS');
+
+ LiteralPartidasObra: array[0..3] of String = ('Cocina', 'Encimeras',
+ 'Electrodomésticos', 'Varios');
+
+type
+ TPartidasObra = (poCocina, poEncimeras, poElectro, poVarios);
+ TTipoCitas = (tcPersonal, tcMedicion, tcEntrega, tcMontaje, tcRemate,
+ tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente);
+
+
+ IBizCitas = interface(ICitas)
+ ['{B7CFAD14-99F6-4541-89B4-94B4C4B829D2}']
+ procedure Show;
+ end;
+
+ IBizVendedores = interface(IVendedores)
+ ['{19E86356-0BA1-4A58-A552-D68D665232DB}']
+ end;
+
+ IBizInstaladores = interface //(IInstaladores)
+ ['{27917CC0-E202-4C0B-82FE-19DC2B494DB2}']
+ end;
+
+ IBizDocumentos = interface //(IDocumentos)
+ ['{3000D86E-FD7B-40BD-99FB-E05C00B8FA8A}']
+ end;
+
+ IBizTiposPedidoDocumento = interface //(ITiposPedidoDocumento)
+ ['{B6B48E61-C510-4ACA-BFD8-65A876010B13}']
+ end;
+
+ IBizObras = interface //(IObras)
+ ['{B9A9EDDE-4F4C-46D1-B48C-2B0BB4E4580E}']
+ end;
+
+ TBizCitasDataTableRules = class(TCitasDataTableRules, IBizCitas,
+ IApplyUpdateFailedException)
+ private
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure BeforePost(Sender: TDADataTable);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+ end;
+
+ TBizVendedoresDataTableRules = class(TVendedoresDataTableRules, IBizVendedores)
+ end;
+
+ function DarTipoCita (Texto : String) : TTipoCitas;
+ function esCitaFase (Texto : String) : Boolean;
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase,
+ uEditorUtils, Variants,
+
+ uDataModuleCalendarios;
+
+
+function DarTipoCita (Texto : String) : TTipoCitas;
+var
+ i : Integer;
+begin
+ Result := tcPersonal;
+ for I := Low(TextoTipoCita) to High(TextoTipoCita) do
+ begin
+ if UpperCase(TextoTipoCita[i]) = UpperCase(Texto) then
+ Result := TTipoCitas(I);
+ end;
+
+ if Result = tcPersonal then
+ for I := Low(LiteralTipoCita) to High(LiteralTipoCita) do
+ begin
+ if UpperCase(LiteralTipoCita[i]) = UpperCase(Texto) then
+ Result := TTipoCitas(I);
+ end;
+end;
+
+function esCitaFase (Texto : String) : Boolean;
+var
+ I: TTipoCitas;
+begin
+ Result := False;
+ for I:=tcPedido to tcEntregaCliente do
+ if (TextoTipoCita[Ord(I)] = Texto) then
+ Result := True;
+end;
+
+
+{ TBizCitasDataTableRules }
+
+{
+************************** TBizCitasDataTableRules **************************
+}
+
+procedure TBizCitasDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ ID := dmCalendarios.GetCodigo;
+end;
+
+procedure TBizCitasDataTableRules.Show;
+begin
+ ShowEditor(IBizCitas, Self, etItem);
+end;
+
+procedure TBizCitasDataTableRules.ShowApplyUpdateFailed(const Error: EDAApplyUpdateFailed);
+begin
+// if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+// MessageBox(0, 'No se puede borrar esta cuenta porque tiene pagos asociados', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+constructor TBizCitasDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizCitasDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+procedure TBizCitasDataTableRules.BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+begin
+//
+end;
+
+procedure TBizCitasDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('Nombre', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar al menos el nombre', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizCitasDataTableRules.BeforePost(Sender: TDADataTable);
+begin
+ Sender.FieldByName(fld_CITASCODIGOCONTRATO).AsVariant := null;
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_CITAS, TBizCitasDataTableRules);
+ RegisterDataTableRules(BIZ_VENDEDORES, TBizVendedoresDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Calendarios/Servidor/srvCitas_Impl.ddp b/Modulos/Calendarios/Servidor/srvCitas_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Calendarios/Servidor/srvCitas_Impl.ddp differ
diff --git a/Modulos/Calendarios/Servidor/srvCitas_Impl.dfm b/Modulos/Calendarios/Servidor/srvCitas_Impl.dfm
new file mode 100644
index 0000000..f4572ce
--- /dev/null
+++ b/Modulos/Calendarios/Servidor/srvCitas_Impl.dfm
@@ -0,0 +1,723 @@
+object srvCitas: TsrvCitas
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schCitas
+ ServiceAdapter = DABINAdapter
+ Left = 502
+ Top = 206
+ Height = 184
+ Width = 245
+ object schCitas: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CITAS'
+ SQL =
+ 'SELECT '#10' ID, PARENTID, START, TIPO, FINISH, OPTIONS, CAPTION,' +
+ ' '#10' MENSAJE, RECURRENCEINDEX, RESOURCEID, LOCATION, REMINDER, ' +
+ #10' STATE, LABELCOLOR, CODIGOCONTRATO, TIPOTAREA, NOMBRECLIENTE' +
+ ', '#10' PARTIDA, COMPLETADA, NOMBREPROVEEDOR, CODIGOCOLUMNA, '#10' ' +
+ ' CODIGOFILA, EMPRESA'#10' FROM'#10' CITAS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end
+ item
+ DatasetField = 'PARENTID'
+ TableField = 'PARENTID'
+ end
+ item
+ DatasetField = 'START'
+ TableField = 'START'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'FINISH'
+ TableField = 'FINISH'
+ end
+ item
+ DatasetField = 'OPTIONS'
+ TableField = 'OPTIONS'
+ end
+ item
+ DatasetField = 'CAPTION'
+ TableField = 'CAPTION'
+ end
+ item
+ DatasetField = 'MENSAJE'
+ TableField = 'MENSAJE'
+ end
+ item
+ DatasetField = 'RECURRENCEINDEX'
+ TableField = 'RECURRENCEINDEX'
+ end
+ item
+ DatasetField = 'RESOURCEID'
+ TableField = 'RESOURCEID'
+ end
+ item
+ DatasetField = 'LOCATION'
+ TableField = 'LOCATION'
+ end
+ item
+ DatasetField = 'REMINDER'
+ TableField = 'REMINDER'
+ end
+ item
+ DatasetField = 'STATE'
+ TableField = 'STATE'
+ end
+ item
+ DatasetField = 'LABELCOLOR'
+ TableField = 'LABELCOLOR'
+ end
+ item
+ DatasetField = 'CODIGOCONTRATO'
+ TableField = 'CODIGOCONTRATO'
+ end
+ item
+ DatasetField = 'TIPOTAREA'
+ TableField = 'TIPOTAREA'
+ end
+ item
+ DatasetField = 'NOMBRECLIENTE'
+ TableField = 'NOMBRECLIENTE'
+ end
+ item
+ DatasetField = 'PARTIDA'
+ TableField = 'PARTIDA'
+ end
+ item
+ DatasetField = 'COMPLETADA'
+ TableField = 'COMPLETADA'
+ end
+ item
+ DatasetField = 'NOMBREPROVEEDOR'
+ TableField = 'NOMBREPROVEEDOR'
+ end
+ item
+ DatasetField = 'CODIGOCOLUMNA'
+ TableField = 'CODIGOCOLUMNA'
+ end
+ item
+ DatasetField = 'CODIGOFILA'
+ TableField = 'CODIGOFILA'
+ end
+ item
+ DatasetField = 'EMPRESA'
+ TableField = 'EMPRESA'
+ end>
+ end>
+ Name = 'CITAS'
+ 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 = 'PARENTID'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'START'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FINISH'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPTIONS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CAPTION'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MENSAJE'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'RECURRENCEINDEX'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'RESOURCEID'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'LOCATION'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REMINDER'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'STATE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'LABELCOLOR'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTRATO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPOTAREA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRECLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PARTIDA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMPLETADA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBREPROVEEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCOLUMNA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOFILA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'EMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CONTACTOS'
+ SQL =
+ 'SELECT CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, NIFCIF,'#10' NO' +
+ 'MBRE, NOTAS, CALLE, PROVINCIA, CODIGOPOSTAL, POBLACION,'#10' TELE' +
+ 'FONO1, TELEFONO2, MOVIL, FAX, CORREO1, CORREO2,'#10' PAGINAWEB, P' +
+ 'ERSONACONTACTO'#10#10'FROM CONTACTOS'#10'LEFT JOIN CONTACTOSCATEGORIAS ON ' +
+ '(CODIGOCONTACTO = CODIGO)'#10'WHERE CODIGOCATEGORIA = 4'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'NOTAS'
+ TableField = 'NOTAS'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end
+ item
+ DatasetField = 'FAX'
+ TableField = 'FAX'
+ end
+ item
+ DatasetField = 'CORREO1'
+ TableField = 'CORREO1'
+ end
+ item
+ DatasetField = 'CORREO2'
+ TableField = 'CORREO2'
+ end
+ item
+ DatasetField = 'PAGINAWEB'
+ TableField = 'PAGINAWEB'
+ end
+ item
+ DatasetField = 'PERSONACONTACTO'
+ TableField = 'PERSONACONTACTO'
+ end>
+ end>
+ Name = 'VENDEDORES'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO1'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO2'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PAGINAWEB'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ 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 = 24
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 24
+ Top = 72
+ end
+end
diff --git a/Modulos/Calendarios/Servidor/srvCitas_Impl.pas b/Modulos/Calendarios/Servidor/srvCitas_Impl.pas
new file mode 100644
index 0000000..596ec70
--- /dev/null
+++ b/Modulos/Calendarios/Servidor/srvCitas_Impl.pas
@@ -0,0 +1,59 @@
+unit srvCitas_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAInterfaces, uDADataTable,
+ uDABINAdapter;
+
+type
+ { TsrvCitas }
+ TsrvCitas = class(TDARemoteService, IsrvCitas)
+ schCitas: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ function getCodigo(const Generador: String): Integer;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer;
+
+procedure Create_srvCitas(out anInstance : IUnknown);
+begin
+ anInstance := TsrvCitas.Create(NIL);
+end;
+
+{ srvCitas }
+{ TsrvCitas }
+
+function TsrvCitas.getCodigo(const Generador: String): Integer;
+var
+ ds: IDADataset;
+begin
+ ds := Connection.NewDataset(Format('SELECT Gen_id("%s",1) FROM RDB$DataBase', [Generador]));
+ ds.Open;
+ Result := ds.Fields[0].Value;
+ ds.Close;
+end;
+
+initialization
+ TROClassFactory.Create('srvCitas', Create_srvCitas, TsrvCitas_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Cliente/Contactos.bdsproj b/Modulos/Contactos/Cliente/Contactos.bdsproj
new file mode 100644
index 0000000..ead81fe
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Contactos.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Contactos/Cliente/Contactos.cfg b/Modulos/Contactos/Cliente/Contactos.cfg
new file mode 100644
index 0000000..4ab59e4
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Contactos/Cliente/Contactos.dcp b/Modulos/Contactos/Cliente/Contactos.dcp
new file mode 100644
index 0000000..eee0e6a
Binary files /dev/null and b/Modulos/Contactos/Cliente/Contactos.dcp differ
diff --git a/Modulos/Contactos/Cliente/Contactos.dof b/Modulos/Contactos/Cliente/Contactos.dof
new file mode 100644
index 0000000..147be38
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.dof
@@ -0,0 +1,495 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Contactos\Cliente;..\..\Contactos\Reglas
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+C:\Archivos de programa\Developer Express Inc\Lib\D7\dxLayoutControlcxEditAdaptersD7.bpl=ExpressLayoutControl Adapters for ExpressEditors Library 5 by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Modulos/Contactos/Cliente/Contactos.dpk b/Modulos/Contactos/Cliente/Contactos.dpk
new file mode 100644
index 0000000..ea93b94
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.dpk
@@ -0,0 +1,83 @@
+package Contactos;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ BaseD7,
+ PngComponentsD7,
+ PNG_D7,
+ Usuarios,
+ vclactnband,
+ vclx,
+ JvCoreD7R,
+ vcljpg,
+ JvSystemD7R,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R,
+ tb2k_d7,
+ tbx_d7,
+ dxLayoutControlD7,
+ dbrtl,
+ dsnap,
+ adortl;
+
+{%ToDo 'Contactos.todo'}
+
+contains
+ uPluginControllerContactos in 'uPluginControllerContactos.pas' {ModuleContactos: TModuleController},
+ uDataModuleContactos in 'uDataModuleContactos.pas' {dmContactos: TDAClientDataModule},
+ uEditorContacto in 'uEditorContacto.pas' {fEditorContacto},
+ uBizContacto in '..\Reglas\uBizContacto.pas',
+ uEditorContactos in 'uEditorContactos.pas' {fEditorContactos},
+ uViewContactos in 'uViewContactos.pas' {frViewContactos: TFrame},
+ uViewContacto in 'uViewContacto.pas' {frViewContacto: TFrame},
+ uViewCliente in 'uViewCliente.pas' {frViewCliente: TFrame},
+ uViewClientes in 'uViewClientes.pas' {frViewClientes: TFrame},
+ uEditorCliente in 'uEditorCliente.pas' {fEditorCliente},
+ uEditorClientes in 'uEditorClientes.pas' {fEditorClientes},
+ uEditorProveedores in 'uEditorProveedores.pas' {fEditorProveedores},
+ uViewProveedores in 'uViewProveedores.pas' {frViewProveedores: TFrame},
+ uEditorProveedor in 'uEditorProveedor.pas' {fEditorProveedor},
+ uViewProveedor in 'uViewProveedor.pas' {frViewProveedor: TFrame},
+ uEditorVendedores in 'uEditorVendedores.pas' {fEditorVendedores: TCustomEditor},
+ uEditorVendedor in 'uEditorVendedor.pas' {fEditorVendedor: TCustomEditor},
+ schContactosClient_Intf in '..\Reglas\schContactosClient_Intf.pas',
+ uViewDatosYSeleccionContacto in 'uViewDatosYSeleccionContacto.pas' {frViewDatosYSeleccionContacto: TFrame},
+ uViewVendedor in 'uViewVendedor.pas' {frViewVendedor: TFrame},
+ uViewVendedores in 'uViewVendedores.pas' {frViewVendedores: TFrame},
+ uViewInstaladores in 'uViewInstaladores.pas' {frViewInstaladores: TFrame},
+ uViewInstalador in 'uViewInstalador.pas' {frViewInstalador: TFrame},
+ uEditorInstaladores in 'uEditorInstaladores.pas' {fEditorInstaladores: TCustomEditor},
+ uEditorInstalador in 'uEditorInstalador.pas' {fEditorInstalador: TCustomEditor},
+ uEditorComisiones in 'uEditorComisiones.pas' {fEditorComisiones: TCustomEditor},
+ uDataModuleComisiones in 'uDataModuleComisiones.pas' {dmComisiones: TDAClientDataModule},
+ uBizComisiones in '..\Reglas\uBizComisiones.pas';
+
+end.
diff --git a/Modulos/Contactos/Cliente/Contactos.drc b/Modulos/Contactos/Cliente/Contactos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Contactos/Cliente/Contactos.res b/Modulos/Contactos/Cliente/Contactos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Contactos/Cliente/Contactos.res differ
diff --git a/Modulos/Contactos/Cliente/Contactos.todo b/Modulos/Contactos/Cliente/Contactos.todo
new file mode 100644
index 0000000..99a8091
--- /dev/null
+++ b/Modulos/Contactos/Cliente/Contactos.todo
@@ -0,0 +1,2 @@
+
+
diff --git a/Modulos/Contactos/Cliente/uDataModuleComisiones.ddp b/Modulos/Contactos/Cliente/uDataModuleComisiones.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uDataModuleComisiones.ddp differ
diff --git a/Modulos/Contactos/Cliente/uDataModuleComisiones.dfm b/Modulos/Contactos/Cliente/uDataModuleComisiones.dfm
new file mode 100644
index 0000000..b63e8a1
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uDataModuleComisiones.dfm
@@ -0,0 +1,453 @@
+object dmComisiones: TdmComisiones
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Height = 668
+ Width = 358
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvComisiones'
+ Message = ROBinMessage1
+ Channel = ROWinInetHTTPChannel1
+ Left = 40
+ Top = 16
+ end
+ object DABinAdapter: TDABINAdapter
+ Left = 136
+ Top = 16
+ end
+ object tbl_VENDEDORESCOMISION: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'VENDEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vendedor'
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DefaultValue = '0'
+ DisplayWidth = 0
+ DisplayLabel = 'Porcentaje'
+ ReadOnly = True
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMISION'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ DefaultValue = '0'
+ DisplayWidth = 0
+ DisplayLabel = 'Comisi'#243'n'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'VENDEDORESCOMISION'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'VENDEDORESCOMISION'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'VENDEDORESCOMISION'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'VENDEDORESCOMISION'
+ IndexDefs = <>
+ Left = 72
+ Top = 152
+ end
+ object ds_VENDEDORESCOMISION: TDADataSource
+ DataTable = tbl_VENDEDORESCOMISION
+ Left = 248
+ Top = 152
+ end
+ object LoginRemoteService: TRORemoteService
+ ServiceName = 'srvLogin'
+ Message = ROBinMessage1
+ Channel = ROWinInetHTTPChannel1
+ Left = 80
+ Top = 320
+ end
+ object DADesigntimeCall1: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'User'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'admin'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TRdxLoginInfo'
+ end>
+ RemoteService = LoginRemoteService
+ Left = 80
+ Top = 264
+ end
+ object ROWinInetHTTPChannel1: TROWinInetHTTPChannel
+ ServerLocators = <>
+ DispatchOptions = []
+ ProbeServers = False
+ ProbeFrequency = 60000
+ UserAgent = 'RemObjects SDK'
+ TargetURL = 'http://localhost:8099/bin'
+ Left = 80
+ Top = 376
+ end
+ object ROBinMessage1: TROBinMessage
+ Left = 80
+ Top = 428
+ end
+ object tbl_COBROSCOMISION: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'SELECCION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CATEGORIA'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'FECHAINI'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'COBROSCOMISION'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'COBROSCOMISION'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'COBROSCOMISION'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'COBROSCOMISION'
+ IndexDefs = <>
+ Left = 72
+ Top = 104
+ end
+ object ds_COBROSCOMISION: TDADataSource
+ DataTable = tbl_COBROSCOMISION
+ Left = 248
+ Top = 96
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uDataModuleComisiones.pas b/Modulos/Contactos/Cliente/uDataModuleComisiones.pas
new file mode 100644
index 0000000..0e48a7f
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uDataModuleComisiones.pas
@@ -0,0 +1,139 @@
+unit uDataModuleComisiones;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDataModuleBase, uDAScriptingProvider,
+ uDACDSDataTable, uBizComisiones, uDADesigntimeCall;
+
+type
+ TdmComisiones = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ DABinAdapter: TDABINAdapter;
+ tbl_VENDEDORESCOMISION: TDACDSDataTable;
+ ds_VENDEDORESCOMISION: TDADataSource;
+ LoginRemoteService: TRORemoteService;
+ DADesigntimeCall1: TDADesigntimeCall;
+ ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
+ ROBinMessage1: TROBinMessage;
+ tbl_COBROSCOMISION: TDACDSDataTable;
+ ds_COBROSCOMISION: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ function GetVendedoresComision: IBizVendedoresComision;
+
+ public
+ function GetComision(Codigo : Integer): Float;
+ procedure SetComision(Codigo : Integer; Comision : Float);
+ procedure CalcularComisiones;
+
+ function GetCobrosComision(FechaInicial, FechaFinal : TDateTime): IBizCobrosComision;
+ end;
+
+var
+ dmComisiones: TdmComisiones;
+
+implementation
+
+uses FactuGES_Intf, DataAbstract_Intf, Controls, forms, uDataTableUtils,
+ uGUIBase, uEditorComisiones, schComisionesClient_Intf;
+
+{$R *.DFM}
+
+{ TdmComisiones }
+
+procedure TdmComisiones.CalcularComisiones;
+var
+ aObj: IEditorComisiones;
+begin
+ aObj := TfEditorComisiones.Create(Application);
+ try
+ with aObj do
+ begin
+ ShowModal;
+ end;
+ finally
+ aObj := NIL;
+ end;
+end;
+
+procedure TdmComisiones.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.ROChannel;
+ RORemoteService.Message := dmBase.ROMessage;
+end;
+
+function TdmComisiones.GetCobrosComision(FechaInicial, FechaFinal: TDateTime): IBizCobrosComision;
+var
+ dtCobrosComision: TDACDSDataTable;
+ AParams : TDADatasetParamArray;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCobrosComision := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CobrosCOMISION, dtCobrosComision);
+ with dtCobrosComision do
+ begin
+ BusinessRulesID := BIZ_CobrosCOMISION;
+ FieldByName(fld_CobrosCOMISIONSELECCION).BusinessRulesID := BIZ_SELECCION;
+
+ AParams := TDADatasetParamArray.Create;
+ with AParams.Add do begin
+ Name := 'FECHAINI';
+ Value := FechaInicial;
+ end;
+
+ with AParams.Add do begin
+ Name := 'FECHAFIN';
+ Value := FechaFinal;
+ end;
+ DataRequestCall.ParamByName(par_Params).AsComplexType := AParams;
+ end;
+
+ (dtCobrosComision as IBizCobrosComision).VendedoresComision := GetVendedoresComision;
+
+ Result := (dtCobrosComision as IBizCobrosComision);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmComisiones.GetComision(Codigo: Integer): Float;
+begin
+ Result := (RORemoteService as IsrvComisiones).GetComision(Codigo);
+end;
+
+function TdmComisiones.GetVendedoresComision: IBizVendedoresComision;
+var
+ dtVendedoresComision: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtVendedoresComision := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_VENDEDORESCOMISION, dtVendedoresComision);
+ dtVendedoresComision.BusinessRulesID := BIZ_VENDEDORESCOMISION;
+
+ Result := (dtVendedoresComision as IBizVendedoresComision);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmComisiones.SetComision(Codigo: Integer; Comision: Float);
+begin
+ (RORemoteService as IsrvComisiones).SetComision(Codigo, Comision);
+end;
+
+initialization
+ dmComisiones := TdmComisiones.Create(nil);
+
+finalization
+ FreeAndNil(dmComisiones);
+
+end.
\ No newline at end of file
diff --git a/Modulos/Contactos/Cliente/uDataModuleContactos.dfm b/Modulos/Contactos/Cliente/uDataModuleContactos.dfm
new file mode 100644
index 0000000..36268f6
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uDataModuleContactos.dfm
@@ -0,0 +1,654 @@
+object dmContactos: TdmContactos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 328
+ Top = 337
+ Height = 498
+ Width = 531
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvContactos'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Categorias: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CATEGORIAS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. categor'#237'a'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCATEGORIA_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Categorias'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Categorias'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Categorias'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Categorias'
+ IndexDefs = <>
+ Left = 248
+ Top = 232
+ end
+ object ds_Categorias: TDADataSource
+ DataTable = tbl_Categorias
+ Left = 392
+ Top = 216
+ end
+ object tbl_CategoriasContacto: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. categor'#237'a'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCATEGORIA'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOCONTACTO=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'CategoriasContacto'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'CategoriasContacto'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'CategoriasContacto'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ MasterSource = ds_Contactos
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOCONTACTO'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'CategoriasContacto'
+ IndexDefs = <>
+ Left = 248
+ Top = 128
+ end
+ object ds_CategoriasContacto: TDADataSource
+ DataTable = tbl_CategoriasContacto
+ Left = 400
+ Top = 128
+ end
+ object tbl_Contactos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'NIF/CIF'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Notas'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOTAS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tlf. particular'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONOPARTICULAR'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tlf. trabajo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONOTRABAJO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'M'#243'vil'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fax'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO1'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'E-mail'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CORREO1'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO2'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'E-mail'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CORREO2'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PAGINAWEB'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'P'#225'gina web'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PAGINAWEB'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Persona de contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Contactos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Contactos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Contactos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Contactos'
+ IndexDefs = <>
+ Left = 248
+ Top = 32
+ end
+ object ds_Contactos: TDADataSource
+ DataTable = tbl_Contactos
+ Left = 392
+ Top = 32
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uDataModuleContactos.pas b/Modulos/Contactos/Cliente/uDataModuleContactos.pas
new file mode 100644
index 0000000..596dd27
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uDataModuleContactos.pas
@@ -0,0 +1,335 @@
+unit uDataModuleContactos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizContacto;
+
+type
+ TdmContactos = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Categorias: TDACDSDataTable;
+ ds_Categorias: TDADataSource;
+ tbl_CategoriasContacto: TDACDSDataTable;
+ ds_CategoriasContacto: TDADataSource;
+ tbl_Contactos: TDACDSDataTable;
+ ds_Contactos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ function GetContactos(CodigoCategoria : Integer): IBizContacto;
+
+ function GetContacto(CodigoCategoria : Integer; const Codigo : Integer): IBizContacto; overload;
+ public
+ function PuedoEliminarContacto (CodigoContacto : Integer) : Boolean;
+ function GetNextAutoinc : integer;
+ procedure Preview;
+
+ procedure GetContacto(AContacto : IBizContacto; const Codigo : Integer); overload;
+
+ function GetCliente(Codigo : Integer): IBizCliente;
+ function GetProveedor(Codigo : Integer): IBizProveedor;
+ function GetInstalador(Codigo : Integer): IBizInstalador;
+ function GetVendedor(Codigo : Integer): IBizVendedor;
+
+ function GetClientes: IBizCliente;
+ function GetProveedores: IBizProveedor;
+ function GetInstaladores : IBizInstalador;
+ function GetVendedores : IBizVendedor;
+
+ function GetItemsSeleccionados(ASource : IBizContacto): IBizContacto;
+
+ end;
+
+var
+ dmContactos: TdmContactos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schContactosClient_Intf, uDataModuleBase, uDBSelectionList;
+
+procedure TdmContactos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmContactos.GetClientes: IBizCliente;
+var
+ ACliente: IBizCliente;
+begin
+ ACliente := (GetContactos(CLIENTE) as IBizCliente);
+ Result := ACliente;
+end;
+
+function TdmContactos.GetProveedores: IBizProveedor;
+var
+ AProveedor: IBizProveedor;
+begin
+ AProveedor := (GetContactos(PROVEEDOR) as IBizProveedor);
+ Result := AProveedor;
+end;
+
+function TdmContactos.GetContactos(CodigoCategoria : Integer): IBizContacto;
+var
+ dtContactos: TDACDSDataTable;
+ dtCategorias: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ with dtContactos do
+ begin
+ case CodigoCategoria of
+ CLIENTE : BusinessRulesID := BIZ_CLIENTE;
+ PROVEEDOR : BusinessRulesID := BIZ_PROVEEDOR;
+ INSTALADOR : BusinessRulesID := BIZ_INSTALADOR;
+ VENDEDOR : begin
+ BusinessRulesID := BIZ_VENDEDOR;
+ with Fields.Add do
+ begin
+ Name := fld_ContactosCOMISION;
+ DisplayLabel := 'Comisión';
+ LogChanges := False;
+ Calculated := True;
+ Alignment := taRightJustify;
+ DataType := datFloat;
+ BlobType := dabtUnknown;
+ InPrimaryKey := False;
+ Lookup := False;
+ LookupCache := False;
+ end;
+ end;
+ end;
+ Where.Clear;
+ // No funciona porque la columna no está en la select
+ // --> Where.AddCondition(fld_CategoriasContactoCODIGOCATEGORIA, cEqual, CLIENTE);
+ Where.AddText(fld_CategoriasContactoCODIGOCATEGORIA + '=' + IntToStr(CODIGOCATEGORIA));
+ end;
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ with dtCategorias do
+ begin
+ BusinessRulesID := BIZ_CATEGORIACONTACTO;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+ end;
+
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizContacto);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmContactos.Preview;
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvContactos).GenerateReport;
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmContactos.GetCliente(Codigo: Integer): IBizCliente;
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ Result := (GetContacto(CLIENTE, Codigo) as IBizCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmContactos.GetItemsSeleccionados(ASource: IBizContacto): IBizContacto;
+var
+ aObj : ISelectedRowList;
+ dtContacto : IBizContacto;
+ i : integer;
+begin
+ if Supports(ASource, ISelectedRowList, aObj) then
+ begin
+ if (aObj.SelectedRows.Count = 1) then
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
+ if Supports(ASource, IBizCliente) then
+ Result := GetCliente(ASource.CODIGO)
+ else if Supports(ASource, IBizProveedor) then
+ Result := GetProveedor(ASource.CODIGO);
+// else if Supports(ASource, IBizInstalador) then
+// Result := GetInstalador(ASource.CODIGO);
+ Exit;
+ end
+ else
+ begin
+ if Supports(ASource, IBizCliente) then
+ dtContacto := GetClientes
+ else if Supports(ASource, IBizProveedor) then
+ dtContacto := GetProveedores;
+// else if Supports(ASource, IBizInstalador) then
+// dtContacto := GetInstaladores;
+ end;
+ end
+ else
+ raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
+
+
+ if dtContacto.DataTable.Active then
+ dtContacto.DataTable.Active := False;
+ with dtContacto.DataTable.Where do
+ begin
+ Clear;
+ for i := 0 to aObj.SelectedRows.Count - 1 do
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
+ if i > 0 then
+ AddOperator(opAND);
+ AddCondition(fld_ContactosCODIGO, cEqual, ASource.CODIGO);
+ end;
+ end;
+ Result := dtContacto;
+end;
+
+function TdmContactos.GetInstaladores: IBizInstalador;
+var
+ AInstalador: IBizInstalador;
+begin
+ AInstalador := (GetContactos(INSTALADOR) as IBizInstalador);
+ Result := AInstalador;
+end;
+
+function TdmContactos.GetProveedor(Codigo: Integer): IBizProveedor;
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ Result := (GetContacto(PROVEEDOR, Codigo) as IBizProveedor);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmContactos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvContactos).GetNextAutoinc;
+end;
+
+function TdmContactos.PuedoEliminarContacto(
+ CodigoContacto: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvContactos).PuedoEliminarContacto(CodigoContacto);
+end;
+
+function TdmContactos.GetVendedores: IBizVendedor;
+var
+ AVendedor: IBizVendedor;
+begin
+ AVendedor := (GetContactos(VENDEDOR) as IBizVendedor);
+ Result := AVendedor;
+end;
+
+procedure TdmContactos.GetContacto(AContacto: IBizContacto;
+ const Codigo: Integer);
+var
+ AuxCategoria : Integer;
+begin
+ with AContacto.DataTable do
+ begin
+ if Active then
+ Active := False;
+ Where.Clear;
+ // No funciona porque la columna no está en la select
+ // --> Where.AddCondition(fld_CategoriasContactoCODIGOCATEGORIA, cEqual, CLIENTE);
+
+ if Supports(AContacto, IBizCliente) then
+ AuxCategoria := CLIENTE
+ else begin
+ if Supports(AContacto, IBizProveedor) then
+ AuxCategoria := PROVEEDOR
+ else begin
+ if Supports(AContacto, IBizInstalador) then
+ AuxCategoria := INSTALADOR
+ else begin
+ if Supports(AContacto, IBizVendedor) then
+ AuxCategoria := VENDEDOR
+ else
+ raise Exception.Create('Tipo de contacto desconocido (GetContacto)');
+ end;
+ end;
+ end;
+
+ Where.AddText(fld_CategoriasContactoCODIGOCATEGORIA + '=' + IntToStr(AuxCategoria));
+ Where.AddOperator(opAND);
+ Where.AddCondition(fld_ContactosCODIGO, cEqual, Codigo);
+ end;
+end;
+
+function TdmContactos.GetInstalador(Codigo: Integer): IBizInstalador;
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ Result := (GetContacto(INSTALADOR, Codigo) as IBizInstalador);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmContactos.GetVendedor(Codigo: Integer): IBizVendedor;
+var
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ Result := (GetContacto(VENDEDOR, Codigo) as IBizVendedor);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmContactos.GetContacto(CodigoCategoria: Integer;
+ const Codigo: Integer): IBizContacto;
+var
+ AContactos : IBizContacto;
+begin
+ AContactos := GetContactos(CodigoCategoria) as IBizContacto;
+ GetContacto(AContactos, Codigo);
+ Result := AContactos;
+end;
+
+initialization
+ dmContactos := TdmContactos.Create(nil);
+
+finalization
+ FreeAndNil(dmContactos);
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uEditorCliente.dfm b/Modulos/Contactos/Cliente/uEditorCliente.dfm
new file mode 100644
index 0000000..f21c961
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorCliente.dfm
@@ -0,0 +1,57 @@
+inherited fEditorCliente: TfEditorCliente
+ Left = 387
+ Top = 297
+ Caption = 'Ficha de cliente'
+ ClientHeight = 464
+ ClientWidth = 592
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 592
+ inherited Image1: TImage
+ Left = 565
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB51930000033B4944415478DADD957F6856
+ 5518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D6642496A32874A1
+ 329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821CBA0D572928
+ 46A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE1F0F3CDC73
+ 78CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA79CA18400E
+ C61C86162270F93043033D986692E9454B99337F459A80695AA37EFB6B58D6BD
+ F1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C47431B7BC9EE2
+ 05B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C951627AA06A9AC
+ FB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F1C401D1A91
+ C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BCD9D09C0E08
+ F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F768E8A08C3
+ 64D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F6482103210442D7D125E4
+ 7AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF2051989613214
+ 19BB5C681806868444E30922D32B295DBC7E42717B5CB761977391FBBB5AD16E
+ 76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DDCE806B7D17
+ E8ED68656622814716591882802AB893534259453D3373674F286EFBDED9F259
+ 3AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF30ED5854B78
+ 7FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F655FE711DA03
+ 5DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7E06D0AB2E7
+ A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468CBC58169A57
+ 10F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F95B3A9797F
+ 2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC872BECE3EF
+ 500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7340F56A620
+ E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD63060DCB5F
+ 4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A52964E678D9
+ 5CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF173E327147
+ C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A30000000049454E44
+ AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 592
+ end
+ inherited pgPaginas: TPageControl
+ Width = 592
+ Height = 369
+ end
+ inherited StatusBar: TStatusBar
+ Top = 445
+ Width = 592
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorCliente.pas b/Modulos/Contactos/Cliente/uEditorCliente.pas
new file mode 100644
index 0000000..8086a52
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorCliente.pas
@@ -0,0 +1,80 @@
+unit uEditorCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX,
+ TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uViewCliente, uBizContacto, DB, uDADataTable,
+ JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, uCustomView,
+ uViewBase, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, ExtCtrls, pngimage;
+
+type
+ IEditorCliente = interface(IEditorContacto)
+ ['{18215A21-1EDD-4E72-A69F-87C8E4347E84}']
+ end;
+
+ TfEditorCliente = class(TfEditorContacto, IEditorCliente)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+implementation
+
+uses
+ uEditorUtils, uEditorItem, uDataModuleContactos,
+ uDataModuleBase, uEditorBase;
+
+{$R *.dfm}
+
+function ShowEditorCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorCliente;
+begin
+ AEditor := TfEditorCliente.Create(Application);
+ try
+ AEditor.Contacto := (ABizObject as IBizCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+procedure TfEditorCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este cliente?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+constructor TfEditorCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewContacto := CreateView(TfrViewCliente) as IViewCliente;
+end;
+
+procedure TfEditorCliente.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(Contacto) and (not (Contacto.DataTable.Fetching) or
+ not (Contacto.DataTable.Opening) or not (Contacto.DataTable.Closing)) then
+ begin
+ if Length(Contacto.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo cliente'
+ else
+ JvNavPanelHeader.Caption := Contacto.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizCliente, ShowEditorCliente, etItem);
+
+finalization
+
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorClientes.ddp b/Modulos/Contactos/Cliente/uEditorClientes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorClientes.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorClientes.dfm b/Modulos/Contactos/Cliente/uEditorClientes.dfm
new file mode 100644
index 0000000..757f0bb
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorClientes.dfm
@@ -0,0 +1,1400 @@
+inherited fEditorClientes: TfEditorClientes
+ Left = 441
+ Top = 313
+ Width = 693
+ Caption = 'Lista de clientes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 685
+ Caption = 'Lista de clientes'
+ inherited Image1: TImage
+ Left = 658
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB51930000033B4944415478DADD957F6856
+ 5518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D6642496A32874A1
+ 329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821CBA0D572928
+ 46A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE1F0F3CDC73
+ 78CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA79CA18400E
+ C61C86162270F93043033D986692E9454B99337F459A80695AA37EFB6B58D6BD
+ F1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C47431B7BC9EE2
+ 05B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C951627AA06A9AC
+ FB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F1C401D1A91
+ C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BCD9D09C0E08
+ F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F768E8A08C3
+ 64D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F6482103210442D7D125E4
+ 7AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF2051989613214
+ 19BB5C681806868444E30922D32B295DBC7E42717B5CB761977391FBBB5AD16E
+ 76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DDCE806B7D17
+ E8ED68656622814716591882802AB893534259453D3373674F286EFBDED9F259
+ 3AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF30ED5854B78
+ 7FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F655FE711DA03
+ 5DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7E06D0AB2E7
+ A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468CBC58169A57
+ 10F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F95B3A9797F
+ 2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC872BECE3EF
+ 500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7340F56A620
+ E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD63060DCB5F
+ 4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A52964E678D9
+ 5CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF173E327147
+ C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A30000000049454E44
+ AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 685
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 685
+ end
+ inherited frViewBarraSeleccion: TfrViewBarraSeleccion
+ Width = 685
+ inherited pnlSeleccion: TPanel
+ Width = 685
+ inherited bSeleccionar: TButton
+ Left = 522
+ end
+ inherited bCancelar: TButton
+ Left = 601
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001EC4944415478DA
+ A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B
+ A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842
+ 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B
+ 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB
+ 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F
+ 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C
+ 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C
+ 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9
+ 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358
+ 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8
+ BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21
+ 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991
+ 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA
+ 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06
+ 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF
+ C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000033B4944415478DA
+ DD957F68565518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D66424
+ 96A32874A1329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821C
+ BA0D57292846A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE
+ 1F0F3CDC7378CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA
+ 79CA18400EC61C86162270F93043033D986692E9454B99337F459A80695AA37E
+ FB6B58D6BDF1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C474
+ 31B7BC9EE205B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C9516
+ 27AA06A9ACFB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F
+ 1C401D1A91C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BC
+ D9D09C0E08F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F
+ 768E8A08C364D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F64821032104
+ 42D7D125E47AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF205
+ 198961321419BB5C681806868444E30922D32B295DBC7E42717B5CB761977391
+ FBBB5AD16E76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DD
+ CE806B7D17E8ED68656622814716591882802AB893534259453D3373674F286E
+ FBDED9F2593AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF3
+ 0ED5854B787FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F65
+ 5FE711DA035DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7
+ E06D0AB2E7A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468C
+ BC58169A5710F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F
+ 95B3A9797F2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC
+ 872BECE3EF500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7
+ 340F56A620E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD
+ 63060DCB5F4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A5
+ 2964E678D95CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF
+ 173E327147C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A3000000
+ 0049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorClientes.pas b/Modulos/Contactos/Cliente/uEditorClientes.pas
new file mode 100644
index 0000000..eccd4a7
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorClientes.pas
@@ -0,0 +1,117 @@
+unit uEditorClientes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContactos, Menus, ImgList, PngImageList, StdActns,
+ ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar,
+ JvExControls, JvComponent, JvNavigationPane, DB, uDADataTable,
+ JvFormAutoSize, ComCtrls, uDAScriptingProvider, uDACDSDataTable, StdCtrls,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement, uCustomView,
+ uViewBase, uViewBarraSeleccion, ExtCtrls, pngimage, JvComponentBase;
+
+type
+ IEditorClientes = interface(IEditorContactos)
+ ['{C4C456DA-6E1F-41E7-A48D-B743BDD7FA18}']
+ end;
+
+ TfEditorClientes = class(TfEditorContactos, IEditorClientes)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ private
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ public
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+implementation
+
+uses
+ uViewClientes, uViewContactos, uEditorUtils,
+ uDataModuleContactos, uDataModuleBase, uEditorGrid, uBizContacto,
+ uDBSelectionList;
+
+{$R *.dfm}
+
+function ShowEditorClientes (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorClientes;
+begin
+ AEditor := TfEditorClientes.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorClientes (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorClientes;
+begin
+ AEditor := TfEditorClientes.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizCliente);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+
+{
+******************************* TfEditorClientes *******************************
+}
+procedure TfEditorClientes.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este cliente?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+constructor TfEditorClientes.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewClientes) as IViewContactos;
+end;
+
+function TfEditorClientes.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorClientes.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorClientes.actDuplicarExecute(Sender: TObject);
+var
+ AContacto : IBizContacto;
+begin
+ inherited;
+ AContacto := dmContactos.GetCliente(Contactos.CODIGO);
+ Contactos.Insert;
+ Contactos.CopyFrom(AContacto);
+ Contactos.DataTable.ApplyUpdates;
+ ViewGrid.RefreshGrid;
+ ViewGrid.GotoFirst;
+end;
+
+initialization
+ RegisterEditor(IBizCliente, ShowEditorClientes, etItems);
+ RegisterEditor(IBizCliente, ShowSelectEditorClientes, etSelectItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uEditorComisiones.ddp b/Modulos/Contactos/Cliente/uEditorComisiones.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorComisiones.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorComisiones.dfm b/Modulos/Contactos/Cliente/uEditorComisiones.dfm
new file mode 100644
index 0000000..a091447
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorComisiones.dfm
@@ -0,0 +1,598 @@
+inherited fEditorComisiones: TfEditorComisiones
+ Left = 241
+ Top = 117
+ Width = 851
+ Height = 662
+ Caption = 'C'#225'lculo de comisiones de vendedores'
+ OnGetModified = CustomEditorGetModified
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 843
+ Caption = 'C'#225'lculo de comisiones de vendedores'
+ inherited Image1: TImage
+ Left = 816
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000040C4944415478DAB5957F6C13
+ 6518C7BF776D474BC7D87061A011815981753211E6D86AA5B865486AC409129C
+ 4AB6C13637C5312331D1EC17E8D044A3C1A066C384986804FF984AC6C284C531
+ 6B9C9190A1123061D1D4C8A4CEBA75EDF5DADEBDBEEFF576F3E0A64EC39B5C9E
+ F7C7F5F93CCFF77D9E2B4708C1F51C1C0374F57D775D2865F7E6721A802E944D
+ B66649C98A55E7B24CD78024510B0239419473599620C9CC12CD2AEFD2E7A1AA
+ 173074B2430F60CE84B1515C38D6819FFABB100E8711B2656059F183C82B7D1C
+ 66EB5CD589EA9048DA9C304B1DB020D87CCB4E03404C8CE0DC7BAF401EFC14C1
+ 88802B13131815A2088405DC555E83BB1F69024C56257296D1FE4F2C86D2D47A
+ C6B0ADA6490FD8E471E2FCC031F80F3D0F4E8C211815F1074760CE4C4360E40A
+ 02E35134BCD30BFB42A71A359391CAC164236A4612418224652AAF6DD6031E58
+ 9783939DAD183DF53E623C0FD3DC5464396EC26D8EF908FEF63B3EEEFA02DE9A
+ 362C2A2CA7B7C02B0E5F3D6E35CC60873B88C7EA5AF480FB29A0FBB50624C6CE
+ C1E15C8C797366C36EE311098561E109FA3E3F8B1B8BAAE1703F0A99E3956827
+ 2F95699F9093DA4F66B2FDA9563DC0EB5E81237B2B9099F2335CF7E4420C4721
+ 50FD63542E330FF4F67E8DC5F7ED418E7B1B9584532B8B5D2A93E5AFCE65055C
+ F1F45E3D60A36B390ED697D032BA04EFA6B5B05BAC8846449868F46121840F8E
+ 0C207F4B33567B77508938254A69527B96851AF924B8AA619F1EB0A16819DE6E
+ AAC2455F0F4A3DB7232F671EE2B13862721C8367FCF8D27711DE9637915FB099
+ 9633BB03597964B53C596F10552E6AB0B3F12A4069A10343A77DF8B6A51319F6
+ 286C8541983244042E110883E9E0641BB23B1AB16481538BB8ED40B7E125EFAE
+ 2C46CD332FEA01C505B762A0F12DDC70E617088910A2EB4790B6260EA17B0EEC
+ DF6781F0669C77A5206F5725D2AC193ABDB52E26C93DE6B3F6D9763D60FD9A6C
+ 9CCE7F12E9B367C124F2204502D272A9DA275211B94CB34002E1F1187EA87760
+ 4359A5D2682F1DEC31CC60D7760FEAF6ECD7033CABB3712ABF0EA9560BEC9C19
+ 2455866916609E30438C4B082712D8F8BADFD0E1375987B4BB206A45D53FF7B2
+ 1EE05EB514C7EFACC67C9B1D36B30929BC89B613AD16DACDA2948065730F1696
+ 9461A9EB0D0CFB762B8E2F0F9F05867F4467DFAF38DCB4EE5A72C98929802B6F
+ 09BEEAFE0CFEC12188C110402B88C940EB14B289C302773AB203EF2ACEAE1ECD
+ ED4F4C0BD600852B17A9B52D4F75A8046DAD94243D5FE9AF3494A9625FFF357B
+ 87FBA3531914386F563FC1C94A4836D1148C7E4031FEE1DA19C944A15B35406B
+ FB817FFC875A953982EA15438632D168A797E8DF0C5FDB2D0FBB5CCB8F1A9EF9
+ 2E1842E9B8632600F2B7F250BD8D7E37A30CA8393A4DA45B29E0A3FF05F8AFE3
+ 4FB2402F1C4138F79E0000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 843
+ inherited tbxMenu: TTBXToolbar
+ Visible = False
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 609
+ Width = 843
+ end
+ object dxLayoutControl1: TdxLayoutControl [3]
+ Left = 0
+ Top = 76
+ Width = 843
+ Height = 533
+ Align = alClient
+ TabOrder = 3
+ AutoContentSizes = [acsWidth, acsHeight]
+ LookAndFeel = dxLayoutOfficeLookAndFeel1
+ object edtFechaIni: TcxDateEdit
+ Left = 61
+ Top = 30
+ Properties.DateButtons = [btnToday]
+ Properties.DateOnError = deToday
+ Properties.SaveTime = False
+ Properties.ShowTime = False
+ Properties.OnValidate = edtFechaIniPropertiesValidate
+ 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 = 297
+ end
+ object edtFechaFin: TcxDateEdit
+ Left = 400
+ Top = 30
+ Properties.DateButtons = [btnToday]
+ Properties.DateOnError = deToday
+ Properties.SaveTime = False
+ Properties.ShowTime = False
+ Properties.OnValidate = edtFechaIniPropertiesValidate
+ 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 = 295
+ end
+ object Button1: TButton
+ Left = 701
+ Top = 30
+ Width = 120
+ Height = 25
+ Caption = 'Calcular comisiones'
+ TabOrder = 2
+ OnClick = Button1Click
+ end
+ object cxGrid: TcxGrid
+ Left = 22
+ Top = 357
+ Width = 799
+ Height = 160
+ TabOrder = 5
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ DataController.DataSource = DADataSource2
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewCOMISION
+ end
+ item
+ Format = 'Total comisiones = '
+ Kind = skCount
+ Column = cxGridViewPORCENTAJE
+ end>
+ DataController.Summary.SummaryGroups = <>
+ OptionsBehavior.AlwaysShowEditor = True
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.Deleting = False
+ OptionsData.Editing = False
+ OptionsData.Inserting = False
+ OptionsSelection.CellSelect = False
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.ScrollBars = ssVertical
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.DataRowHeight = 25
+ OptionsView.Footer = True
+ OptionsView.GridLineColor = clInactiveCaption
+ OptionsView.GridLines = glHorizontal
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ object cxGridViewVENDEDOR: TcxGridDBColumn
+ Caption = 'Vendedor'
+ DataBinding.FieldName = 'VENDEDOR'
+ Width = 336
+ end
+ object cxGridViewPORCENTAJE: TcxGridDBColumn
+ Caption = 'Porcentaje'
+ DataBinding.FieldName = 'PORCENTAJE'
+ PropertiesClassName = 'TcxSpinEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.Alignment.Vert = taVCenter
+ Properties.DisplayFormat = '0.00 %'
+ HeaderAlignmentHorz = taRightJustify
+ Width = 84
+ end
+ object cxGridViewCOMISION: TcxGridDBColumn
+ Caption = 'Comisi'#243'n'
+ DataBinding.FieldName = 'COMISION'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.Alignment.Vert = taVCenter
+ HeaderAlignmentHorz = taRightJustify
+ Width = 84
+ end
+ end
+ object cxGridLevel: TcxGridLevel
+ GridView = cxGridView
+ end
+ end
+ object edtImporteCobros: TcxCurrencyEdit
+ Left = 685
+ Top = 306
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ 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 = 3
+ Width = 136
+ end
+ object cxGrid1: TcxGrid
+ Left = 22
+ Top = 85
+ Width = 799
+ Height = 215
+ TabOrder = 4
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridDBTableView1: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ OnCustomDrawCell = cxGridDBTableView1CustomDrawCell
+ DataController.DataSource = DADataSource
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ 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 = 'Total comisiones = '
+ Kind = skCount
+ end>
+ DataController.Summary.SummaryGroups = <>
+ OptionsBehavior.AlwaysShowEditor = True
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.Deleting = False
+ OptionsData.Inserting = False
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.ScrollBars = ssVertical
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.GridLineColor = clInactiveCaption
+ OptionsView.GridLines = glHorizontal
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ Styles.ContentEven = cxStyleEven
+ Styles.ContentOdd = cxStyleOdd
+ Styles.Selection = cxStyleSelection
+ Styles.Indicator = cxStyleSelection
+ object cxGridDBTableView1RecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridDBTableView1SELECCION: TcxGridDBColumn
+ DataBinding.FieldName = 'SELECCION'
+ PropertiesClassName = 'TcxCheckBoxProperties'
+ Properties.ImmediatePost = True
+ Properties.ValueChecked = 1
+ Properties.ValueUnchecked = 0
+ Width = 36
+ IsCaptionAssigned = True
+ end
+ object cxGridDBTableView1CODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridDBTableView1CODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridDBTableView1CODIGOCONTACTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCONTACTO'
+ Visible = False
+ end
+ object cxGridDBTableView1FECHAPAGO: TcxGridDBColumn
+ Caption = 'Fecha'
+ DataBinding.FieldName = 'FECHAPAGO'
+ PropertiesClassName = 'TcxDateEditProperties'
+ Properties.AutoSelect = False
+ Properties.ReadOnly = True
+ Options.Editing = False
+ Width = 98
+ end
+ object cxGridDBTableView1NOMBRE: TcxGridDBColumn
+ Caption = 'Nombre'
+ DataBinding.FieldName = 'NOMBRE'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.AutoSelect = False
+ Properties.ReadOnly = True
+ Options.Editing = False
+ Width = 244
+ end
+ object cxGridDBTableView1DESCRIPCION: TcxGridDBColumn
+ Caption = 'Descripci'#243'n del pago'
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.AutoSelect = False
+ Properties.ReadOnly = True
+ Options.Editing = False
+ Width = 263
+ end
+ object cxGridDBTableView1IMPORTE: TcxGridDBColumn
+ Caption = 'Importe'
+ DataBinding.FieldName = 'IMPORTE'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.AutoSelect = False
+ Properties.ReadOnly = True
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Options.Editing = False
+ Width = 156
+ end
+ end
+ object cxGridLevel1: TcxGridLevel
+ GridView = cxGridDBTableView1
+ end
+ end
+ object cxSplitter1: TcxSplitter
+ Left = 0
+ Top = 0
+ Width = 821
+ Height = 5
+ AlignSplitter = salTop
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ Caption = 'Seleccione el rango de fechas'
+ LayoutDirection = ldHorizontal
+ object dxLayoutControl1Item1: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Desde:'
+ Control = edtFechaIni
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item2: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'hasta:'
+ Control = edtFechaFin
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item5: TdxLayoutItem
+ Caption = 'New Item'
+ ShowCaption = False
+ Control = Button1
+ ControlOptions.ShowBorder = False
+ end
+ end
+ object dxLayoutControl1Group3: TdxLayoutGroup
+ AutoAligns = [aaHorizontal]
+ AlignVert = avClient
+ Caption = 'Lista de albaranes'
+ object dxLayoutControl1Item6: TdxLayoutItem
+ AutoAligns = []
+ AlignHorz = ahRight
+ AlignVert = avBottom
+ Caption = 'Importe total de los albaranes:'
+ Control = edtImporteCobros
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControl1Item3: TdxLayoutItem
+ AutoAligns = [aaHorizontal]
+ AlignVert = avClient
+ Caption = 'New Item'
+ ShowCaption = False
+ Control = cxGrid1
+ ControlOptions.ShowBorder = False
+ end
+ end
+ object dxLayoutControl1Group2: TdxLayoutGroup
+ AutoAligns = [aaHorizontal]
+ AlignVert = avBottom
+ Caption = 'Comisiones por vendedor'
+ object dxLayoutControl1Item4: TdxLayoutItem
+ AutoAligns = [aaHorizontal]
+ AlignVert = avClient
+ Control = cxGrid
+ ControlOptions.ShowBorder = False
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ Left = 456
+ Top = 88
+ inherited actPrevisualizar: TAction
+ OnExecute = actPrevisualizarExecute
+ end
+ end
+ object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
+ Left = 8
+ Top = 84
+ object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel
+ GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET
+ GroupOptions.CaptionOptions.Font.Color = clWindowText
+ GroupOptions.CaptionOptions.Font.Height = -11
+ GroupOptions.CaptionOptions.Font.Name = 'MS Sans Serif'
+ GroupOptions.CaptionOptions.Font.Style = [fsBold]
+ GroupOptions.CaptionOptions.TextColor = clActiveCaption
+ GroupOptions.CaptionOptions.UseDefaultFont = False
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 40
+ Top = 216
+ end
+ object cxStyleRepository1: TcxStyleRepository
+ Left = 8
+ Top = 112
+ object cxStyleEven: TcxStyle
+ end
+ object cxStyleOdd: TcxStyle
+ AssignedValues = [svColor]
+ Color = clInactiveCaptionText
+ end
+ object cxStyleSelection: TcxStyle
+ AssignedValues = [svColor, svTextColor]
+ Color = clHighlight
+ TextColor = clHighlightText
+ end
+ end
+ object DADataSource2: TDADataSource
+ Left = 40
+ Top = 456
+ end
+ object dxComponentPrinter: TdxComponentPrinter
+ CurrentLink = dxComponentPrinterLink5
+ PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint]
+ PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins]
+ PreviewOptions.WindowState = wsMaximized
+ Version = 0
+ Left = 688
+ Top = 208
+ object dxComponentPrinterLink1: TdxGridReportLink
+ Active = True
+ Component = cxGrid1
+ 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 39238.569511527780000000
+ OptionsDetails.StartFromFocusedView = True
+ OptionsExpanding.ExpandCards = True
+ OptionsExpanding.ExpandGroupRows = True
+ OptionsExpanding.ExpandMasterRows = True
+ OptionsSelection.ProcessSelection = True
+ OptionsSize.AutoWidth = True
+ BuiltInReportLink = True
+ end
+ object dxComponentPrinterLink2: TdxCompositionReportLink
+ Active = True
+ 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.Caption = 'NewReport'
+ ReportDocument.CreationDate = 39238.590108136580000000
+ ReportDocument.IsDescriptionAssigned = True
+ Items = <
+ item
+ ReportLink = dxComponentPrinterLink4
+ BuiltInCompositionItem = True
+ end
+ item
+ ReportLink = dxComponentPrinterLink3
+ BuiltInCompositionItem = True
+ end>
+ BuiltInReportLink = True
+ end
+ object dxComponentPrinterLink3: 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 39238.590108136580000000
+ BuiltInReportLink = True
+ end
+ object dxComponentPrinterLink4: TdxLayoutControlReportLink
+ Active = True
+ Component = dxLayoutControl1
+ 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 39238.590108136580000000
+ OptionsPagination.Controls = False
+ BuiltInReportLink = True
+ HiddenComponents = {}
+ ExcludedComponents = {
+ 64784C61796F7574436F6E74726F6C314974656D330D0A64784C61796F757443
+ 6F6E74726F6C314974656D340D0A}
+ AggregatedReportLinks = {6478436F6D706F6E656E745072696E7465724C696E6B310D0A}
+ end
+ object dxComponentPrinterLink5: TdxCustomContainerReportLink
+ Active = True
+ Component = Owner
+ 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.PageSize.X = 210000
+ PrinterPage.PageSize.Y = 297000
+ PrinterPage._dxMeasurementUnits_ = 0
+ PrinterPage._dxLastMU_ = 2
+ ReportDocument.CreationDate = 39238.600628252310000000
+ BuiltInReportLink = True
+ HiddenComponents = {}
+ ExcludedComponents = {
+ 4A764E617650616E656C4865616465720D0A496D616765310D0A544258446F63
+ 6B0D0A7462784D61696E0D0A7462784D656E750D0A5374617475734261720D0A
+ 64784C61796F7574436F6E74726F6C310D0A6564744665636861496E690D0A65
+ 6474466563686146696E0D0A427574746F6E310D0A6378477269640D0A656474
+ 496D706F727465436F62726F730D0A637847726964310D0A637853706C697474
+ 6572310D0A}
+ AggregatedReportLinks = {
+ 6478436F6D706F6E656E745072696E7465724C696E6B310D0A6478436F6D706F
+ 6E656E745072696E7465724C696E6B330D0A}
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorComisiones.pas b/Modulos/Contactos/Cliente/uEditorComisiones.pas
new file mode 100644
index 0000000..b8e95d5
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorComisiones.pas
@@ -0,0 +1,168 @@
+unit uEditorComisiones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorItem, JvAppStorage, JvAppRegistryStorage, JvComponent,
+ JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls,
+ JvNavigationPane, uEditorBase, uCustomView, uViewBase, StdCtrls,
+ uDADataTable, dxLayoutControl, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, dxLayoutLookAndFeels,
+ cxStyles, DB, cxGrid, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxDBData, cxGridLevel, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView,
+ cxCurrencyEdit, cxSpinEdit, uBizComisiones, cxCheckBox, cxSplitter,
+ JvComponentBase, JvExExtCtrls, JvSplitter, JvSplit, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ dxPSContainerLnk, dxPSdxLCLnk;
+
+type
+ IEditorComisiones = interface(IEditorBase)
+ ['{C3894FB2-9030-466C-B2D9-5CF3CF5EA1B8}']
+ end;
+
+ TfEditorComisiones = class(TfEditorBase, IEditorComisiones)
+ Button1: TButton;
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ edtFechaIni: TcxDateEdit;
+ edtFechaFin: TcxDateEdit;
+ dxLayoutControl1Item2: TdxLayoutItem;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
+ dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
+ DADataSource: TDADataSource;
+ dxLayoutControl1Item4: TdxLayoutItem;
+ cxGrid: TcxGrid;
+ cxGridView: TcxGridDBTableView;
+ cxGridViewVENDEDOR: TcxGridDBColumn;
+ cxGridViewPORCENTAJE: TcxGridDBColumn;
+ cxGridViewCOMISION: TcxGridDBColumn;
+ cxGridLevel: TcxGridLevel;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ dxLayoutControl1Group2: TdxLayoutGroup;
+ dxLayoutControl1Item5: TdxLayoutItem;
+ edtImporteCobros: TcxCurrencyEdit;
+ dxLayoutControl1Item6: TdxLayoutItem;
+ dxLayoutControl1Group3: TdxLayoutGroup;
+ cxGrid1: TcxGrid;
+ cxGridDBTableView1: TcxGridDBTableView;
+ cxGridLevel1: TcxGridLevel;
+ dxLayoutControl1Item3: TdxLayoutItem;
+ cxGridDBTableView1RecID: TcxGridDBColumn;
+ cxGridDBTableView1SELECCION: TcxGridDBColumn;
+ cxGridDBTableView1CODIGOEMPRESA: TcxGridDBColumn;
+ cxGridDBTableView1CODIGO: TcxGridDBColumn;
+ cxGridDBTableView1CODIGOCONTACTO: TcxGridDBColumn;
+ cxGridDBTableView1NOMBRE: TcxGridDBColumn;
+ cxGridDBTableView1FECHAPAGO: TcxGridDBColumn;
+ cxGridDBTableView1IMPORTE: TcxGridDBColumn;
+ cxStyleRepository1: TcxStyleRepository;
+ cxStyleEven: TcxStyle;
+ cxStyleOdd: TcxStyle;
+ cxStyleSelection: TcxStyle;
+ DADataSource2: TDADataSource;
+ cxSplitter1: TcxSplitter;
+ cxGridDBTableView1DESCRIPCION: TcxGridDBColumn;
+ dxComponentPrinter: TdxComponentPrinter;
+ dxComponentPrinterLink1: TdxGridReportLink;
+ dxComponentPrinterLink2: TdxCompositionReportLink;
+ dxComponentPrinterLink3: TdxGridReportLink;
+ dxComponentPrinterLink4: TdxLayoutControlReportLink;
+ dxComponentPrinterLink5: TdxCustomContainerReportLink;
+ procedure Button1Click(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ procedure edtFechaIniPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption;
+ var Error: Boolean);
+ procedure CustomEditorGetModified(Sender: TObject;
+ var Modified: Boolean);
+ procedure cxGridDBTableView1CustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure actPrevisualizarExecute(Sender: TObject);
+ private
+ FComisiones : TDADataTable;
+ FCobrosComision : IBizCobrosComision;
+ procedure OnTotalChanged(Sender : TObject);
+ public
+ { Public declarations }
+ end;
+
+var
+ fEditorComisiones: TfEditorComisiones;
+
+implementation
+
+uses uDataModuleComisiones, DateUtils, FactuGES_Intf, schComisionesClient_Intf;
+
+{$R *.dfm}
+
+procedure TfEditorComisiones.Button1Click(Sender: TObject);
+begin
+ //Liberamos
+ if Assigned(FCobrosComision) then
+ FCobrosComision := Nil;
+
+ FCobrosComision := dmComisiones.GetCobrosComision(edtFechaIni.Date, edtFechaFin.Date);
+ DADataSource.DataTable := FCobrosComision.DataTable;
+ DADataSource2.DataTable := FCobrosComision.VendedoresComision.DataTable;
+ FCobrosComision.OnTotalChanged := OnTotalChanged;
+ DADataSource2.DataTable.Active := True; //No cambiar el orden es importante que el orden sea este
+ DADataSource.DataTable.Active := True;
+end;
+
+procedure TfEditorComisiones.FormShow(Sender: TObject);
+begin
+ inherited;
+ edtFechaIni.Date := DateOf(StartOfTheMonth(Now));
+ edtFechaFin.Date := DateOf(EndOfTheMonth(Now));
+end;
+
+procedure TfEditorComisiones.edtFechaIniPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+begin
+ inherited;
+ if Length(DisplayValue) = 0 then
+ begin
+ Error := True;
+ ErrorText := 'La fecha no puede ser vacía';
+ end;
+end;
+
+procedure TfEditorComisiones.CustomEditorGetModified(Sender: TObject;
+ var Modified: Boolean);
+begin
+ inherited;
+ Modified := False;
+end;
+
+procedure TfEditorComisiones.cxGridDBTableView1CustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_CobrosCOMISIONSELECCION).Index;
+ if UPPERCASE(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = 'FALSE' then
+ begin
+ ACanvas.Canvas.Font.Style := [fsStrikeOut];
+ ACanvas.Canvas.Font.Color := clGray;
+ end;
+end;
+
+procedure TfEditorComisiones.OnTotalChanged(Sender: TObject);
+begin
+ edtImporteCobros.Value := FCobrosComision.Total;
+end;
+
+procedure TfEditorComisiones.actPrevisualizarExecute(Sender: TObject);
+begin
+ inherited;
+ dxComponentPrinter.Preview;
+end;
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorContacto.dfm b/Modulos/Contactos/Cliente/uEditorContacto.dfm
new file mode 100644
index 0000000..9a6a6cc
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorContacto.dfm
@@ -0,0 +1,102 @@
+inherited fEditorContacto: TfEditorContacto
+ Left = 575
+ Top = 291
+ HorzScrollBar.Visible = False
+ VertScrollBar.Range = 0
+ VertScrollBar.Visible = False
+ BorderStyle = bsDialog
+ Caption = 'Ficha de contacto'
+ ClientHeight = 463
+ ClientWidth = 634
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 634
+ Caption = 'Cliente'
+ inherited Image1: TImage
+ Left = 607
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 634
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 634
+ Height = 368
+ end
+ inherited StatusBar: TStatusBar
+ Top = 444
+ Width = 634
+ end
+ inherited EditorActionList: TActionList
+ Top = 128
+ end
+ inherited SmallImages: TPngImageList
+ Top = 112
+ end
+ inherited dsDataTable: TDADataSource [6]
+ Left = 168
+ Top = 120
+ end
+ inherited LargeImages: TPngImageList [7]
+ Top = 112
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ Top = 144
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ Top = 144
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorContacto.pas b/Modulos/Contactos/Cliente/uEditorContacto.pas
new file mode 100644
index 0000000..846750c
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorContacto.pas
@@ -0,0 +1,101 @@
+unit uEditorContacto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ uViewContacto, uBizContacto, JvNavigationPane, ActnList,
+ uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
+ TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
+ TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement;
+
+type
+ IEditorContacto = interface(IEditorDBItem)
+ ['{21DD6B74-F218-4AFC-91EE-1ECD4ADF1553}']
+ function GetContacto: IBizContacto;
+ procedure SetContacto(const Value: IBizContacto);
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ end;
+
+ TfEditorContacto = class(TfEditorDBItem, IEditorContacto)
+ procedure FormShow(Sender: TObject);
+ private
+ FContacto: IBizContacto;
+ FViewContacto : IViewContacto;
+ protected
+ function GetContacto: IBizContacto; virtual;
+ procedure SetContacto(const Value: IBizContacto); virtual;
+
+ function GetViewContacto: IViewContacto;
+ procedure SetViewContacto(const Value: IViewContacto);
+ property ViewContacto: IViewContacto read GetViewContacto write
+ SetViewContacto;
+ public
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uCustomEditor, uDataModuleContactos, uDataModuleBase;
+
+{
+******************************* TfEditorContacto *******************************
+}
+function TfEditorContacto.GetContacto: IBizContacto;
+begin
+ Result := FContacto;
+end;
+
+function TfEditorContacto.GetViewContacto: IViewContacto;
+begin
+ Result := FViewContacto;
+end;
+
+procedure TfEditorContacto.SetContacto(const Value: IBizContacto);
+begin
+ FContacto := Value;
+ dsDataTable.DataTable := FContacto.DataTable;
+
+ if Assigned(FViewContacto) and Assigned(Contacto) then
+ FViewContacto.Contacto := Contacto;
+end;
+
+procedure TfEditorContacto.SetViewContacto(const Value: IViewContacto);
+begin
+ FViewContacto := Value;
+
+ if Assigned(FViewContacto) and Assigned(Contacto) then
+ FViewContacto.Contacto := Contacto;
+end;
+
+procedure TfEditorContacto.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewContacto) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Contacto) then
+ raise Exception.Create('No hay ningún contacto asignado');
+
+ Contacto.DataTable.Active := True;
+ FViewContacto.ShowEmbedded(pagGeneral);
+ FViewContacto.SetFocus;
+end;
+
+destructor TfEditorContacto.Destroy;
+begin
+ FViewContacto := NIL;
+ FContacto := NIL;
+ inherited;
+end;
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uEditorContactos.ddp b/Modulos/Contactos/Cliente/uEditorContactos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorContactos.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorContactos.dfm b/Modulos/Contactos/Cliente/uEditorContactos.dfm
new file mode 100644
index 0000000..60b5f3f
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorContactos.dfm
@@ -0,0 +1,75 @@
+inherited fEditorContactos: TfEditorContactos
+ Left = 180
+ Top = 250
+ Caption = 'Lista de contactos'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de contactos'
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem14: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem33: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 394
+ inherited tbxEditFiltro: TTBXEditItem
+ EditOptions = [tboUseEditWhenVertical]
+ end
+ inherited TBXItem37: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 885
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 885
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ OnExecute = actNuevoExecute
+ 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 Duplicar1: TMenuItem
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorContactos.pas b/Modulos/Contactos/Cliente/uEditorContactos.pas
new file mode 100644
index 0000000..4647063
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorContactos.pas
@@ -0,0 +1,137 @@
+unit uEditorContactos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uViewContactos, uBizContacto, ActnList, DBActns, uViewGrid,
+ Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
+ TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
+ JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
+ uViewBarraSeleccion, JvComponentBase;
+
+type
+ IEditorContactos = interface(IEditorGrid)
+ ['{21DD6B74-F218-4AFC-91EE-1ECD4ADF1553}']
+ function GetContactos: IBizContacto;
+ procedure SetContactos(const Value: IBizContacto);
+ property Contactos: IBizContacto read GetContactos write SetContactos;
+
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+ TfEditorContactos = class(TfEditorGrid, IEditorContactos)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ private
+ FContactos: IBizContacto;
+ protected
+ function GetContactos: IBizContacto; virtual;
+ procedure SetContactos(const Value: IBizContacto); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ function GetSelectionBarVisible: Boolean; virtual;
+ procedure SetSelectionBarVisible(const Value: Boolean); virtual;
+ public
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ property Contactos: IBizContacto read GetContactos write SetContactos;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uCustomEditor, uDataModuleContactos,
+ uEditorContacto, uPluginControllerContactos, uEditorDBBase,
+ cxGrid, cxGridCustomTableView, uDBSelectionList;
+
+{$R *.dfm}
+
+{
+****************************** TfEditorContactos *******************************
+}
+procedure TfEditorContactos.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Contactos) then
+ raise Exception.Create('No hay ningún contacto asignado');
+
+ Contactos.DataTable.Active := True;
+end;
+
+function TfEditorContactos.GetContactos: IBizContacto;
+begin
+ Result := FContactos;
+end;
+
+procedure TfEditorContactos.SetContactos(const Value: IBizContacto);
+begin
+ FContactos := Value;
+ dsDataTable.DataTable := FContactos.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewContactos).Contactos := Contactos;
+end;
+
+procedure TfEditorContactos.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Contactos.Insert;
+ Contactos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorContactos.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Contactos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorContactos.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Contactos) then
+ (ViewGrid as IViewContactos).Contactos := Contactos;
+end;
+
+destructor TfEditorContactos.Destroy;
+begin
+ FContactos := NIL;
+ inherited;
+end;
+
+function TfEditorContactos.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorContactos.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorContactos.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uEditorInstalador.dfm b/Modulos/Contactos/Cliente/uEditorInstalador.dfm
new file mode 100644
index 0000000..cfbad36
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorInstalador.dfm
@@ -0,0 +1,43 @@
+inherited fEditorInstalador: TfEditorInstalador
+ Caption = 'Ficha de instalador'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855
+ 651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA086706460E47
+ 6AA60B06C3B7966FC3AD482457D01441A13F842141232128288656B4ECC58992
+ F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9811FCF73CE
+ F39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55E619058887
+ D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114EBA376C3136
+ EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB4771E5664A
+ 17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C88A829C8CB2
+ 74E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E6C23191B16
+ C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61EDA6BDD980C1
+ BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DEEF6911DDB0
+ 38D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188D0D1348DDE
+ 98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB301F1F0AF44
+ 2F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78EADAEE1A07B
+ 926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C299E7AB7B1B1
+ D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C053D3A78E29
+ 9E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D37CA277205
+ 7FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE8F3201739F
+ 2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182F8127FB364
+ DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467E2092FDAC4
+ 49E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB96D17AF41B
+ D71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B9134421A9A20EFC
+ E488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0761C389209
+ 187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E40518650BC1A35
+ 8B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA873FAE5C4B
+ 5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F695980E50B673F
+ F45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D02C6B38D3B
+ E05FAF5B45FEC8107D9F0000000049454E44AE426082}
+ end
+ end
+ inherited dsDataTable: TDADataSource
+ OnDataChange = dsDataTableDataChange
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorInstalador.pas b/Modulos/Contactos/Cliente/uEditorInstalador.pas
new file mode 100644
index 0000000..bd54d5d
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorInstalador.pas
@@ -0,0 +1,81 @@
+unit uEditorInstalador;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContacto, JvAppStorage, JvAppRegistryStorage,
+ JvComponent, JvFormPlacement, DB, uDADataTable, ImgList, PngImageList,
+ StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar,
+ JvExControls, JvNavigationPane, ExtCtrls, pngimage;
+
+type
+ IEditorInstalador = interface(IEditorContacto)
+ ['{0959F4A7-ADD2-4437-B91B-3CB483C77A5E}']
+ end;
+
+ TfEditorInstalador = class(TfEditorContacto, IEditorInstalador)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorInstalador: TfEditorInstalador;
+
+implementation
+
+uses
+ uEditorUtils, uBizContacto, uViewInstalador;
+
+{$R *.dfm}
+
+function ShowEditorInstalador (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorInstalador;
+begin
+ AEditor := TfEditorInstalador.Create(Application);
+ try
+ AEditor.Contacto := (ABizObject as IBizInstalador);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorInstalador }
+
+constructor TfEditorInstalador.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewContacto := CreateView(TfrViewInstalador) as IViewInstalador;
+end;
+
+procedure TfEditorInstalador.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este instalador?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorInstalador.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(Contacto) and (not (Contacto.DataTable.Fetching) or
+ not (Contacto.DataTable.Opening) or not (Contacto.DataTable.Closing)) then
+ begin
+ if Length(Contacto.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo instalador'
+ else
+ JvNavPanelHeader.Caption := Contacto.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizInstalador, ShowEditorInstalador, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorInstaladores.ddp b/Modulos/Contactos/Cliente/uEditorInstaladores.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorInstaladores.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorInstaladores.dfm b/Modulos/Contactos/Cliente/uEditorInstaladores.dfm
new file mode 100644
index 0000000..617b187
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorInstaladores.dfm
@@ -0,0 +1,1394 @@
+inherited fEditorInstaladores: TfEditorInstaladores
+ Left = 280
+ Top = 256
+ Caption = 'Lista de instaladores'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de instaladores'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000034C4944415478DADD957D6855
+ 651CC73FF76DF765BA983ACBC0596BB685CB940DA36CA50B75883303238723B7
+ 4C170C86A62DDF865B9148ADC02982427F0863040D05C1A0185AD1B217274AD2
+ 1F8349EA9DB9EBBCDEBB73CFDD793F3DF7EA46977B6CFDE1FEE9811FCF73CEF3
+ 9CEFE7FB3C3F7ECF71D9B6CD5436D7FF0370EAEC9529A1BC5E55E69A00888789
+ 0943BDC350FFE744C357310D9B59256B78A2BC2E4BC0342D1176BAD72D3136AC
+ F4D8B04C566DD8C9E5DEE3CE80F02FAD684303C4E28A880449D343716503A54B
+ 6AFF9378AA5FBDB1C51970ADAF05257C0DD3CA419264128924922C2325A32CDB
+ 7484B9A5CB27C45BBA74C7A379AF3A49CD5BBBB20172E40283DF77908C8D89E4
+ 78C5521B9FC785A66B444622E43D594EE58623FFEA3C1D96CDBAFADDD98091C1
+ 1E6E9CEFC2D23C84822182393E5C082145454E2619888479EDFD5FD3229A6EB2
+ BFC739B94D5512EBDFD9EB0C88FDDE4380103EAF4FB833D0755D8486AAAA0CC4
+ 2C56367E8561A41CA7DC9AF7DDDF736EA57626DCEB625CDBD89A0D88877F267A
+ A91BF7580CB75B78171F1AF72192AC303AF3652AAA9B27154F1D5B5DD37EE724
+ DFE83B8A7ABD4F1CBF496AEE1E40231CF752B462170585CF4E2A9E7AB7A9B9DD
+ 19702EDC4FE2BB0E1E53147C22C9BAA13324EB8CE49751B1A489C7E7CC9E543C
+ 35B779DB47D980DE4BB7D877E2327FC66EB1B6EC4BD63F5ACCCDD1289F4915FC
+ F513AC5C309796CDCF313377565A6877C769C7246FABAF62EB8E8F33010B9F29
+ A4FD8B8BF45E8820FB0214E40EB3B1A684EB37E37C7D3E81AD06F1246EF3CAA2
+ 6934D69531EF913919CE7523F3D89A3E389809D0BCB97C78F847E20937EAF419
+ 681E8382600CC50C30AA4C27646878E32344B561D6BE5844DBD6E5B41F3EE3B8
+ 83776B2B69DEF3492660F02E1CE8FC813CBF1F35948FE69F260A491175E02547
+ 5C857E45C22B451956A23C5D9C4777DB1B18E385F50FE7E385B67DDFA7998031
+ 3B48EBA16F514515BB03F918FE5C6C9F0FC4628FA6E2D512C8F25D64B74ACDD2
+ 52F6BCBD9483C7BE71DCC196375FCA0654BF50C2C53F86E83CD9CF6F57AEA6AF
+ 01DB72A5AF0B976D099045207F067B1B16B0B8B0F881CEC75B16E0D5E7E73FF0
+ 5E49BF33C77B6B527147C0B2F2A71E9AB823A0ED40E743FFA34D00A6B24D39E0
+ 6FAF6B45FE0D6316680000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ end
+ end
+ inherited frViewBarraSeleccion: TfrViewBarraSeleccion
+ inherited pnlSeleccion: TPanel
+ inherited bSeleccionar: TButton
+ Left = 548
+ Top = -1
+ end
+ inherited bCancelar: TButton
+ Left = 627
+ Top = -1
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001FE4944415478DA
+ A593DD4B145118C69F5574D5458A40DD44FCCA9B42D88B8494104A1242C4AF0B
+ 4DF1CA3FA08822C110F7C6BA124151BB8990F422304183564165053FD05D575C
+ 4334694D8D1A97C65DDB666677CE7C78668C1D16F3A276E0F09EC3CCFB7B9EF3
+ CEFB9A5455453C8F697C76332E820EA8AF28D60F9C7F0DA1832D7D9F9E7B0396
+ CC9BD10F15EA54921410498648641A2554363E31005AF2D14A1FF85F0447FE63
+ 302106775B06905D741B92ACE0E9B018A39C9F308B37231367809AF2027C5DB0
+ 23B0E7832CD3B7AA8C60F0043FC301343DF79CA9D225114557D6CEEFA7960C40
+ 755906761C8F00DE044B6A2A122980E37878F677D1D0EED293BBDEE16207D565
+ 567C737622391CA1EAA077142108027E485750D2DC1FA3ACD541033A9C2E03A0
+ D58071BF05B7EBD0FC831082102F42C9AF4351E98373C984167166D1130B18DB
+ 6710986B43B198421D44B0282AB0DAECA8B25D3F97ACADF9D50D0390919783D6
+ A14F601358D4DE8B4015C3F8E8B420B8EEC6C1E8333DB9A36732A606B76C9906
+ E0C31782B1E94384AC57713999859A988413E112D2FCDFC1B3CBD87EFD38AA4C
+ FEF482CBBB6500BAE759F8DC8710B27211369B697B9990F29B83F998A1202F36
+ 5F3D44F7E0D4C50E1A7A97E92FF4FDBD57D30AE17E795F579515558F0A8DDEED
+ CF06E04EC9350C8FCFFDF31C4401F6177DFF3F4CF18EF329BD276228E7D4407E
+ 0000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000034D4944415478DA
+ DD957D6855651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA08
+ 6706460E476AA60B06C3B7966FC3AD482457D01441A13F842141232128288656
+ B4ECC58992F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9
+ 811FCF73CEF39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55
+ E619058887D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114E
+ BA376C3136EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB
+ 4771E5664A17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C8
+ 8A829C8CB274E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E
+ 6C23191B16C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61ED
+ A6BDD980C1BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DE
+ EF6911DDB038D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188
+ D0D1348DDE98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB3
+ 01F1F0AF442F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78E
+ ADAEE1A07B926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C29
+ 9E7AB7B1B1D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C0
+ 53D3A78E299E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D
+ 37CA2772057FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE
+ 8F3201739F2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182
+ F8127FB364DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467
+ E2092FDAC449E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB
+ 96D17AF41BD71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B91344
+ 21A9A20EFCE488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0
+ 761C389209187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E4051
+ 8650BC1A358B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA
+ 873FAE5C4B5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F6959
+ 80E50B673FF45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D
+ 02C6B38D3BE05FAF5B45FEC8107D9F0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorInstaladores.pas b/Modulos/Contactos/Cliente/uEditorInstaladores.pas
new file mode 100644
index 0000000..0de2019
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorInstaladores.pas
@@ -0,0 +1,75 @@
+unit uEditorInstaladores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContactos, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvNavigationPane,
+ ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, pngimage,
+ JvComponentBase;
+
+type
+ IEditorInstaladores = interface(IEditorContactos)
+ ['{D9A44463-036A-4AEF-88DC-2D61DEB4C837}']
+ end;
+
+ TfEditorInstaladores = class(TfEditorContactos, IEditorInstaladores)
+ procedure actEliminarExecute(Sender: TObject);
+ private
+ protected
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorInstaladores: TfEditorInstaladores;
+
+implementation
+
+uses
+ uEditorUtils, uBizContacto, uViewInstaladores, uViewContactos;
+
+{$R *.dfm}
+
+function ShowEditorInstaladores (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorInstaladores;
+begin
+ AEditor := TfEditorInstaladores.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizInstalador);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+
+{ TfEditorInstaladores }
+
+constructor TfEditorInstaladores.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewInstaladores) as IViewContactos;
+end;
+
+procedure TfEditorInstaladores.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este instalador?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+
+end;
+
+initialization
+ RegisterEditor(IBizInstalador, ShowEditorInstaladores, etItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uEditorProveedor.dfm b/Modulos/Contactos/Cliente/uEditorProveedor.dfm
new file mode 100644
index 0000000..a1ac2ce
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorProveedor.dfm
@@ -0,0 +1,44 @@
+inherited fEditorProveedor: TfEditorProveedor
+ Caption = 'Ficha de proveedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Proveedor'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855
+ 651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE56833057E2
+ 0B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD958E063502
+ 69D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8C08FE739E7
+ 39E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF924601E262
+ 74429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156AAD74C31D6
+ CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5705358B68E
+ E2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2BC464999812
+ 66F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9EBE72694C8
+ 90288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816AFAEDD9509
+ E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495ED6D291155
+ 33D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A264225994C
+ D2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE589F0988062F
+ 11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC4EDBAA9ABD
+ CE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B1957DCBEB7A6
+ 76FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1BA2AB2A74E
+ 1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0D716267859
+ D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE7A281DB0A4
+ 6032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC227E87799E4
+ CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4004A9C298A
+ 785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23FB3F3EE9B8
+ 824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999887D86E473
+ 21FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77CFB1744051
+ F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407E3E21819A2
+ E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA75F70B5BD1D
+ 53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED232004BE73E31E6
+ B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A98C836E180
+ FF01702244FEF5B056BE0000000049454E44AE426082}
+ end
+ end
+ inherited dsDataTable: TDADataSource
+ OnDataChange = dsDataTableDataChange
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorProveedor.pas b/Modulos/Contactos/Cliente/uEditorProveedor.pas
new file mode 100644
index 0000000..6043ff0
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorProveedor.pas
@@ -0,0 +1,79 @@
+unit uEditorProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX,
+ TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uEditorItem, uViewProveedor, uBizContacto, DB,
+ uDADataTable, JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable,
+ uCustomView, uViewBase, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, ExtCtrls, pngimage;
+
+type
+ IEditorProveedor = interface(IEditorContacto)
+ ['{D95C4DF8-819C-43EC-8589-CA53DCE78ADD}']
+ end;
+
+ TfEditorProveedor = class(TfEditorContacto, IEditorProveedor)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+implementation
+
+uses
+ uDataModuleContactos, uEditorUtils, uDataModuleBase;
+
+{$R *.dfm}
+
+function ShowEditorProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorProveedor;
+begin
+ AEditor := TfEditorProveedor.Create(Application);
+ try
+ AEditor.Contacto := (ABizObject as IBizProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+procedure TfEditorProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+constructor TfEditorProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewContacto := CreateView(TfrViewProveedor) as IViewProveedor;
+end;
+
+procedure TfEditorProveedor.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(Contacto) and (not (Contacto.DataTable.Fetching) or
+ not (Contacto.DataTable.Opening) or not (Contacto.DataTable.Closing)) then
+ begin
+ if Length(Contacto.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo proveedor'
+ else
+ JvNavPanelHeader.Caption := Contacto.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizProveedor, ShowEditorProveedor, etItem);
+
+finalization
+
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorProveedores.ddp b/Modulos/Contactos/Cliente/uEditorProveedores.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorProveedores.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorProveedores.dfm b/Modulos/Contactos/Cliente/uEditorProveedores.dfm
new file mode 100644
index 0000000..5544404
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorProveedores.dfm
@@ -0,0 +1,1392 @@
+inherited fEditorProveedores: TfEditorProveedores
+ Left = 406
+ Top = 352
+ Caption = 'Lista de proveedores'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de proveedores'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855
+ 651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE56833057E2
+ 0B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD958E063502
+ 69D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8C08FE739E7
+ 39E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF924601E262
+ 74429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156AAD74C31D6
+ CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5705358B68E
+ E2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2BC464999812
+ 66F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9EBE72694C8
+ 90288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816AFAEDD9509
+ E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495ED6D291155
+ 33D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A264225994C
+ D2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE589F0988062F
+ 11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC4EDBAA9ABD
+ CE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B1957DCBEB7A6
+ 76FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1BA2AB2A74E
+ 1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0D716267859
+ D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE7A281DB0A4
+ 6032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC227E87799E4
+ CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4004A9C298A
+ 785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23FB3F3EE9B8
+ 824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999887D86E473
+ 21FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77CFB1744051
+ F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407E3E21819A2
+ E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA75F70B5BD1D
+ 53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED232004BE73E31E6
+ B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A98C836E180
+ FF01702244FEF5B056BE0000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ end
+ end
+ inherited frViewBarraSeleccion: TfrViewBarraSeleccion
+ inherited pnlSeleccion: TPanel
+ inherited bSeleccionar: TButton
+ Left = 548
+ end
+ inherited bCancelar: TButton
+ Left = 627
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001FA4944415478DA
+ A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA
+ F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151
+ 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE
+ DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107
+ 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9
+ 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22
+ 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809
+ AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337
+ D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9
+ B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86
+ E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495
+ D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE
+ 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A
+ 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7
+ C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF
+ 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000
+ 49454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000034D4944415478DA
+ DD957D6855651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE
+ 56833057E20B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD
+ 958E06350269D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8
+ C08FE739E739E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF
+ 924601E26274429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156
+ AAD74C31D6CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5
+ 705358B68EE2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2B
+ C46499981266F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9
+ EBE72694C890288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816
+ AFAEDD9509E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495
+ ED6D29115533D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A
+ 264225994CD2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE58
+ 9F0988062F11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC
+ 4EDBAA9ABDCE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B19
+ 57DCBEB7A676FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1
+ BA2AB2A74E1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0
+ D716267859D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE
+ 7A281DB0A46032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC2
+ 27E87799E4CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4
+ 004A9C298A785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23
+ FB3F3EE9B8824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999
+ 887D86E47321FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77
+ CFB1744051F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407
+ E3E21819A2E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA7
+ 5F70B5BD1D53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED23200
+ 4BE73E31E6B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A
+ 98C836E180FF01702244FEF5B056BE0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorProveedores.pas b/Modulos/Contactos/Cliente/uEditorProveedores.pas
new file mode 100644
index 0000000..bacd26c
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorProveedores.pas
@@ -0,0 +1,100 @@
+unit uEditorProveedores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContactos, Menus, ImgList, PngImageList, StdActns,
+ ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar,
+ JvExControls, JvComponent, JvNavigationPane, DB, uDADataTable,
+ JvFormAutoSize, ComCtrls, uDAScriptingProvider, uDACDSDataTable,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement, ExtCtrls,
+ uCustomView, uViewBase, uViewBarraSeleccion, pngimage, JvComponentBase;
+
+type
+ IEditorProveedores = interface(IEditorContactos)
+ ['{1A37D5B6-E090-4E71-94AA-1ABF34EA98DF}']
+ end;
+
+ TfEditorProveedores = class(TfEditorContactos, IEditorProveedores)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+implementation
+
+uses
+ uViewProveedores, uViewContactos, uDataModuleContactos, uDataModuleBase,
+ uEditorGrid, uEditorUtils, uBizContacto;
+
+{$R *.dfm}
+
+function ShowEditorProveedores (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorProveedores;
+begin
+ AEditor := TfEditorProveedores.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorProveedores (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorProveedores;
+begin
+ AEditor := TfEditorProveedores.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizProveedor);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+
+{
+***************************** TfEditorProveedores ******************************
+}
+procedure TfEditorProveedores.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+
+end;
+
+constructor TfEditorProveedores.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewProveedores) as IViewContactos;
+end;
+
+procedure TfEditorProveedores.actDuplicarExecute(Sender: TObject);
+var
+ AContacto : IBizContacto;
+begin
+ inherited;
+ AContacto := dmContactos.GetCliente(Contactos.CODIGO);
+ Contactos.Insert;
+ Contactos.CopyFrom(AContacto);
+ Contactos.DataTable.ApplyUpdates;
+ ViewGrid.RefreshGrid;
+ ViewGrid.GotoFirst;
+end;
+
+initialization
+ RegisterEditor(IBizProveedor, ShowEditorProveedores, etItems);
+ RegisterEditor(IBizProveedor, ShowSelectEditorProveedores, etSelectItems);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorVendedor.dfm b/Modulos/Contactos/Cliente/uEditorVendedor.dfm
new file mode 100644
index 0000000..8bc98c7
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorVendedor.dfm
@@ -0,0 +1,49 @@
+inherited fEditorVendedor: TfEditorVendedor
+ Caption = 'Ficha de vendedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Vendedor'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000003E54944415478DADD955D6C14
+ 5514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A64896501142
+ B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F29840A4429
+ 25D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D661FED0BB399
+ 9C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E29106C00DB
+ 180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DAD6F82FBBDF
+ A8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170BCB5F4761C5
+ DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C7E1CA4F702
+ 2231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1F31969A5A9
+ 0B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E19A96838107
+ 0F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C5575FB9D80
+ D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFFE05CC74D84
+ 6B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140E7478DD086
+ EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB81144108D68
+ ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC5C00558E43
+ 61FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765B473628037
+ EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A5989E2CBB3
+ DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015A50BF16973
+ 0DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2318A8AD7B2
+ 76E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A796D3C8F5C6
+ E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC4C5BE4DDD5
+ E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED22494CE89F0FE
+ 32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2042C5F9A87
+ 1B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25F05B830F2B
+ D6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B63B035EC105
+ 9A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD43471D13562DA8
+ D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DDC2A659D535
+ C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F0610289C8F
+ 6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F16C0CCD973
+ 0D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7464BEAA39C
+ 5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638CC76689DFB
+ 23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730314BFE0CBC
+ 83B80000000049454E44AE426082}
+ end
+ end
+ inherited dsDataTable: TDADataSource
+ OnDataChange = dsDataTableDataChange
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorVendedor.pas b/Modulos/Contactos/Cliente/uEditorVendedor.pas
new file mode 100644
index 0000000..f3c35e0
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorVendedor.pas
@@ -0,0 +1,81 @@
+unit uEditorVendedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContacto, JvAppStorage, JvAppRegistryStorage,
+ JvComponent, JvFormPlacement, DB, uDADataTable, ImgList, PngImageList,
+ StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar,
+ JvExControls, JvNavigationPane, ExtCtrls, pngimage;
+
+type
+ IEditorVendedor = interface(IEditorContacto)
+ ['{119A41EE-541C-4522-B786-5D64767E9018}']
+ end;
+
+ TfEditorVendedor = class(TfEditorContacto, IEditorVendedor)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorVendedor: TfEditorVendedor;
+
+implementation
+
+uses
+ uEditorUtils, uBizContacto, uViewVendedor;
+
+{$R *.dfm}
+
+function ShowEditorVendedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorVendedor;
+begin
+ AEditor := TfEditorVendedor.Create(Application);
+ try
+ AEditor.Contacto := (ABizObject as IBizVendedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorVendedor }
+
+constructor TfEditorVendedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewContacto := CreateView(TfrViewVendedor) as IViewVendedor;
+end;
+
+procedure TfEditorVendedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este vendedor?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorVendedor.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(Contacto) and (not (Contacto.DataTable.Fetching) or
+ not (Contacto.DataTable.Opening) or not (Contacto.DataTable.Closing)) then
+ begin
+ if Length(Contacto.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo vendedor'
+ else
+ JvNavPanelHeader.Caption := Contacto.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizVendedor, ShowEditorVendedor, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Cliente/uEditorVendedores.ddp b/Modulos/Contactos/Cliente/uEditorVendedores.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uEditorVendedores.ddp differ
diff --git a/Modulos/Contactos/Cliente/uEditorVendedores.dfm b/Modulos/Contactos/Cliente/uEditorVendedores.dfm
new file mode 100644
index 0000000..e17f75d
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorVendedores.dfm
@@ -0,0 +1,1499 @@
+inherited fEditorVendedores: TfEditorVendedores
+ Left = 263
+ Top = 269
+ Width = 825
+ Caption = 'Lista de vendedores'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 817
+ Caption = 'Lista de vendedores'
+ inherited Image1: TImage
+ Left = 790
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000003E54944415478DADD955D6C14
+ 5514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A64896501142
+ B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F29840A4429
+ 25D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D661FED0BB399
+ 9C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E29106C00DB
+ 180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DAD6F82FBBDF
+ A8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170BCB5F4761C5
+ DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C7E1CA4F702
+ 2231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1F31969A5A9
+ 0B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E19A96838107
+ 0F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C5575FB9D80
+ D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFFE05CC74D84
+ 6B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140E7478DD086
+ EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB81144108D68
+ ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC5C00558E43
+ 61FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765B473628037
+ EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A5989E2CBB3
+ DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015A50BF16973
+ 0DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2318A8AD7B2
+ 76E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A796D3C8F5C6
+ E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC4C5BE4DDD5
+ E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED22494CE89F0FE
+ 32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2042C5F9A87
+ 1B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25F05B830F2B
+ D6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B63B035EC105
+ 9A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD43471D13562DA8
+ D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DDC2A659D535
+ C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F0610289C8F
+ 6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F16C0CCD973
+ 0D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7464BEAA39C
+ 5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638CC76689DFB
+ 23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730314BFE0CBC
+ 83B80000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 817
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem14: TTBXSeparatorItem
+ Visible = True
+ end
+ object TBXItem36: TTBXItem [8]
+ Action = actComisiones
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ object TBXSubmenuItem2: TTBXSubmenuItem
+ Caption = '&Herramientas'
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 548
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 817
+ end
+ inherited frViewBarraSeleccion: TfrViewBarraSeleccion
+ Width = 817
+ inherited pnlSeleccion: TPanel
+ Width = 817
+ inherited bSeleccionar: TButton
+ Left = 658
+ end
+ inherited bCancelar: TButton
+ Left = 737
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 23
+ end
+ object actComisiones: TAction
+ Category = 'Herramientas'
+ Caption = 'Calcular comisiones...'
+ ImageIndex = 22
+ OnExecute = actComisionesExecute
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000002514944415478DA
+ 8D925F4853511CC7BFF7DE4DBD6E33B799A3425C8533D2F025C55C98FDC1021F
+ 667F1C542CA2724421A307090A155F828242F065680F3129E80F4C16120E1B89
+ 4E9A302CED41211FCC10DB5AD3AE77F7DE6DEC740B1C14BBD5F7E51C0EE77CCE
+ E7777E872284603389B59877FEE540EBD2B8173CCF8363F5A83CDA8A9A66078C
+ 5B4D147284DA0424A5C4CCACE7EE5226E4B3C51302221B1B880922A2BC80BA73
+ 4E1C3CDBF5C96834942B023E8CFBC8F2C35BA0A424E2A284358A40555284E86A
+ 04D1EF225C6E3FCC55F5942260D4DD4D62AF1F2349D360B66861AAD8014B4529
+ E25FBF61D83B8916672FEA6CD79501C3F73A487A7D16155566187485D0B03412
+ 1C0F354D10783383ED0DED38D4D6A10C18EA729092BCCFB0365643E2450872FD
+ 49B91C150DF8FDD3309FE844B3FD9A32E0FEE5260261112DB67A68D405101312
+ 18F9765EE0F0E4E9046ACF74E394F3E65F009D0EB2107C85E6A67DA8D96B402A
+ 994232934228BC8CA9E0025A7AFA613F7D551930351A70CDF50CF6E93522D803
+ 71307A09D145592A540C2AC362F7C08DA163B58D17140123CE077DC6F08A4B48
+ 73100FAFA2687F0AC2880EEC9EB7508AB56789CA027C95974871613E18890669
+ 1050544DC0AD076075DE06B6ED8218EC4778EC1D06035FE0BE733C3BCF025E58
+ 2E126D811A1A4A05A2CD80C907185D0463651C3ECE4DE634683F62B267019E9D
+ E74929AB01AB62904733A041217DD2F7FF063ECFF0C472E8FDBC14E7AE40EE40
+ 465E36EA5760299BFEB5F19F06B912EC2D27B90C7E1E941FF0F96F5D5000B4C9
+ C3B33F0D1E8D8BD9FFF003405736B02FCE0FFF0000000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000023A4944415478DA
+ A593DB4B54511487BF39733C3A9A9930A99486541086169598264184522F3D84
+ 34200541FF400FD24B17886E6405911111111614158414955866669A1682E565
+ 2A310BAF9490CC4C303367CED9E7B4CF0C34F9E043B95FD67ED8EB5BBFF55B7B
+ B96CDB6621C7D5D436B820421CB07B7B31C1994986EF9E67EAFD6B66748BBCF2
+ 6ACA7D07513D5E8430318585B06C4CD38982C58BD2A8F6D5250015856E461E5C
+ 461DEA623C1060C634980E8428F31DA072DF4999A050FF449B53B95069A3F1F6
+ A304C03BD9CC647323564C472CC964457101A1C02CC35F83D41CB9436A762186
+ 252B4B15A62930E5BDB5B32F09D0061A098D77B366DD4ABCD919A4692E8C6898
+ 573DA394D49C25ABA0848B2D9EF915443A2EE00EFBD9B9AB8C48304A241CC632
+ 755E747DA3747F03D9F94508D9BB21EC78741474BCFB90048C3E3CCAD4A7767C
+ 7B2A599695251FC5181E9BE0D99B097C87EFB1347FAD4C962D1889644B9AD9D9
+ DBFF570BD3FD0CDCBCCF6AAF4E6EA5C1AF90CE582B0473F2D871A29E742D33E1
+ 813301D38E4FA1BB6F2809C878DA85DA3E82AD06A0761AD70F0DED713ED1F454
+ A60E6D60D3C62A4E5F6999E3C1E6F5394940FAB11BA4842268AA0B75AB8EE767
+ 1A51BF228D140CE5EA6CB9762A2E3D3E05A705E945EFC0C72440ADBB8AC71064
+ A6A8286E05372E624260183018FA4E45CB25CE5D7F3EBF82E8DB1E66FD5F2010
+ 469146D96E09502096E2C62A5A4ED5DEDA7875E7273AD1D99F3EFFE724605BE9
+ 2A6E35BDFCE73DF803387EA6E1FF9769A1EBFC1BC1A15528DD8924DF00000000
+ 49454E44AE426082}
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000003E54944415478DA
+ DD955D6C145514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A6
+ 4896501142B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F
+ 29840A442925D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D66
+ 1FED0BB3999C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E
+ 29106C00DB180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DA
+ D6F82FBBDFA8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170B
+ CB5F4761C5DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C
+ 7E1CA4F7022231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1
+ F31969A5A90B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E1
+ 9A968381070F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C
+ 5575FB9D80D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFF
+ E05CC74D846B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140
+ E7478DD086EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB8
+ 1144108D68ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC
+ 5C00558E4361FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765
+ B473628037EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A
+ 5989E2CBB3DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015
+ A50BF169730DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2
+ 318A8AD7B276E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A7
+ 96D3C8F5C6E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC
+ 4C5BE4DDD5E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED224
+ 94CE89F0FE32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2
+ 042C5F9A871B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25
+ F05B830F2BD6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B6
+ 3B035EC1059A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD4347
+ 1D13562DA8D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DD
+ C2A659D535C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F
+ 0610289C8F6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F
+ 16C0CCD9730D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7
+ 464BEAA39C5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638
+ CC76689DFB23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730
+ 314BFE0CBC83B80000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000040C4944415478DA
+ B5957F6C136518C7BF776D474BC7D87061A011815981753211E6D86AA5B86548
+ 6AC409129C4AB6C13637C5312331D1EC17E8D044A3C1A066C384986804FF984A
+ C6C284C5316B9C9190A1123061D1D4C8A4CEBA75EDF5DADEBDBEEFF576F3E0A6
+ 4EC39B5C9EF7C7F5F93CCFF77D9E2B4708C1F51C1C0374F57D775D2865F7E672
+ 1A802E944DB66649C98A55E7B24CD78024510B0239419473599620C9CC12CD2A
+ EFD2E7A1AA173074B2430F60CE84B1515C38D6819FFABB100E8711B2656059F1
+ 83C82B7D1C66EB5CD589EA9048DA9C304B1DB020D87CCB4E03404C8CE0DC7BAF
+ 401EFC14C188802B13131815A2088405DC555E83BB1F69024C56257296D1FE4F
+ 2C86D2D47AC6B0ADA6490FD8E471E2FCC031F80F3D0F4E8C211815F1074760CE
+ 4C4360E40A02E35134BCD30BFB42A71A359391CAC164236A4612418224652AAF
+ 6DD6031E589783939DAD183DF53E623C0FD3DC5464396EC26D8EF908FEF63B3E
+ EEFA02DE9A362C2A2CA7B7C02B0E5F3D6E35CC60873B88C7EA5AF480FB29A0FB
+ B50624C6CEC1E15C8C797366C36EE311098561E109FA3E3F8B1B8BAAE1703F0A
+ 99E39568272F95699F9093DA4F66B2FDA9563DC0EB5E81237B2B9099F2335CF7
+ E4420C472150FD63542E330FF4F67E8DC5F7ED418E7B1B9584532B8B5D2A93E5
+ AFCE65055CF1F45E3D60A36B390ED697D032BA04EFA6B5B05BAC8846449868F4
+ 6121840F8E0C207F4B33567B77508938254A69527B96851AF924B8AA619F1EB0
+ A16819DE6EAAC2455F0F4A3DB7232F671EE2B13862721C8367FCF8D27711DE96
+ 37915FB0999633BB03597964B53C596F10552E6AB0B3F12A4069A10343A77DF8
+ B6A51319F6286C8541983244042E110883E9E0641BB23B1AB16481538BB8ED40
+ B7E125EFAE2C46CD332FEA01C505B762A0F12DDC70E617088910A2EB4790B626
+ 0EA17B0EECDF6781F0669C77A5206F5725D2AC193ABDB52E26C93DE6B3F6D976
+ 3D60FD9A6C9CCE7F12E9B367C124F2204502D272A9DA275211B94CB34002E1F1
+ 187EA877604359A5D2682F1DEC31CC60D7760FEAF6ECD7033CABB3712ABF0EA9
+ 560BEC9C192455866916609E30438C4B082712D8F8BADFD0E1375987B4BB206A
+ 45D53FF7B21EE05EB514C7EFACC67C9B1D36B30929BC89B613AD16DACDA29480
+ 65730F16969461A9EB0D0CFB762B8E2F0F9F05867F4467DFAF38DCB4EE5A72C9
+ 8929802B6F09BEEAFE0CFEC12188C110402B88C940EB14B289C302773AB203EF
+ 2ACEAE1ECDED4F4C0BD600852B17A9B52D4F75A8046DAD94243D5FE9AF3494A9
+ 625FFF357B87FBA3531914386F563FC1C94A4836D1148C7E4031FEE1DA19C944
+ A15B35406BFB817FFC875A953982EA15438632D168A797E8DF0C5FDB2D0FBB5C
+ CB8F1A9EF92E1842E9B8632600F2B7F250BD8D7E37A30CA8393A4DA45B29E0A3
+ FF05F8AFE34FB2402F1C4138F79E0000000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uEditorVendedores.pas b/Modulos/Contactos/Cliente/uEditorVendedores.pas
new file mode 100644
index 0000000..1f883ce
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uEditorVendedores.pas
@@ -0,0 +1,88 @@
+unit uEditorVendedores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorContactos, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvNavigationPane,
+ ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, pngimage,
+ JvComponentBase;
+
+type
+ IEditorVendedores = interface(IEditorContactos)
+ ['{01A97825-6628-41D3-969F-1B296EE2ECE1}']
+ end;
+
+ TfEditorVendedores = class(TfEditorContactos, IEditorVendedores)
+ actComisiones: TAction;
+ TBXSubmenuItem2: TTBXSubmenuItem;
+ TBXItem36: TTBXItem;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actComisionesExecute(Sender: TObject);
+ private
+ protected
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorVendedores: TfEditorVendedores;
+
+implementation
+
+uses
+ uEditorUtils, uBizContacto, uViewVendedores, uViewContactos;
+
+{$R *.dfm}
+
+function ShowEditorVendedores (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorVendedores;
+begin
+ AEditor := TfEditorVendedores.Create(Application);
+ try
+ AEditor.Contactos := (ABizObject as IBizInstalador);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+
+{ TfEditorVendedores }
+
+constructor TfEditorVendedores.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewVendedores) as IViewContactos;
+end;
+
+procedure TfEditorVendedores.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este vendedor?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+
+end;
+
+procedure TfEditorVendedores.actComisionesExecute(Sender: TObject);
+var
+ aObj : IBizVendedor;
+begin
+ inherited;
+ if Supports(Contactos, IBizVendedor, aObj) then
+ aObj.CalcularComisiones;
+end;
+
+initialization
+ RegisterEditor(IBizVendedor, ShowEditorVendedores, etItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uPluginControllerContactos.dfm b/Modulos/Contactos/Cliente/uPluginControllerContactos.dfm
new file mode 100644
index 0000000..05f88bb
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uPluginControllerContactos.dfm
@@ -0,0 +1,838 @@
+object ModuleContactos: TModuleContactos
+ OldCreateOrder = True
+ Description = 'Ventas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Contactos'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 780
+ Top = 302
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000033B4944415478DA
+ DD957F68565518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D66424
+ 96A32874A1329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821C
+ BA0D57292846A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE
+ 1F0F3CDC7378CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA
+ 79CA18400EC61C86162270F93043033D986692E9454B99337F459A80695AA37E
+ FB6B58D6BDF1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C474
+ 31B7BC9EE205B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C9516
+ 27AA06A9ACFB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F
+ 1C401D1A91C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BC
+ D9D09C0E08F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F
+ 768E8A08C364D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F64821032104
+ 42D7D125E47AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF205
+ 198961321419BB5C681806868444E30922D32B295DBC7E42717B5CB761977391
+ FBBB5AD16E76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DD
+ CE806B7D17E8ED68656622814716591882802AB893534259453D3373674F286E
+ FBDED9F2593AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF3
+ 0ED5854B787FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F65
+ 5FE711DA035DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7
+ E06D0AB2E7A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468C
+ BC58169A5710F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F
+ 95B3A9797F2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC
+ 872BECE3EF500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7
+ 340F56A620E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD
+ 63060DCB5F4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A5
+ 2964E678D95CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF
+ 173E327147C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A3000000
+ 0049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000034D4944415478DA
+ DD957D6855651CC73FE7BE7177CDB9B18A126639175BE8F08F59BE35D199B6DE
+ 56833057E20B668AA361A953D3A1A6CEA9C3A0242AFA27184134080A05250DCD
+ 958E06350269D272EE6ED96DBBDEBB7BCFD9BDE7B5E75CB7E1E59E39FF70FFF8
+ C08FE739E739E7FBF93EBFDF799E235996C54436E9FE007C7BEE8F09A15495CF
+ 924601E26274429707E8BD7C9C707F17866EF160D14B3C5EBA2A43C0304C1156
+ AAD74C31D6CDD458370D9E5BB98DDF7FF8DC1910FCB11EF56627916842441CC5
+ 705358B68EE2A7ABEF4ADCEE5F78B3CE19D07DA68EC4CD6E0CD3472C26138F2B
+ C46499981266F19A13E4172F1915AF6BD61C53F35E85C2CBAB776602E4DE5FF9
+ EBE72694C890288E473C6AE1754BA89A4AA83F44F6F452CA569EB8A3F3549816
+ AFAEDD9509E8EF68A1A7A319537513C80A90E5F322218412496445A13314E495
+ ED6D29115533D8DBE25CDC9AF218AFBDB5DB1910E96AC14F00AFC72BDCE9689A
+ 264225994CD2193159BEF11B74DD766CBB3586DDDF726EDA2B13EE3531AEDE58
+ 9F0988062F11FEED2B5C43115C2EE15DBCA80F43627282C1BC45CCA9A81D57DC
+ 4EDBAA9ABDCE45EE69FD84E4F556917E037BEE16402518F550B06C270F4D2B19
+ 57DCBEB7A676FF185FD1852B749CFA80470A13784591355DA357D608F72E64D1
+ BA2AB2A74E1F57DC9E5BBFE54026A0E7FC4F5C6A384ADFB5106A6125B3AB6FD0
+ D716267859D423D44641F97C166C7F075FCE6329A15D4DDF391679CBDA72DEDE
+ 7A281DB0A46032178F1CA1EFC2797C8ACE40CEC394AC7883484F3703674F8BC2
+ 27E87799E4CD5BC8539B5633E9D15969CE353D3D6D353B1AD3014F46BB38D7D4
+ 004A9C298A785085786E1E3E3541408EA1FB250644FCF7CF2045CF2F675E7D23
+ FB3F3EE9B8824DD565D4BE7F341D907FA595331F1EC69F9B2D003A01D522A999
+ 887D86E47321FB5D44B2DC84FFFE979C19C5547EF935FAC8C6BACDF9C8467B77
+ CFB1744051F84FBE3F78402422C914B7878010F78883CE1200D52B21FBDC4407
+ E3E21819A2E4C50A66D71DA2F1B3D38E2BD8F0FA3399808AF945F475B4F3CBA7
+ 5F70B5BD1D53E455B24CEC73DC4C85458EFF01E6EED94CEECC67C7743ED23200
+ 4BE73E31E6B992BA678CF4E6B8E28E80C5A533EE99B823605FC347F7FC8F360A
+ 98C836E180FF01702244FEF5B056BE0000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000034D4944415478DA
+ DD957D6855651CC73FF7E56CF7DEE962EA340397D96C0B97291B8AD95227EA08
+ 6706460E476AA60B06C3B7966FC3AD482457D01441A13F842141232128288656
+ B4ECC58992F8C760E2CB9DB9DBBABBD773CFDD793F3DF7EA86977B74FDE1FEE9
+ 811FCF73CEF39CEFE7FB3C3F7ECFF1388EC37836CFFF0370E6EC9571A1BC5E55
+ E619058887D10953FB87FE9E4F8986AF61990E534A5633B3BC2E4BC0B26C114E
+ BA376C3136EDF4D8B42D56ADDFCDE5AE93EE80F06FCDE8FDBDC4E2AA880449CB
+ 4771E5664A17D4FE27F154FFEA862677C08DEE26D4F00D2C3B075956482492C8
+ 8A829C8CB274E33166942E1B156FEA305C8F666775929AB7F6640394C805FA7E
+ 6C23191B16C9F18BA50E92CF836EE8440623E43F534EE5FA638F749E0EDB61ED
+ A6BDD980C1BE4E6E9DEFC0D67D8482218239121E8490AAA12493F446C2BCF6DE
+ EF6911DDB038D8E99EDC862A9975EFEC7707C4FEEC244008C92F097726866188
+ D0D1348DDE98CDCAFA2F31CD94E3945BEBBEFB7BCEEDD4CE847B438C6BEB9BB3
+ 01F1F0AF442F9DC63B1CC3EB15DEC587E67D88ACA8DC9DFC0A15D58D638AA78E
+ ADAEE1A07B926F751F47BBD92D8EDF2235770FA0138EFB99B5620F85452F8C29
+ 9E7AB7B1B1D51D702EDC43E287369E5455249164C334E8570C060BCAA858D0C0
+ 53D3A78E299E9ADBB2FDC36C40D7A53B1C387599EBB13BAC29FB8275D38AB97D
+ 37CA2772057FFD022BE7CCA069CB8B4CCE9B9216DADBF6B56B92B76FAA62DBAE
+ 8F3201739F2FA2F5F38B745D88A048010AF306D85053C2CDDB71BE3D9FC0D182
+ F8127FB364DE04EAEBCA78FA89E919CE0D33F3D81ADE3F9C09D0FD797C70F467
+ E2092FDAC449E83E93C2608C612B80AC4E2464EAF8E2830CE903AC7969162DDB
+ 96D17AF41BD71DBC5B5B49E3BE8F33017D4370A8FD27F27373D14205E8B91344
+ 21A9A20EFCE488AB30479591E428036A94E78AF339DDF206E648613DE07CA4D0
+ 761C389209187682347FF63D9AA8626FA00033370F4792402CF6EA1A929E4051
+ 8650BC1A358B4BD9F7F6620E9FF8CE75075BDF7C391B50BDA8848B57FB69FFAA
+ 873FAE5C4B5F038EED495F171EC716209B40C124F66F9EC3FCA2E2873A1F6959
+ 80E50B673FF45E49BFB3467A7B4C7157C0D2F2671F9BB82BA0E550FB63FFA38D
+ 02C6B38D3BE05FAF5B45FEC8107D9F0000000049454E44AE426082}
+ Name = 'PngImage3'
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C
+ C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA
+ B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B
+ 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753
+ 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22
+ 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204
+ 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE
+ 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573
+ 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B
+ 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1
+ 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130
+ F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5
+ F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB
+ 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92
+ 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E
+ D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A
+ AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104
+ EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF
+ E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0
+ 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F
+ F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27
+ 2521AB920B52530000000049454E44AE426082}
+ Name = 'PngImage4'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000003E54944415478DA
+ DD955D6C145514C7FF33B36D77D952281050902FCB8A74AB8D402DEDBA76B1A6
+ 4896501142B028A105DAB47C941A890A292D1FF2D1E00B06358527134D782A1F
+ 29840A442925D604B5A8444C7830354AA8752DDBD9D9D99DB9D77B6767A69D66
+ 1FED0BB3999C7B6736E777CEFF9C7347A094623C2FE1F100745CFF795C286B5E
+ 29106C00DB180FF99E27450C6BAE09617B40D7990505D1A8F19E101D3AE196DA
+ D6F82FBBDFA8D987BEABED4E0077A60C0DE2D78BEDF8FD9B0EC8B28CA827170B
+ CB5F4761C5DB70B927994E4C8754B7D7945BE68007C1D7EBB6A60124D418EE7C
+ 7E1CA4F7022231050F878731A8C431202B78B1AA162FBDD90C486E23729ED1D1
+ F31969A5A90B0D61436DB3135019F2E36EF745F49FD90B414D201257F1AF40E1
+ 9A968381070F31F0288EC6CFBAE07DD26F46CD65647270D9A899914EA1D1944C
+ 5575FB9D80D565F9B87ABA1583D7BE404214214DCAC60CDF2C3CE39B8EC8DFFF
+ E05CC74D846B0F604E4915AB8268383C71C99D36832DC108DEAA6F7102563140
+ E7478DD086EEC0E79F87291327C0EB11118BCAC81029AE7FFD0366966E832FB8
+ 1144108D68ADA272ED3592D2DECA64D38E5627201C5C84B30737635AE61F08BC
+ 5C00558E4361FA27985C2E11E8EAFA0EF35EDB83FCE00626896076162F2A9765
+ B473628037EF3AE804AC0C3C8B530DAFB236BA8F70E5327833DC88C754482C7A
+ 5989E2CBB3DD285AB71F4BC25B98448211A56E69CFB33023B7C0358D879C8015
+ A50BF169730DEEF55C4645E83914E64F413291448224D17BBB1FB77AEE21DCF2
+ 318A8AD7B276E63520C64DCCF6E4B3414DB998C1D6A631808A121FFA6EF4E0A7
+ 96D3C8F5C6E1298940CA5531709F42E99D0C817890D7DE84F94FF8ED880F9CEC
+ 4C5BE4DDD5E5A87DE7B013505EBC00DD4D9F60EAED3FA16851C4973F40CED224
+ 94CE89F0FE32035474E16E2013853BAB91E3CE75E86D4F314D3DE33EEBDE3DE2
+ 042C5F9A871B45DB317942162455042D559053C0D4BE928DD85F2C0B68901F25
+ F05B830F2BD6541B83F6E1A9CB6933D8B92984FA3D479D80D0923C5C2BAA47B6
+ 3B035EC1059A4D206501AE6117D4A40E59D3580308F8FEA9382ACFB419DD4347
+ 1D13562DA8D9510DEF1D7302822F3C8D4B8BB761BAC70B8F4B42A628B17162DD
+ C2A659D535C4182496D0F0E3A22CAC3FD1C29C11B4B577A5CDA061631976BC3F
+ 0610289C8F6F3BBF427F6F1FD44814601DC465607D0A2231505626A45953915F
+ 16C0CCD9730D9DC9E813D43A81CD5AECFAE0B81350F2FC1CB3B7C9C884EAB0F7
+ 464BEAA39C5A00E33D6CCB01FCD7B8B7CD0928F6CF368FE05427A48668044638
+ CC76689DFB23DF0D0B0A3393DDFBC6005A8F9CFCDFBF6836603CAF7107FC0730
+ 314BFE0CBC83B80000000049454E44AE426082}
+ Name = 'PngImage5'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F8000000097048597300000B3A00000B3A01647F570D000002874944415478DA
+ B5944D68134114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD
+ 154F06CA565452A1A224E736F4165088F45222480881DE6C901EA4274F122FC9
+ 0A3DE450684C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFB
+ E63F3344555538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB
+ 15DE760C0804246349F18101A53438A83CE6790EC6C62E82D339C4268B451962
+ B1644B5053C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC6
+ 29FF6908317E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DA
+ BCDF3F6102944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736
+ B21ADC58E5E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C
+ 033C7BFE441DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC
+ 66EB856834A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F
+ 345914439B3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11
+ F2E7EEC395D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE
+ 7E8196DACF8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83
+ 000C141704C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E
+ 35027471F4A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A
+ 811548DB9B6C14770922A43312843E8B5D43483BF14A4E82047D05A44A779590
+ 4EC47543AD7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047
+ FE0EF6BE7247E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91
+ E31430673279EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F
+ 00FADE10E28785B5A40000000049454E44AE426082}
+ Name = 'PngImage6'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actClientes: TAction
+ Category = 'Ventas'
+ Caption = 'Clientes'
+ ImageIndex = 1
+ OnExecute = actClientesExecute
+ end
+ object actProveedores: TAction
+ Category = 'Compras'
+ Caption = 'Proveedores'
+ ImageIndex = 2
+ OnExecute = actProveedoresExecute
+ end
+ object actInstaladores: TAction
+ Category = 'Montajes'
+ Caption = 'Instaladores'
+ ImageIndex = 3
+ OnExecute = actInstaladoresExecute
+ end
+ object actVendedores: TAction
+ Category = 'Ventas'
+ Caption = 'Vendedores'
+ ImageIndex = 5
+ OnExecute = actVendedoresExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Compras1: TMenuItem
+ Tag = 200
+ Caption = '&Compras'
+ GroupIndex = 1
+ ImageIndex = 4
+ OnClick = actProveedoresExecute
+ object Proveedores1: TMenuItem
+ Tag = 100
+ Action = actProveedores
+ end
+ object N2: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ object Obras1: TMenuItem
+ Tag = 300
+ Caption = '&Montajes'
+ GroupIndex = 1
+ ImageIndex = 6
+ object Instaladores1: TMenuItem
+ Tag = 100
+ Action = actInstaladores
+ end
+ object N3: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ object Ventas1: TMenuItem
+ Tag = 400
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 0
+ object Resumen1: TMenuItem
+ Tag = 100
+ Action = actClientes
+ end
+ object N1: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ object Vendedores1: TMenuItem
+ Tag = 102
+ Action = actVendedores
+ end
+ object N4: TMenuItem
+ Tag = 103
+ Caption = '-'
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001EC4944415478DA
+ A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B
+ A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842
+ 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B
+ 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB
+ 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F
+ 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C
+ 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C
+ 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9
+ 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358
+ 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8
+ BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21
+ 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991
+ 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA
+ 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06
+ 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF
+ C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082}
+ Name = 'PngImage5'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001FA4944415478DA
+ A5934B6813511486BF342610A2C50A86A220150BA2145C58D120828ABA2AD2BA
+ F0B510C48D1B1154A828A55D5877825474AB45375D58A80B9385292DA8A8B151
+ 6B6D8DB50F43C1B4C624364C1E73E7E19DA96408B50BCDC0E5CC65E6FFFE7FCE
+ DCE3324D936A2E577FE46355041BD076B0C9DE280B23E412E3F6FD9A4DDBF107
+ 76965F3464524D33109A8E2A7459350E1FBFEC002CF1FCEB1EF28B82F98534C9
+ 5C9203A7EFB2A1712F9A6E70A557AD706EA88970FFD1C012E0E8BECDCC3EEF22
+ 33338DAECBA7A64E36FB8B5431C389EBB12557B93461D8CED6FE71F8A5036809
+ AE271EBA0879177E9F0FB704284A9ED8B7498EB5476D71671F2B276809D63337
+ D481B75892EEC86F5429140A7CD7D6D17CEA4E85B3D5070B181A8A3A00AB07C9
+ B70F512643567E8410E4F22A46432B8D7B4E2E130BD9C4672F629580A9D02B86
+ E76EB0CDF0CA0425A205D8B5F11C5B8F1C5A26B6D6F09B0F0E2058AB11B97495
+ D44F95FAB34D881A831F0F26989A9EA0FDEB275B7CEDD6938A1EECDE117000FE
+ 701FF1A703D4153D28AB6B71E3C2A72C92F6A8C413292E8CBD2F3B8B3F67213A
+ 3AEE000AB7BB49CC8E11D03CAC92BFDB251D4A5E93B45B90984973FEDD08DDF7
+ C22B27889D69239355FE7A54EBD6FA690D0FDAAEBA61DAD59075F4F31707B0BF
+ 790BBDFD83FF3C076540D7CD9EFF1FA66AC7F93783B161288AF0DFC000000000
+ 49454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001FE4944415478DA
+ A593DD4B145118C69F5574D5458A40DD44FCCA9B42D88B8494104A1242C4AF0B
+ 4DF1CA3FA08822C110F7C6BA124151BB8990F422304183564165053FD05D575C
+ 4334694D8D1A97C65DDB666677CE7C78668C1D16F3A276E0F09EC3CCFB7B9EF3
+ CEFB9A5455453C8F697C76332E820EA8AF28D60F9C7F0DA1832D7D9F9E7B0396
+ CC9BD10F15EA54921410498648641A2554363E31005AF2D14A1FF85F0447FE63
+ 302106775B06905D741B92ACE0E9B018A39C9F308B37231367809AF2027C5DB0
+ 23B0E7832CD3B7AA8C60F0043FC301343DF79CA9D225114557D6CEEFA7960C40
+ 755906761C8F00DE044B6A2A122980E37878F677D1D0EED293BBDEE16207D565
+ 567C737622391CA1EAA077142108027E485750D2DC1FA3ACD541033A9C2E03A0
+ D58071BF05B7EBD0FC831082102F42C9AF4351E98373C984167166D1130B18DB
+ 6710986B43B198421D44B0282AB0DAECA8B25D3F97ACADF9D50D0390919783D6
+ A14F601358D4DE8B4015C3F8E8B420B8EEC6C1E8333DB9A36732A606B76C9906
+ E0C31782B1E94384AC57713999859A988413E112D2FCDFC1B3CBD87EFD38AA4C
+ FEF482CBBB6500BAE759F8DC8710B27211369B697B9990F29B83F998A1202F36
+ 5F3D44F7E0D4C50E1A7A97E92FF4FDBD57D30AE17E795F579515558F0A8DDEED
+ CF06E04EC9350C8FCFFDF31C4401F6177DFF3F4CF18EF329BD276228E7D4407E
+ 0000000049454E44AE426082}
+ Name = 'PngImage2'
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325
+ 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF
+ FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77
+ C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC
+ 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A
+ 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334
+ FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B
+ 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764
+ C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80
+ D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400
+ A0BEE1E16734A0290000000049454E44AE426082}
+ Name = 'PngImage4'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000023A4944415478DA
+ A593DB4B54511487BF39733C3A9A9930A99486541086169598264184522F3D84
+ 34200541FF400FD24B17886E6405911111111614158414955866669A1682E565
+ 2A310BAF9490CC4C303367CED9E7B4CF0C34F9E043B95FD67ED8EB5BBFF55B7B
+ B96CDB6621C7D5D436B820421CB07B7B31C1994986EF9E67EAFD6B66748BBCF2
+ 6ACA7D07513D5E8430318585B06C4CD38982C58BD2A8F6D5250015856E461E5C
+ 461DEA623C1060C634980E8428F31DA072DF4999A050FF449B53B95069A3F1F6
+ A304C03BD9CC647323564C472CC964457101A1C02CC35F83D41CB9436A762186
+ 252B4B15A62930E5BDB5B32F09D0061A098D77B366DD4ABCD919A4692E8C6898
+ 573DA394D49C25ABA0848B2D9EF915443A2EE00EFBD9B9AB8C48304A241CC632
+ 755E747DA3747F03D9F94508D9BB21EC78741474BCFB90048C3E3CCAD4A7767C
+ 7B2A599695251FC5181E9BE0D99B097C87EFB1347FAD4C962D1889644B9AD9D9
+ DBFF570BD3FD0CDCBCCF6AAF4E6EA5C1AF90CE582B0473F2D871A29E742D33E1
+ 813301D38E4FA1BB6F2809C878DA85DA3E82AD06A0761AD70F0DED713ED1F454
+ A60E6D60D3C62A4E5F6999E3C1E6F5394940FAB11BA4842268AA0B75AB8EE767
+ 1A51BF228D140CE5EA6CB9762A2E3D3E05A705E945EFC0C72440ADBB8AC71064
+ A6A8286E05372E624260183018FA4E45CB25CE5D7F3EBF82E8DB1E66FD5F2010
+ 469146D96E09502096E2C62A5A4ED5DEDA7875E7273AD1D99F3EFFE724605BE9
+ 2A6E35BDFCE73DF803387EA6E1FF9769A1EBFC1BC1A15528DD8924DF00000000
+ 49454E44AE426082}
+ Name = 'PngImage5'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B1300000B1301009A9C18000001604944415478DA
+ A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C
+ 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8
+ E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6
+ 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025
+ CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060
+ D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE
+ A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E
+ CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD
+ 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE
+ 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE
+ 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99
+ 4F200000000049454E44AE426082}
+ Name = 'PngImage6'
+ Background = clWindow
+ end>
+ PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
+ Left = 308
+ Top = 16
+ Bitmap = {}
+ end
+ object ExtraImages: TPngImageList
+ Height = 28
+ Width = 28
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000002F94944415478DAED946B48936114
+ C7FFAFDA55CD5CD32E46609161D087082129E8B2794B50495B5EBE140C83A2CF
+ 5DD13E9804111195502441068D04D32C2DCD6181592D2F594CF2B291A6DB9C9A
+ 3AB3E9DE4BCFFB583ADBC539621FA2030FE7BCCF7B38BF739EFFF3BE8C2008F0
+ A531FF81FF06F0C1538DCFA833C0ACE418AF0AB09C008EE389E7A9A7316F1753
+ 4F72C8DEE16379738131992F3C06092C814D0AB05949C1499EC6A2E726391AF3
+ 53FCF462593434C9A0EFEDC3D9C2DB8E408D4A3E079CBCAF1B79B9B92EC13CE9
+ 9CA71371484C54A1B367250519BF1E8454A202C3F2A86F96A1B7DFE01A289A18
+ 3B837D1CEE41526427584B3F0282D7A15ABF195181AB29505C29296568D70661
+ 602083E64B034BA06E96A3DF64723FA13D6C7D481DB871330C5C268D4558EDE0
+ 1EC449EB0874033A0CB1D8145401FFE070B4E9B7233DBD122FEB8F206CF93D90
+ 2E50D3120FD3A0D939D0D951AEF55711D10418F82CACF12BA1B07869036A0677
+ 412E7D8EAED14C44853CA1B96D2639148A2A68DFF95198B8AA5A1330343CE439
+ 904E68311260CEAF097BC060290458E9849FBEEC40B4A49A4EA8698F46764E2D
+ B48DC20CB0A23901639611F740671746D4483BDA4735B459745814BC916A1881
+ 20FA8EB5D91C60A29569E2F07D626CFE5BCA5A05A426E928542C68316A21E938
+ E3F6735992B6172B264261669508636ED1BDD2B73258ADE3EE2714619C75F6FB
+ 12FDFD832711A3CCC754F8162C1EF83C9DA77B4CFD88DE40FDF9E216DC39B77F
+ 4E138F2CC7B12C34C21138DFDFA3AB681B56C91488DA79091D6F4ED35CB3BE89
+ 7A3F5D37F5C56A036E141C70682223BFD111F8EC55ABDBE3EAEB7C8FADC6425A
+ D49919BE5971B5E894D32644E0CD6B57668197AFDF852716116841E58961B739
+ CA8B6AFBC7F2F680D4B41F8C843E5020C3301EC1447B5D10292C5447D280A258
+ 6D2DF51AE8A98EF60D1020E32DF01029984DC2341729E54795BBD3FE6CC02BA0
+ 088B8D8D7EB800FD6803645D20C00FDE003DD2EFF734CE6CC1404FF4FB9BC079
+ F5B33F3E97405F9ACF813F01DF078FC2BAE18F2B0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 94000000097048597300004E2000004E2001167D99DE000002C04944415478DA
+ E5D54D6813411400E0B788D816B1A5150CA99404AA2CF5E02AFE2C82503DA5B7
+ 14BD054A2A6A130F5549CE6DDA9BD0424A2F69041B42A517B1417A909E3C497A
+ 3129F49043A131BD8422129BE6A7CDCF3A6F935932C96E9AB0928B0F1E43B233
+ FBCD4CDE4C384992A093C1FD1F20C7712D0FF0F9C22ED2882487490AD5AFA324
+ F748861D0E71516BAC6CB50356B1059E37C2D0D025309B7B99E72B2BDB4D6155
+ D0E389D6EE7188E4278F47F85805A564B20BE2F16F4A879919BB0C67320525B7
+ B662F8C85D8F6A82B3B33795CF73733B0C5A1BA4AF8D346B6EF7080366B34588
+ 447E36A00A485E2A555E2070F425881E1F17209D3E05BF7F2F449E8DAB6D334E
+ D0E9BCC660B95CA54D240E81809C2A88C0E4E41204026F10955CAE1119C35C5F
+ 4FC893A9C75EBC7C260D1AA76162C2D48061EEEE66C160C82BAB6C0031105D5E
+ 7EA560989B9BC906D0EB00E957F10694061EC185EEE730367685C18AC532A452
+ 2966825353F739062C14CA70725262B0FEFE2E0806E30C8898C803947A78D8F8
+ 9E81D4F9C77075F02D534C26D3A8BC722CA8FDFD3F303F1F80D5D5D71590AC6A
+ C3E5B2598DC68B0A8430627400452926887652186BC09D14E1DD17235C1EB6C0
+ 7BFF078E1E1F52CD0B086220268AA29BAC7091AED04666F714D1A3A353B9D3C1
+ 419AEC7F8F72DE286AE913642C168F423E1985303901C16D1E7E4462CC96631D
+ 204831FC1D996381D58928E96BA5832C168B2A6AE5ED4D310AE216534CF31CD6
+ 86DDEE95B4D0BEA4A08969454B575B3354EDA8E8026981F8A25EF8176853B0B6
+ 1AB140BC5FEDBA514DB01EA30512CDEB5BA92AA885D102D1F39B368067617A0B
+ 89015BC5F4A00AB8E4E4DAC2CE42F176C17F1D4D70FAC98034FAE03A9C2BEC80
+ A13BD712D60C2577738880E39A206EE9ED5BBCF490FF0DE6DEC3B66F905A3410
+ F8AC8AA916CD9D7B77A57221DD16568B92461363C04E46C7C1BF0E73BFE74CCD
+ 6AD20000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uPluginControllerContactos.pas b/Modulos/Contactos/Cliente/uPluginControllerContactos.pas
new file mode 100644
index 0000000..ffe53c0
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uPluginControllerContactos.pas
@@ -0,0 +1,159 @@
+unit uPluginControllerContactos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCContactos = interface(IInterface)
+ ['{E148CA5A-63A0-4BE8-B634-6E7A92A90F25}']
+ procedure ListaClientes;
+ procedure ListaProveedores;
+ end;
+
+ TModuleContactos = class(TModuleController, IMCContactos)
+ actClientes: TAction;
+ actProveedores: TAction;
+ Compras1: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ Proveedores1: TMenuItem;
+ Resumen1: TMenuItem;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ Obras1: TMenuItem;
+ Instaladores1: TMenuItem;
+ actInstaladores: TAction;
+ N1: TMenuItem;
+ N2: TMenuItem;
+ N3: TMenuItem;
+ actVendedores: TAction;
+ Vendedores1: TMenuItem;
+ N4: TMenuItem;
+ procedure actClientesExecute(Sender: TObject);
+ procedure actProveedoresExecute(Sender: TObject);
+ procedure actInstaladoresExecute(Sender: TObject);
+ procedure actVendedoresExecute(Sender: TObject);
+ public
+ procedure ListaClientes;
+ procedure ListaProveedores;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uEditorClientes,
+ uEditorProveedores, uDataModuleContactos,
+ uEditorUtils, uEditorContactos, uBizContacto, uEditorInstaladores,
+ uEditorVendedores;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleContactos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+procedure TModuleContactos.actClientesExecute(Sender: TObject);
+begin
+ ListaClientes;
+end;
+
+procedure TModuleContactos.actProveedoresExecute(Sender: TObject);
+begin
+ ListaProveedores;
+end;
+
+procedure TModuleContactos.ListaClientes;
+var
+ aObj: IEditorClientes;
+ AClientes : IBizCliente;
+begin
+ AClientes := dmContactos.GetClientes;
+ aObj := TfEditorClientes.Create(Application);
+ try
+ with aObj do
+ begin
+ Contactos := AClientes;
+ ShowEmbedded;
+ end;
+ finally
+ AClientes := NIL;
+ aObj := NIL;
+ end;
+end;
+
+procedure TModuleContactos.ListaProveedores;
+var
+ aObj: IEditorProveedores;
+ AProveedores : IBizProveedor;
+begin
+ AProveedores := dmContactos.GetProveedores;
+ aObj := TfEditorProveedores.Create(Application);
+ try
+ with aObj do
+ begin
+ Contactos := AProveedores;
+ ShowEmbedded;
+ end;
+ finally
+ AProveedores := NIL;
+ aObj := NIL;
+ end;
+end;
+
+procedure TModuleContactos.actInstaladoresExecute(Sender: TObject);
+var
+ aObj: IEditorInstaladores;
+ AInstaladores : IBizInstalador;
+begin
+ AInstaladores := dmContactos.GetInstaladores;
+ aObj := TfEditorInstaladores.Create(Application);
+ try
+ with aObj do
+ begin
+ Contactos := AInstaladores;
+ ShowEmbedded;
+ end;
+ finally
+ AInstaladores := NIL;
+ aObj := NIL;
+ end;
+end;
+
+procedure TModuleContactos.actVendedoresExecute(Sender: TObject);
+var
+ aObj: IEditorVendedores;
+ AVendedores : IBizVendedor;
+begin
+ AVendedores := dmContactos.GetVendedores;
+ aObj := TfEditorVendedores.Create(Application);
+ try
+ with aObj do
+ begin
+ Contactos := AVendedores;
+ ShowEmbedded;
+ end;
+ finally
+ AVendedores := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleContactos);
+
+finalization
+ UnRegisterModuleClass(TModuleContactos);
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewCliente.dfm b/Modulos/Contactos/Cliente/uViewCliente.dfm
new file mode 100644
index 0000000..4ab8049
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewCliente.dfm
@@ -0,0 +1,53 @@
+inherited frViewCliente: TfrViewCliente
+ inherited pnlGeneral: TPanel
+ inherited eNombre: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eNIFCIF: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewTelefonos: TfrViewTelefonos
+ inherited eTlfParticular: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfTrabajo: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfMovil: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eFax: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewInternet1: TfrViewInternet
+ inherited lblTrabajo: TLabel
+ Visible = True
+ end
+ inherited ePaginaWeb: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eMailTrabajo: TcxDBTextEdit
+ Visible = True
+ Width = 185
+ end
+ inherited eMailParticular: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewDireccion: TfrViewDireccion
+ inherited eCalle: TcxDBTextEdit
+ Width = 185
+ end
+ inherited ePoblacion: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eProvincia: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eCodigoPostal: TcxDBTextEdit
+ Width = 185
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewCliente.pas b/Modulos/Contactos/Cliente/uViewCliente.pas
new file mode 100644
index 0000000..23a9006
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewCliente.pas
@@ -0,0 +1,24 @@
+unit uViewCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContacto, DB, uDADataTable, DBCtrls, uViewCategorias,
+ uViewInternet, uViewTelefonos, StdCtrls, Mask, ExtCtrls, uCustomView,
+ uViewBase, uViewDireccion, JvComponent, JvFormAutoSize, cxControls,
+ cxContainer, cxEdit, cxTextEdit, cxDBEdit;
+
+type
+ IViewCliente = interface(IViewContacto)
+ ['{C06F4653-1745-4B7E-A3DC-102B2F23238E}']
+ end;
+
+ TfrViewCliente = class(TfrViewContacto, IViewCliente)
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewClientes.dfm b/Modulos/Contactos/Cliente/uViewClientes.dfm
new file mode 100644
index 0000000..94a6404
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewClientes.dfm
@@ -0,0 +1,54 @@
+inherited frViewClientes: TfrViewClientes
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 clientes'
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ inherited cxGridViewCODIGO: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.845245682870000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA
+ 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8
+ E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC
+ 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922
+ 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F
+ F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F
+ 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E
+ 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD
+ 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04
+ 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409
+ 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01
+ CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3
+ 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF
+ A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697
+ 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81
+ FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21
+ 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43
+ 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8
+ 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5
+ 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3
+ D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6
+ B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E
+ 53F70B90E997F07974AFDF0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewClientes.pas b/Modulos/Contactos/Cliente/uViewClientes.pas
new file mode 100644
index 0000000..e1f875e
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewClientes.pas
@@ -0,0 +1,29 @@
+unit uViewClientes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, uDADataTable,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, JvComponent,
+ JvFormAutoSize, cxImage, PngImageList, ImgList, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore,
+ dxPScxCommon, dxPScxGridLnk;
+
+type
+ IViewClientes = interface(IViewContactos)
+ ['{3E16CAB9-83E7-4083-A4B7-027E2616466F}']
+ end;
+
+ TfrViewClientes = class(TfrViewContactos, IViewClientes)
+ end;
+
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewContacto.dfm b/Modulos/Contactos/Cliente/uViewContacto.dfm
new file mode 100644
index 0000000..9a152fc
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewContacto.dfm
@@ -0,0 +1,175 @@
+inherited frViewContacto: TfrViewContacto
+ Width = 600
+ Height = 270
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 225
+ Constraints.MinWidth = 600
+ OnResize = FrameResize
+ object pnlGeneral: TPanel
+ Left = 0
+ Top = 0
+ Width = 300
+ Height = 84
+ BevelOuter = bvNone
+ Constraints.MinWidth = 300
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 0
+ DesignSize = (
+ 300
+ 84)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 45
+ Height = 13
+ Caption = 'General'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 64
+ Top = 8
+ Width = 226
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 42
+ Height = 13
+ Caption = 'NIF/CIF:'
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 41
+ Height = 13
+ Caption = 'Nombre:'
+ end
+ object eNombre: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'NOMBRE'
+ DataBinding.DataSource = DADataSource
+ Style.Color = 14745599
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 185
+ end
+ object eNIFCIF: TcxDBTextEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'NIFCIF'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 185
+ end
+ end
+ inline frViewTelefonos: TfrViewTelefonos
+ Left = 301
+ Top = 128
+ Width = 300
+ Height = 140
+ Constraints.MinHeight = 140
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ inherited eTlfParticular: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfTrabajo: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfMovil: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eFax: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inline frViewInternet1: TfrViewInternet
+ Left = 301
+ Top = 0
+ Width = 300
+ Height = 115
+ Constraints.MinHeight = 115
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ inherited lblTrabajo: TLabel
+ Visible = False
+ end
+ inherited lblMovil: TLabel
+ Visible = False
+ end
+ inherited ePaginaWeb: TcxDBTextEdit
+ Visible = False
+ Width = 185
+ end
+ inherited eMailTrabajo: TcxDBTextEdit
+ Visible = False
+ Width = 185
+ end
+ inherited eMailParticular: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inline frViewDireccion: TfrViewDireccion
+ Left = 0
+ Top = 128
+ Width = 300
+ Height = 140
+ Constraints.MinHeight = 140
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ inherited eCalle: TcxDBTextEdit
+ Width = 185
+ end
+ inherited ePoblacion: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eProvincia: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eCodigoPostal: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 200
+ Top = 16
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewContacto.pas b/Modulos/Contactos/Cliente/uViewContacto.pas
new file mode 100644
index 0000000..17747a9
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewContacto.pas
@@ -0,0 +1,102 @@
+unit uViewContacto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
+ DBCtrls, Grids, DBGrids, uBizContacto, Mask, ComCtrls, uCustomView,
+ uViewDireccion, uViewTelefonos, uViewInternet, uViewCategorias,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit;
+
+type
+ IViewContacto = interface(IViewBase)
+ ['{5FCFD172-5F8A-4639-B479-1CF0061526B5}']
+ function GetContacto: IBizContacto;
+ procedure SetContacto(const Value: IBizContacto);
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ end;
+
+ TfrViewContacto = class(TfrViewBase, IViewContacto)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ frViewInternet1: TfrViewInternet;
+ frViewTelefonos: TfrViewTelefonos;
+ frViewDireccion: TfrViewDireccion;
+ Label1: TLabel;
+ Label2: TLabel;
+ Label5: TLabel;
+ pnlGeneral: TPanel;
+ eNombre: TcxDBTextEdit;
+ eNIFCIF: TcxDBTextEdit;
+ procedure FrameResize(Sender: TObject);
+ private
+ FContacto: IBizContacto;
+ protected
+ function GetContacto: IBizContacto;
+ procedure SetContacto(const Value: IBizContacto);
+ public
+ constructor Create(AOwner : TComponent); override;
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ end;
+
+implementation
+
+uses uDataModuleContactos;
+
+{$R *.dfm}
+
+{ TfrViewContactos }
+
+{
+******************************* TfrViewContacto ********************************
+}
+constructor TfrViewContacto.Create(AOwner : TComponent);
+begin
+ inherited;
+end;
+
+procedure TfrViewContacto.FrameResize(Sender: TObject);
+var
+ CalcWidth: Integer;
+begin
+ { CalcWidth := Round(Width / (1.0 + WidthRatio));
+
+ DisableAlign;
+ try
+ pnlGeneral.Width := CalcWidth;
+ frViewDireccion.Width := CalcWidth;
+ frViewTelefonos.Left := pnlGeneral.Width + pnlGeneral.Left;
+ frViewTelefonos.Width := CalcWidth;
+ finally
+ EnableAlign;
+ end;}
+end;
+
+function TfrViewContacto.GetContacto: IBizContacto;
+begin
+ Result := FContacto;
+end;
+
+procedure TfrViewContacto.SetContacto(const Value: IBizContacto);
+begin
+ FContacto := Value;
+ if Assigned(FContacto) then
+ DADataSource.DataTable := FContacto.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDireccion.DADataSource.DataTable := DADataSource.DataTable;
+ frViewTelefonos.DADataSource.DataTable := DADataSource.DataTable;
+ frViewInternet1.DADataSource.DataTable := DADataSource.DataTable;
+end;
+
+initialization
+ RegisterClass(TfrViewContacto);
+
+finalization
+ UnRegisterClass(TfrViewContacto);
+
+end.
+
diff --git a/Modulos/Contactos/Cliente/uViewContactos.ddp b/Modulos/Contactos/Cliente/uViewContactos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Cliente/uViewContactos.ddp differ
diff --git a/Modulos/Contactos/Cliente/uViewContactos.dfm b/Modulos/Contactos/Cliente/uViewContactos.dfm
new file mode 100644
index 0000000..778bab4
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewContactos.dfm
@@ -0,0 +1,74 @@
+inherited frViewContactos: TfrViewContactos
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Options.Sorting = False
+ Width = 20
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGrid1ViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ SortIndex = 0
+ SortOrder = soAscending
+ Width = 195
+ end
+ object cxGrid1ViewCALLE: TcxGridDBColumn
+ DataBinding.FieldName = 'CALLE'
+ Width = 75
+ end
+ object cxGrid1ViewTELEFONO1: TcxGridDBColumn
+ DataBinding.FieldName = 'TELEFONO1'
+ BestFitMaxWidth = 64
+ Width = 75
+ end
+ object cxGrid1ViewMOVIL: TcxGridDBColumn
+ DataBinding.FieldName = 'MOVIL'
+ BestFitMaxWidth = 64
+ Width = 76
+ end
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <>
+ Left = 160
+ Top = 32
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewContactos.pas b/Modulos/Contactos/Cliente/uViewContactos.pas
new file mode 100644
index 0000000..5af9296
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewContactos.pas
@@ -0,0 +1,85 @@
+unit uViewContactos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, uBizContacto, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ uViewFiltroBase;
+
+type
+ IViewContactos = interface(IViewGrid)
+ ['{5FCFD172-5F8A-4639-B479-1CF0061526B5}']
+ function GetContactos: IBizContacto;
+ procedure SetContactos(const Value: IBizContacto);
+ property Contactos: IBizContacto read GetContactos write SetContactos;
+ end;
+
+ TfrViewContactos = class(TfrViewGrid, IViewContactos)
+ cxGrid1ViewCALLE: TcxGridDBColumn;
+ cxGrid1ViewMOVIL: TcxGridDBColumn;
+ cxGrid1ViewNOMBRE: TcxGridDBColumn;
+ cxGrid1ViewTELEFONO1: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ PngImageList: TPngImageList;
+ cxGridViewICONO: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ protected
+ FContactos: IBizContacto;
+ function GetContactos: IBizContacto; virtual;
+ procedure SetContactos(const Value: IBizContacto); virtual;
+ public
+ property DataSet: IBizContacto read GetContactos write SetContactos;
+ end;
+
+var
+ frViewContactos: TfrViewContactos;
+
+implementation
+
+uses uDataModuleContactos;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewContactos *******************************
+}
+function TfrViewContactos.GetContactos: IBizContacto;
+begin
+ Result := FContactos;
+end;
+
+procedure TfrViewContactos.SetContactos(const Value: IBizContacto);
+begin
+ FContactos := Value;
+ if Assigned(FContactos) then
+ DADataSource.DataTable := FContactos.DataTable;
+end;
+
+
+procedure TfrViewContactos.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.dfm b/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.dfm
new file mode 100644
index 0000000..9295641
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.dfm
@@ -0,0 +1,367 @@
+inherited frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto
+ Width = 377
+ Height = 214
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ DesignSize = (
+ 377
+ 214)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 52
+ Height = 13
+ Caption = 'Contacto'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 64
+ Top = 8
+ Width = 299
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 41
+ Height = 13
+ Caption = 'Nombre:'
+ end
+ object lblNIFCIF: TLabel
+ Left = 16
+ Top = 90
+ Width = 42
+ Height = 13
+ Caption = 'NIF/CIF:'
+ end
+ object lblCalle: TLabel
+ Left = 16
+ Top = 116
+ Width = 27
+ Height = 13
+ Caption = 'Calle:'
+ end
+ object lblPoblacion: TLabel
+ Left = 16
+ Top = 142
+ Width = 49
+ Height = 13
+ Caption = 'Poblaci'#243'n:'
+ end
+ object lblProvincia: TLabel
+ Left = 16
+ Top = 169
+ Width = 47
+ Height = 13
+ Caption = 'Provincia:'
+ end
+ object lblCodigoPostal: TLabel
+ Left = 246
+ Top = 169
+ Width = 17
+ Height = 13
+ Caption = 'CP:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 355
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 140
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 6
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirContacto
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 117
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 125
+ Top = 0
+ Action = actAnadirContacto
+ end
+ end
+ object edtlNombre: TcxDBTextEdit
+ Left = 81
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'NOMBRE'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 21
+ Width = 282
+ end
+ object edtPoblacion: TcxDBTextEdit
+ Left = 81
+ Top = 138
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'POBLACION'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Height = 21
+ Width = 282
+ end
+ object edtProvincia: TcxDBTextEdit
+ Left = 81
+ Top = 165
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'PROVINCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 4
+ Height = 21
+ Width = 138
+ end
+ object edtNIFCIF: TcxDBTextEdit
+ Left = 81
+ Top = 86
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'NIFCIF'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 282
+ end
+ object edtCalle: TcxDBTextEdit
+ Left = 81
+ Top = 112
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'CALLE'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Height = 21
+ Width = 282
+ end
+ object ToolBar2: TToolBar
+ Left = 186
+ Top = 192
+ Width = 189
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = True
+ ButtonWidth = 189
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 7
+ Transparent = True
+ Wrapable = False
+ object ToolButton4: TToolButton
+ Left = 0
+ Top = 0
+ Action = actVerContacto
+ AutoSize = True
+ end
+ end
+ object edtCodigoPostal: TcxDBTextEdit
+ Left = 272
+ Top = 165
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'CODIGOPOSTAL'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 5
+ Height = 21
+ Width = 91
+ end
+ object DADataSource: TDADataSource
+ Left = 80
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 120
+ object actElegirContacto: TAction
+ Caption = 'Elegir un contacto'
+ ImageIndex = 1
+ OnExecute = actElegirContactoExecute
+ end
+ object actAnadirContacto: TAction
+ Caption = 'Dar de alta un contacto'
+ ImageIndex = 0
+ OnExecute = actAnadirContactoExecute
+ end
+ object actVerContacto: TAction
+ Caption = 'Ver ficha completa del contacto...'
+ ImageIndex = 2
+ OnExecute = actVerContactoExecute
+ OnUpdate = actVerContactoUpdate
+ end
+ end
+ object PngImageList: 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
+ 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA
+ 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8
+ E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC
+ 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922
+ 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F
+ F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F
+ 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E
+ 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD
+ 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04
+ 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409
+ 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01
+ CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3
+ 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF
+ A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697
+ 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81
+ FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21
+ 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43
+ 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8
+ 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5
+ 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3
+ D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6
+ B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E
+ 53F70B90E997F07974AFDF0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001EC4944415478DA
+ A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B
+ A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842
+ 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B
+ 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB
+ 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F
+ 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C
+ 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C
+ 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9
+ 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358
+ 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8
+ BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21
+ 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991
+ 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA
+ 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06
+ 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF
+ C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 152
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.pas b/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.pas
new file mode 100644
index 0000000..bba5462
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewDatosYSeleccionContacto.pas
@@ -0,0 +1,183 @@
+unit uViewDatosYSeleccionContacto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel,
+ cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContacto,
+ ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit,
+ pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask,
+ DBCtrls;
+
+type
+ IViewDatosYSeleccionContacto = interface(IViewBase)
+ ['{FCBC26C6-5B00-4985-B8AD-E91C79BE469B}']
+ function GetContacto: IBizContacto;
+ procedure SetContacto(Value: IBizContacto);
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+
+ function GetOnContactoChanged : TNotifyEvent;
+ procedure SetOnContactoChanged (const Value : TNotifyEvent);
+ property OnContactoChanged : TNotifyEvent read GetOnContactoChanged
+ write SetOnContactoChanged;
+ end;
+
+ TfrViewDatosYSeleccionContacto = class(TfrViewBase, IViewDatosYSeleccionContacto)
+ DADataSource: TDADataSource;
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ActionList1: TActionList;
+ actElegirContacto: TAction;
+ ToolButton2: TToolButton;
+ actAnadirContacto: TAction;
+ actVerContacto: TAction;
+ PngImageList: TPngImageList;
+ edtlNombre: TcxDBTextEdit;
+ edtPoblacion: TcxDBTextEdit;
+ edtProvincia: TcxDBTextEdit;
+ edtNIFCIF: TcxDBTextEdit;
+ lblNombre: TLabel;
+ lblNIFCIF: TLabel;
+ edtCalle: TcxDBTextEdit;
+ lblCalle: TLabel;
+ lblPoblacion: TLabel;
+ lblProvincia: TLabel;
+ ToolButton3: TToolButton;
+ ToolBar2: TToolBar;
+ ToolButton4: TToolButton;
+ lblCodigoPostal: TLabel;
+ edtCodigoPostal: TcxDBTextEdit;
+ procedure actElegirContactoExecute(Sender: TObject);
+ procedure actAnadirContactoExecute(Sender: TObject);
+ procedure actVerContactoExecute(Sender: TObject);
+ procedure actVerContactoUpdate(Sender: TObject);
+ procedure cxLabel1Click(Sender: TObject);
+ private
+ FContacto : IBizContacto;
+ FOnContactoChanged : TNotifyEvent;
+ protected
+ function GetContacto: IBizContacto;
+ procedure SetContacto(Value: IBizContacto);
+ function GetOnContactoChanged : TNotifyEvent;
+ procedure SetOnContactoChanged (const Value : TNotifyEvent);
+ public
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ property OnContactoChanged : TNotifyEvent read GetOnContactoChanged
+ write SetOnContactoChanged;
+ end;
+
+var
+ frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uDataModuleContactos, Math;
+
+procedure TfrViewDatosYSeleccionContacto.actElegirContactoExecute(Sender: TObject);
+var
+ AContacto : IBizContacto;
+begin
+ inherited;
+{ case FContacto.Categorias.CODIGOCATEGORIA of
+ CLIENTE : AContacto := dmContactos.GetClientes;
+ PROVEEDOR : AContacto := dmContactos.GetProveedores;
+ INSTALADOR : AContacto := dmContactos.GetInstaladores;
+ end;}
+
+ if Supports(FContacto, IBizInstalador) then
+ AContacto := dmContactos.GetInstaladores;
+ if Supports(FContacto, IBizCliente) then
+ AContacto := dmContactos.GetClientes;
+ if Supports(FContacto, IBizProveedor) then
+ AContacto := dmContactos.GetProveedores;
+
+ try
+ if AContacto.ShowForSelect = mrOK then
+ begin
+ Contacto := dmContactos.GetItemsSeleccionados(AContacto);
+ end;
+ finally
+ AContacto := NIL;
+ end;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.actAnadirContactoExecute(
+ Sender: TObject);
+var
+ AContactos : IBizContacto;
+begin
+ inherited;
+{ case FContacto.Categorias.CODIGOCATEGORIA of
+ CLIENTE : AContactos := dmContactos.GetCliente(-1);
+ PROVEEDOR : AContactos := dmContactos.GetProveedor(-1);
+ end;}
+
+ if Supports(FContacto, IBizProveedor) then
+ AContactos := dmContactos.GetProveedor(-1);
+ if Supports(FContacto, IBizCliente) then
+ AContactos := dmContactos.GetCliente(-1);
+
+ try
+ AContactos.DataTable.Active := True;
+ AContactos.Insert;
+ AContactos.Show;
+ if AContactos.DataTable.RecordCount > 0 then
+ Contacto := AContactos;
+ finally
+ AContactos := NIL;
+ end;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.actVerContactoExecute(Sender: TObject);
+begin
+ inherited;
+ Contacto.Show;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.actVerContactoUpdate(Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Length(edtlNombre.Text) > 0;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.cxLabel1Click(Sender: TObject);
+begin
+ inherited;
+ actVerContacto.Execute;
+end;
+
+function TfrViewDatosYSeleccionContacto.GetContacto: IBizContacto;
+begin
+ Result := FContacto;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.SetContacto(Value: IBizContacto);
+begin
+ FContacto := Value;
+ DADataSource.DataTable := FContacto.DataTable;
+
+ if not FContacto.DataTable.Active then
+ FContacto.DataTable.Active := True;
+
+ if Assigned(FOnContactoChanged) then
+ FOnContactoChanged(Self);
+end;
+
+function TfrViewDatosYSeleccionContacto.GetOnContactoChanged: TNotifyEvent;
+begin
+ Result := FOnContactoChanged;
+end;
+
+procedure TfrViewDatosYSeleccionContacto.SetOnContactoChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnContactoChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewInstalador.dfm b/Modulos/Contactos/Cliente/uViewInstalador.dfm
new file mode 100644
index 0000000..39ac32d
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewInstalador.dfm
@@ -0,0 +1,49 @@
+inherited frViewInstalador: TfrViewInstalador
+ inherited pnlGeneral: TPanel
+ inherited eNombre: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eNIFCIF: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewTelefonos: TfrViewTelefonos
+ inherited eTlfParticular: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfTrabajo: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eTlfMovil: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eFax: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewInternet1: TfrViewInternet
+ inherited ePaginaWeb: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eMailTrabajo: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eMailParticular: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewDireccion: TfrViewDireccion
+ inherited eCalle: TcxDBTextEdit
+ Width = 185
+ end
+ inherited ePoblacion: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eProvincia: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eCodigoPostal: TcxDBTextEdit
+ Width = 185
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewInstalador.pas b/Modulos/Contactos/Cliente/uViewInstalador.pas
new file mode 100644
index 0000000..4c21ea8
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewInstalador.pas
@@ -0,0 +1,24 @@
+unit uViewInstalador;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContacto, DB, uDADataTable, uViewDireccion, uViewInternet,
+ uCustomView, uViewBase, uViewTelefonos, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ExtCtrls, StdCtrls;
+
+type
+ IViewInstalador = interface(IViewContacto)
+ ['{5916FB85-67B6-4EC2-A34B-0B57D477B652}']
+ end;
+
+ TfrViewInstalador = class(TfrViewContacto, IViewInstalador)
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
+
\ No newline at end of file
diff --git a/Modulos/Contactos/Cliente/uViewInstaladores.dfm b/Modulos/Contactos/Cliente/uViewInstaladores.dfm
new file mode 100644
index 0000000..a9a250f
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewInstaladores.dfm
@@ -0,0 +1,52 @@
+inherited frViewInstaladores: TfrViewInstaladores
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 instaladores'
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38677.491482303240000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AC400000AC401666D82D4000002B84944415478DA
+ 7DD25B4814511807F06FD61DC79DBDB8177577D9B23B4B2E3D84F6500F3D2542
+ D20DE902F910FA105D84209F0C45A82048082A562C4DA3A4B21E7C0B12332168
+ 438D7523D128D745DDCBAC7B9B9DD9B9CF342B289AAC7F989773BEEFC739F31D
+ 445114C807411058CBCCDBA64600E9762A4D56C4E2197FE06FF46EE7C08C0F36
+ 64BDEF7F60FAE5E56687C3F22C976335C954065692698827C8DC989F38DBF731
+ 38B22DF0A6A546E7AEDE17C2755839C70B90CDD21026D2200A3C8457D8D9D61E
+ FF11B5942A0CB41FAB7539AC9F8A3445C0B0022C1234386C2630EA00E61608E5
+ DEE0AFBA60981A29088C3FAE6F4E64F95E4144C06A31817BA7191059049E6381
+ 6618783838D5F4EAF3527F41C0E7AD6FD8E1B47FD0A2E8EA9A248A20A8C71738
+ 0E588E55DA9F4F340FFB228581A1CEA3CE6AF7EE105A5CBC2AC8B2ACDE5F5845
+ 489216CF748CD54653FC976DA730D973FA9DD9885F582DCA0352FE14027C9B5E
+ 9EBDFAE4C7717539BE2DD0D752E33AE4B14F1A30D421AB7BF96B24D314DFDAEB
+ BF35F53BD35D708CF9E8DA5ED88CA4CB8BEF92CF77C9FD8811D4374023D026D5
+ 294CE2800FA102D788D777A6373EA875C0D4D167290D5ABE32065755AECC0937
+ ABE6A1D16381813F08780336D027A250925ECE2AECF773E1F7F747B700FB2FF5
+ 3E15A5F21B94D50E399B034AAC18347810E89F33813699528108E02A82318B8B
+ 11DF83C3742C94D8041C3CE90D7158792563B3036D2A03CE640111D783866501
+ A349C05304E049F54BC5202E8F5E8C8F0D0D6D023C271ECD8BA8654FAE34DF6C
+ 05DE6804495B0C1AF527A25416302A05783A01BA4C1C086EFC7A7462B87B13E0
+ 3ED57E45614ABB6483DDCA636644D0E901B45A005E02AD40032690A0A5E33C9F
+ 9909ACCC0D379189D8CF2D53309BCD658273AF1BAD705582466F4064492329AC
+ 20F15C0E2882449716226A5930AD66ADE71FDF3497F05E932988000000004945
+ 4E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewInstaladores.pas b/Modulos/Contactos/Cliente/uViewInstaladores.pas
new file mode 100644
index 0000000..688df17
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewInstaladores.pas
@@ -0,0 +1,31 @@
+unit uViewInstaladores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, ImgList, PngImageList, cxIntlPrintSys3, dxPSCore,
+ dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid;
+
+type
+ IViewInstaladores = interface(IViewContactos)
+ ['{8D10450B-B82E-4CB4-A7B9-67C0D5535F98}']
+ end;
+
+ TfrViewInstaladores = class(TfrViewContactos, IViewInstaladores)
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewProveedor.dfm b/Modulos/Contactos/Cliente/uViewProveedor.dfm
new file mode 100644
index 0000000..b590a08
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewProveedor.dfm
@@ -0,0 +1,75 @@
+inherited frViewProveedor: TfrViewProveedor
+ inherited pnlGeneral: TPanel
+ inherited eNombre: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eNIFCIF: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewTelefonos: TfrViewTelefonos
+ inherited lblParticular: TLabel
+ Top = 58
+ end
+ inherited lblTrabajo: TLabel
+ Top = 34
+ end
+ inherited eTlfParticular: TcxDBTextEdit
+ Top = 54
+ DataBinding.DataField = 'TELEFONO2'
+ Width = 185
+ end
+ inherited eTlfTrabajo: TcxDBTextEdit
+ Top = 30
+ DataBinding.DataField = 'TELEFONO1'
+ Width = 185
+ end
+ inherited eTlfMovil: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eFax: TcxDBTextEdit
+ Width = 185
+ end
+ end
+ inherited frViewInternet1: TfrViewInternet
+ inherited lblParticular: TLabel
+ Top = 58
+ end
+ inherited lblTrabajo: TLabel
+ Top = 34
+ Visible = True
+ end
+ inherited lblMovil: TLabel
+ Visible = True
+ end
+ inherited ePaginaWeb: TcxDBTextEdit
+ Visible = True
+ Width = 185
+ end
+ inherited eMailTrabajo: TcxDBTextEdit
+ Top = 30
+ DataBinding.DataField = 'CORREO1'
+ Visible = True
+ Width = 185
+ end
+ inherited eMailParticular: TcxDBTextEdit
+ Top = 54
+ DataBinding.DataField = 'CORREO2'
+ Width = 185
+ end
+ end
+ inherited frViewDireccion: TfrViewDireccion
+ inherited eCalle: TcxDBTextEdit
+ Width = 185
+ end
+ inherited ePoblacion: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eProvincia: TcxDBTextEdit
+ Width = 185
+ end
+ inherited eCodigoPostal: TcxDBTextEdit
+ Width = 185
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewProveedor.pas b/Modulos/Contactos/Cliente/uViewProveedor.pas
new file mode 100644
index 0000000..83cc90e
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewProveedor.pas
@@ -0,0 +1,24 @@
+unit uViewProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContacto, DB, uDADataTable, DBCtrls, uViewCategorias,
+ uViewInternet, uViewTelefonos, StdCtrls, Mask, ExtCtrls, uCustomView,
+ uViewBase, uViewDireccion, JvComponent, JvFormAutoSize, cxControls,
+ cxContainer, cxEdit, cxTextEdit, cxDBEdit;
+
+type
+ IViewProveedor = interface(IViewContacto)
+ ['{6A199FA2-EBDB-41EF-99D7-EE4DD32BDAC3}']
+ end;
+
+ TfrViewProveedor = class(TfrViewContacto, IViewProveedor)
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewProveedores.dfm b/Modulos/Contactos/Cliente/uViewProveedores.dfm
new file mode 100644
index 0000000..f9c9bb6
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewProveedores.dfm
@@ -0,0 +1,64 @@
+inherited frViewProveedores: TfrViewProveedores
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 proveedores'
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ inherited cxGridViewCODIGO: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ inherited cxGrid1ViewTELEFONO1: TcxGridDBColumn
+ Caption = 'Tel'#233'fono'
+ end
+ object cxGrid1ViewFAX: TcxGridDBColumn [5]
+ DataBinding.FieldName = 'FAX'
+ Width = 75
+ end
+ inherited cxGrid1ViewMOVIL: TcxGridDBColumn
+ Width = 75
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38677.470834513890000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AC400000AC401666D82D4000002B14944415478DA
+ 7DD25B4893511C00F0FFF9BE7D6EDF74EA66CDA94BBAC1A89018DA4341BE8458
+ 085DB0F4A11E421FA24228D2A00743A8B77CAA502CED8A68621408094A599034
+ 49636A9945E5AD746EEEF6EDF25DF79DCE168A26F30FE7E59CFFFF772EFF8330
+ C6100F84102CC74467D51980D8157F80332F7A82CEB19FAE1B0D8F261CB02A56
+ EAFE07461F9FAEB6588CF7A25181F2F983B0E40B80C7CB45079CEEE36DBD53FD
+ 1B021D3545ACAD70C78C9ED56E16251942A108CCBB03A0C812CC2F0993B52DCE
+ 7D24359C1CA83F50926731F5D1140DBC20C39C3B0296AC7430B000DFA6DDF866
+ FB97D2A9F9707F52E0DDEDB26A6F486A95150426633AD8B66402521590440122
+ 3C0FB7DA47AA9EBEF9FD3029E0682A2BB7E664776B18263117531490C9F16551
+ 04411470FDFD8FD52F1D0BC981AE86FD3985B6AD334C4A4A42505595DC5F4E20
+ 1C17518E5D1F2871F9A5B71B7661B8E5E8B34C83BE2291140762F153C8F061F4
+ CFE4B93B9F8AC9B46743A0ADA628AF604FF6709A96B1A8642D7E0D5F202CD5B6
+ 3A2F8D7C0F36276D633CEA727666E5E6324D08679CB256E62303903F104130D4
+ E5C35696733805FE7CC7D7D9D1D51F6A05A8B3EE329AB66BDE9BB1BADBC82B10
+ 2AAF007BD94958E87E0E7C4F2704521970D354A857099D18189C7EBD0EB856BC
+ F7AE9145174D51198C82025AD081F9D06108BF7A019C06C0AF67C0A7D7804BC4
+ 738D23E3761CC6DE35C0D552FB4C260DF9F1DD33089026C6401B5341A6104452
+ 6808EA34E067C9D0D1F0C0335DE91EF476AD012E1FB1FF3268D0B60C52682043
+ 2FA9A051C92392B7E5190A425A1A38DD3FE8C9DCEC85A5A1C5E63540E5C182B3
+ 6606356631B4290DAB48A7A84093259500024D4104511050B1D4A38D8DFDE8FB
+ 5C85653CBEAE0BA4959BB479B42D359BCD0796260E505854644554A231AFCCF1
+ 2E7581A44D919AC072CD5FBDC78FF098611F9A0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewProveedores.pas b/Modulos/Contactos/Cliente/uViewProveedores.pas
new file mode 100644
index 0000000..b82f03c
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewProveedores.pas
@@ -0,0 +1,28 @@
+unit uViewProveedores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, uDADataTable,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, JvComponent,
+ JvFormAutoSize, ImgList, PngImageList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk;
+
+type
+ IViewProveedores = interface(IViewContactos)
+ ['{C3E0BA52-4887-49B7-8FAA-8A47C861FC70}']
+ end;
+
+ TfrViewProveedores = class(TfrViewContactos, IViewProveedores)
+ cxGrid1ViewFAX: TcxGridDBColumn;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Cliente/uViewVendedor.dfm b/Modulos/Contactos/Cliente/uViewVendedor.dfm
new file mode 100644
index 0000000..079a7d9
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewVendedor.dfm
@@ -0,0 +1,58 @@
+inherited frViewVendedor: TfrViewVendedor
+ object Label3: TLabel [0]
+ Left = 16
+ Top = 56
+ Width = 42
+ Height = 13
+ Caption = 'NIF/CIF:'
+ end
+ inherited pnlGeneral: TPanel
+ Height = 81
+ TabOrder = 2
+ DesignSize = (
+ 300
+ 81)
+ end
+ inherited frViewInternet1: TfrViewInternet
+ TabOrder = 1
+ end
+ inherited frViewDireccion: TfrViewDireccion
+ TabOrder = 0
+ end
+ object Panel1: TPanel [5]
+ Left = -1
+ Top = 78
+ Width = 300
+ Height = 27
+ BevelOuter = bvNone
+ TabOrder = 4
+ object Label4: TLabel
+ Left = 16
+ Top = 3
+ Width = 68
+ Height = 13
+ Caption = 'Comisi'#243'n (%):'
+ end
+ object eComision: TcxDBSpinEdit
+ Left = 100
+ Top = 0
+ DataBinding.DataField = 'COMISION'
+ DataBinding.DataSource = DADataSource
+ Properties.AssignedValues.MinValue = True
+ Properties.ImmediatePost = True
+ Properties.Increment = 0.100000000000000000
+ Properties.LargeIncrement = 1.000000000000000000
+ Properties.ValueType = vtFloat
+ 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 = 101
+ end
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewVendedor.pas b/Modulos/Contactos/Cliente/uViewVendedor.pas
new file mode 100644
index 0000000..50ec98a
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewVendedor.pas
@@ -0,0 +1,28 @@
+unit uViewVendedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContacto, DB, uDADataTable, uViewDireccion, uViewInternet,
+ uCustomView, uViewBase, uViewTelefonos, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ExtCtrls, StdCtrls, cxMaskEdit, cxSpinEdit;
+
+type
+ IViewVendedor = interface(IViewContacto)
+ ['{5BCCD062-7B3C-4D93-AF37-EF0418DDA739}']
+ end;
+
+ TfrViewVendedor = class(TfrViewContacto, IViewVendedor)
+ Label3: TLabel;
+ Panel1: TPanel;
+ Label4: TLabel;
+ eComision: TcxDBSpinEdit;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
+
\ No newline at end of file
diff --git a/Modulos/Contactos/Cliente/uViewVendedores.dfm b/Modulos/Contactos/Cliente/uViewVendedores.dfm
new file mode 100644
index 0000000..15078b6
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewVendedores.dfm
@@ -0,0 +1,51 @@
+inherited frViewVendedores: TfrViewVendedores
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 vendedores'
+ Kind = skCount
+ Column = cxGrid1ViewNOMBRE
+ end>
+ inherited cxGridViewCODIGO: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38677.491482303240000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000002444944415478DA
+ A5D25F4853711407F0EFFDB3CDEB9DE6367391418B98521ABEA4988619C508F6
+ 30A9142A8C281B6188088DA850090A2A288408C47A721404816325E120514C61
+ 8159F6070D7CB04599CB66CEFB77D7FBEBF61ABB3ED4F7F5C0E79CC339142104
+ FF13EA6F405C5E1A9879DAD7303F3A00411090E61C283DD0800A5F335C1BDDD4
+ BA80AA8853D3FD37E7F578349012252CAEAE624992911424541D0F62EFB1CECF
+ 2E9773AB29F07E344A120F2E835254A46405CB14015B988FE4C222922B32DA7B
+ 63F0945553A6C0506F17597AF1102A4D83D96087DB5B8C126F11523F7E2232F0
+ 12FEE0555405CE9B03915B6D44FB350D6F9907CEBC5CF01C0D312DC042130C8F
+ 4C6173CD59EC6B6C3307C29DCDA4D0FA05B575E550041992B1BF6AACC3D2402C
+ F60A9E4321F89A5ACD81DB67EA09A439F803D5E02D399045058CD15D90D278F4
+ 780C9547BB703878711D20D44C66C79FC357BF0B153B9DC8A819A87A06F1C904
+ 26C667E1EFBE8BA623E7CC8189A1E1F677DDF77B1CBC0C6E4F0A8C434172CE18
+ 2A5E004AE7B0BDAF237CB0B2EEA4293018BCD3E39AFCDA2E6969C8FB1790BF3B
+ 0369300FFC073708CDE263ADF57BCBBD1B9B4C8168E96952906B03A3D0203512
+ F2CB09A8213BC46FC614D020ACA8F8D4EA45C7854B5456E049C92962CFB180A7
+ 5810BB0EC606B0AB2C94CC1A044D03240AAFB7C8B83212CE0EF46F3B418A381E
+ 1CCBC04A33A0414137BE5159D3201A88A86A78B3C3866BCF7AB303D1FEC85822
+ FE764649A55B605C40FF536268E88C01D9AC608A5D085D0F995FE15FF21B1558
+ 1FF02CF09AE30000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Contactos/Cliente/uViewVendedores.pas b/Modulos/Contactos/Cliente/uViewVendedores.pas
new file mode 100644
index 0000000..5d913bb
--- /dev/null
+++ b/Modulos/Contactos/Cliente/uViewVendedores.pas
@@ -0,0 +1,31 @@
+unit uViewVendedores;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, ImgList, PngImageList, cxIntlPrintSys3, dxPSCore,
+ dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid;
+
+type
+ IViewVendedores = interface(IViewContactos)
+ ['{51F60691-47D8-4D53-AA22-9F7193BD9BCA}']
+ end;
+
+ TfrViewVendedores = class(TfrViewContactos, IViewVendedores)
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Contactos/Reglas/schComisionesClient_Intf.pas b/Modulos/Contactos/Reglas/schComisionesClient_Intf.pas
new file mode 100644
index 0000000..5673375
--- /dev/null
+++ b/Modulos/Contactos/Reglas/schComisionesClient_Intf.pas
@@ -0,0 +1,418 @@
+unit schComisionesClient_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_VENDEDORESCOMISION = '{1BC4C0DE-A875-4DF3-BD41-683A8C4F961F}';
+ RID_COMISIONES = '{6B2BBEE4-C97B-44C0-9D4B-A66082B1A01F}';
+ RID_COBROSCOMISION = '{766D9F94-5866-441D-A089-C4411C671E01}';
+
+ { Data table names }
+ nme_VENDEDORESCOMISION = 'VENDEDORESCOMISION';
+ nme_COMISIONES = 'COMISIONES';
+ nme_COBROSCOMISION = 'COBROSCOMISION';
+
+ { VENDEDORESCOMISION fields }
+ fld_VENDEDORESCOMISIONVENDEDOR = 'VENDEDOR';
+ fld_VENDEDORESCOMISIONPORCENTAJE = 'PORCENTAJE';
+ fld_VENDEDORESCOMISIONCOMISION = 'COMISION';
+
+ { VENDEDORESCOMISION field indexes }
+ idx_VENDEDORESCOMISIONVENDEDOR = 0;
+ idx_VENDEDORESCOMISIONPORCENTAJE = 1;
+ idx_VENDEDORESCOMISIONCOMISION = 2;
+
+ { COMISIONES fields }
+ fld_COMISIONESCOMISION = 'COMISION';
+
+ { COMISIONES field indexes }
+ idx_COMISIONESCOMISION = 0;
+
+ { COBROSCOMISION fields }
+ fld_COBROSCOMISIONSELECCION = 'SELECCION';
+ fld_COBROSCOMISIONCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_COBROSCOMISIONCODIGO = 'CODIGO';
+ fld_COBROSCOMISIONCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_COBROSCOMISIONNOMBRE = 'NOMBRE';
+ fld_COBROSCOMISIONFECHAPAGO = 'FECHAPAGO';
+ fld_COBROSCOMISIONIMPORTE = 'IMPORTE';
+ fld_COBROSCOMISIONFORMAPAGO = 'FORMAPAGO';
+ fld_COBROSCOMISIONDESCRIPCION = 'DESCRIPCION';
+ fld_COBROSCOMISIONCODIGOCATEGORIA = 'CODIGOCATEGORIA';
+ fld_COBROSCOMISIONCATEGORIA = 'CATEGORIA';
+
+ { COBROSCOMISION field indexes }
+ idx_COBROSCOMISIONSELECCION = 0;
+ idx_COBROSCOMISIONCODIGOEMPRESA = 1;
+ idx_COBROSCOMISIONCODIGO = 2;
+ idx_COBROSCOMISIONCODIGOCONTACTO = 3;
+ idx_COBROSCOMISIONNOMBRE = 4;
+ idx_COBROSCOMISIONFECHAPAGO = 5;
+ idx_COBROSCOMISIONIMPORTE = 6;
+ idx_COBROSCOMISIONFORMAPAGO = 7;
+ idx_COBROSCOMISIONDESCRIPCION = 8;
+ idx_COBROSCOMISIONCODIGOCATEGORIA = 9;
+ idx_COBROSCOMISIONCATEGORIA = 10;
+
+type
+ { IVENDEDORESCOMISION }
+ IVENDEDORESCOMISION = interface(IDAStronglyTypedDataTable)
+ ['{4B0EE488-AE5C-4F1B-907A-08A753A211FC}']
+ { Property getters and setters }
+ function GetVENDEDORValue: String;
+ procedure SetVENDEDORValue(const aValue: String);
+ function GetPORCENTAJEValue: Float;
+ procedure SetPORCENTAJEValue(const aValue: Float);
+ function GetCOMISIONValue: Float;
+ procedure SetCOMISIONValue(const aValue: Float);
+
+
+ { Properties }
+ property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue;
+ property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue;
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+ end;
+
+ { TVENDEDORESCOMISIONDataTableRules }
+ TVENDEDORESCOMISIONDataTableRules = class(TDADataTableRules, IVENDEDORESCOMISION)
+ private
+ protected
+ { Property getters and setters }
+ function GetVENDEDORValue: String; virtual;
+ procedure SetVENDEDORValue(const aValue: String); virtual;
+ function GetPORCENTAJEValue: Float; virtual;
+ procedure SetPORCENTAJEValue(const aValue: Float); virtual;
+ function GetCOMISIONValue: Float; virtual;
+ procedure SetCOMISIONValue(const aValue: Float); virtual;
+
+ { Properties }
+ property VENDEDOR: String read GetVENDEDORValue write SetVENDEDORValue;
+ property PORCENTAJE: Float read GetPORCENTAJEValue write SetPORCENTAJEValue;
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICOMISIONES }
+ ICOMISIONES = interface(IDAStronglyTypedDataTable)
+ ['{16E451A9-2317-4BCF-A569-278333EEAB2C}']
+ { Property getters and setters }
+ function GetCOMISIONValue: Float;
+ procedure SetCOMISIONValue(const aValue: Float);
+
+
+ { Properties }
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+ end;
+
+ { TCOMISIONESDataTableRules }
+ TCOMISIONESDataTableRules = class(TDADataTableRules, ICOMISIONES)
+ private
+ protected
+ { Property getters and setters }
+ function GetCOMISIONValue: Float; virtual;
+ procedure SetCOMISIONValue(const aValue: Float); virtual;
+
+ { Properties }
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICOBROSCOMISION }
+ ICOBROSCOMISION = interface(IDAStronglyTypedDataTable)
+ ['{3B95C673-4F15-449B-9757-2074539B57AC}']
+ { Property getters and setters }
+ function GetSELECCIONValue: Integer;
+ procedure SetSELECCIONValue(const aValue: Integer);
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetIMPORTEValue: Float;
+ procedure SetIMPORTEValue(const aValue: Float);
+ function GetFORMAPAGOValue: String;
+ procedure SetFORMAPAGOValue(const aValue: String);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCODIGOCATEGORIAValue: Integer;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer);
+ function GetCATEGORIAValue: String;
+ procedure SetCATEGORIAValue(const aValue: String);
+
+
+ { Properties }
+ property SELECCION: Integer read GetSELECCIONValue write SetSELECCIONValue;
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+ end;
+
+ { TCOBROSCOMISIONDataTableRules }
+ TCOBROSCOMISIONDataTableRules = class(TDADataTableRules, ICOBROSCOMISION)
+ private
+ protected
+ { Property getters and setters }
+ function GetSELECCIONValue: Integer; virtual;
+ procedure SetSELECCIONValue(const aValue: Integer); virtual;
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetIMPORTEValue: Float; virtual;
+ procedure SetIMPORTEValue(const aValue: Float); virtual;
+ function GetFORMAPAGOValue: String; virtual;
+ procedure SetFORMAPAGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property SELECCION: Integer read GetSELECCIONValue write SetSELECCIONValue;
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TVENDEDORESCOMISIONDataTableRules }
+constructor TVENDEDORESCOMISIONDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TVENDEDORESCOMISIONDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TVENDEDORESCOMISIONDataTableRules.GetVENDEDORValue: String;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCOMISIONVENDEDOR].AsString;
+end;
+
+procedure TVENDEDORESCOMISIONDataTableRules.SetVENDEDORValue(const aValue: String);
+begin
+ DataTable.Fields[idx_VENDEDORESCOMISIONVENDEDOR].AsString := aValue;
+end;
+
+function TVENDEDORESCOMISIONDataTableRules.GetPORCENTAJEValue: Float;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCOMISIONPORCENTAJE].AsFloat;
+end;
+
+procedure TVENDEDORESCOMISIONDataTableRules.SetPORCENTAJEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_VENDEDORESCOMISIONPORCENTAJE].AsFloat := aValue;
+end;
+
+function TVENDEDORESCOMISIONDataTableRules.GetCOMISIONValue: Float;
+begin
+ result := DataTable.Fields[idx_VENDEDORESCOMISIONCOMISION].AsFloat;
+end;
+
+procedure TVENDEDORESCOMISIONDataTableRules.SetCOMISIONValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_VENDEDORESCOMISIONCOMISION].AsFloat := aValue;
+end;
+
+
+{ TCOMISIONESDataTableRules }
+constructor TCOMISIONESDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCOMISIONESDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCOMISIONESDataTableRules.GetCOMISIONValue: Float;
+begin
+ result := DataTable.Fields[idx_COMISIONESCOMISION].AsFloat;
+end;
+
+procedure TCOMISIONESDataTableRules.SetCOMISIONValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_COMISIONESCOMISION].AsFloat := aValue;
+end;
+
+
+{ TCOBROSCOMISIONDataTableRules }
+constructor TCOBROSCOMISIONDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCOBROSCOMISIONDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetSELECCIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONSELECCION].AsInteger;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetSELECCIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONSELECCION].AsInteger := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONCODIGO].AsInteger;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONCODIGO].AsInteger := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONNOMBRE].AsString;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONNOMBRE].AsString := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONFECHAPAGO].AsDateTime;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetIMPORTEValue: Float;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONIMPORTE].AsFloat;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetIMPORTEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONIMPORTE].AsFloat := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetFORMAPAGOValue: String;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONFORMAPAGO].AsString;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetFORMAPAGOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONFORMAPAGO].AsString := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONDESCRIPCION].AsString;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONDESCRIPCION].AsString := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONCODIGOCATEGORIA].AsInteger;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONCODIGOCATEGORIA].AsInteger := aValue;
+end;
+
+function TCOBROSCOMISIONDataTableRules.GetCATEGORIAValue: String;
+begin
+ result := DataTable.Fields[idx_COBROSCOMISIONCATEGORIA].AsString;
+end;
+
+procedure TCOBROSCOMISIONDataTableRules.SetCATEGORIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_COBROSCOMISIONCATEGORIA].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_VENDEDORESCOMISION, TVENDEDORESCOMISIONDataTableRules);
+ RegisterDataTableRules(RID_COMISIONES, TCOMISIONESDataTableRules);
+ RegisterDataTableRules(RID_COBROSCOMISION, TCOBROSCOMISIONDataTableRules);
+
+end.
diff --git a/Modulos/Contactos/Reglas/schComisionesServer_Intf.pas b/Modulos/Contactos/Reglas/schComisionesServer_Intf.pas
new file mode 100644
index 0000000..c0dbfdc
--- /dev/null
+++ b/Modulos/Contactos/Reglas/schComisionesServer_Intf.pas
@@ -0,0 +1,459 @@
+unit schComisionesServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schComisionesClient_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_VENDEDORESCOMISIONDelta = '{47FDF38D-3FF4-4F15-A4B1-212E3669BFAA}';
+ RID_COMISIONESDelta = '{DCCDF3B3-6238-4524-80E8-5533335061DD}';
+ RID_COBROSCOMISIONDelta = '{15955B4C-796B-49D4-8F2B-07BA91EECB3D}';
+
+type
+ { IVENDEDORESCOMISIONDelta }
+ IVENDEDORESCOMISIONDelta = interface(IVENDEDORESCOMISION)
+ ['{47FDF38D-3FF4-4F15-A4B1-212E3669BFAA}']
+ { Property getters and setters }
+ function GetOldVENDEDORValue : String;
+ function GetOldPORCENTAJEValue : Float;
+ function GetOldCOMISIONValue : Float;
+
+ { Properties }
+ property OldVENDEDOR : String read GetOldVENDEDORValue;
+ property OldPORCENTAJE : Float read GetOldPORCENTAJEValue;
+ property OldCOMISION : Float read GetOldCOMISIONValue;
+ end;
+
+ { TVENDEDORESCOMISIONBusinessProcessorRules }
+ TVENDEDORESCOMISIONBusinessProcessorRules = class(TDABusinessProcessorRules, IVENDEDORESCOMISION, IVENDEDORESCOMISIONDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetVENDEDORValue: String; virtual;
+ function GetOldVENDEDORValue: String; virtual;
+ procedure SetVENDEDORValue(const aValue: String); virtual;
+ function GetPORCENTAJEValue: Float; virtual;
+ function GetOldPORCENTAJEValue: Float; virtual;
+ procedure SetPORCENTAJEValue(const aValue: Float); virtual;
+ function GetCOMISIONValue: Float; virtual;
+ function GetOldCOMISIONValue: Float; virtual;
+ procedure SetCOMISIONValue(const aValue: Float); virtual;
+
+ { Properties }
+ property VENDEDOR : String read GetVENDEDORValue write SetVENDEDORValue;
+ property OldVENDEDOR : String read GetOldVENDEDORValue;
+ property PORCENTAJE : Float read GetPORCENTAJEValue write SetPORCENTAJEValue;
+ property OldPORCENTAJE : Float read GetOldPORCENTAJEValue;
+ property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue;
+ property OldCOMISION : Float read GetOldCOMISIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICOMISIONESDelta }
+ ICOMISIONESDelta = interface(ICOMISIONES)
+ ['{DCCDF3B3-6238-4524-80E8-5533335061DD}']
+ { Property getters and setters }
+ function GetOldCOMISIONValue : Float;
+
+ { Properties }
+ property OldCOMISION : Float read GetOldCOMISIONValue;
+ end;
+
+ { TCOMISIONESBusinessProcessorRules }
+ TCOMISIONESBusinessProcessorRules = class(TDABusinessProcessorRules, ICOMISIONES, ICOMISIONESDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCOMISIONValue: Float; virtual;
+ function GetOldCOMISIONValue: Float; virtual;
+ procedure SetCOMISIONValue(const aValue: Float); virtual;
+
+ { Properties }
+ property COMISION : Float read GetCOMISIONValue write SetCOMISIONValue;
+ property OldCOMISION : Float read GetOldCOMISIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICOBROSCOMISIONDelta }
+ ICOBROSCOMISIONDelta = interface(ICOBROSCOMISION)
+ ['{15955B4C-796B-49D4-8F2B-07BA91EECB3D}']
+ { Property getters and setters }
+ function GetOldSELECCIONValue : Integer;
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldIMPORTEValue : Float;
+ function GetOldFORMAPAGOValue : String;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCODIGOCATEGORIAValue : Integer;
+ function GetOldCATEGORIAValue : String;
+
+ { Properties }
+ property OldSELECCION : Integer read GetOldSELECCIONValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldIMPORTE : Float read GetOldIMPORTEValue;
+ property OldFORMAPAGO : String read GetOldFORMAPAGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+ end;
+
+ { TCOBROSCOMISIONBusinessProcessorRules }
+ TCOBROSCOMISIONBusinessProcessorRules = class(TDABusinessProcessorRules, ICOBROSCOMISION, ICOBROSCOMISIONDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetSELECCIONValue: Integer; virtual;
+ function GetOldSELECCIONValue: Integer; virtual;
+ procedure SetSELECCIONValue(const aValue: Integer); virtual;
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetIMPORTEValue: Float; virtual;
+ function GetOldIMPORTEValue: Float; virtual;
+ procedure SetIMPORTEValue(const aValue: Float); virtual;
+ function GetFORMAPAGOValue: String; virtual;
+ function GetOldFORMAPAGOValue: String; virtual;
+ procedure SetFORMAPAGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ function GetOldCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ function GetOldCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property SELECCION : Integer read GetSELECCIONValue write SetSELECCIONValue;
+ property OldSELECCION : Integer read GetOldSELECCIONValue;
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property IMPORTE : Float read GetIMPORTEValue write SetIMPORTEValue;
+ property OldIMPORTE : Float read GetOldIMPORTEValue;
+ property FORMAPAGO : String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : String read GetOldFORMAPAGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CODIGOCATEGORIA : Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property CATEGORIA : String read GetCATEGORIAValue write SetCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TVENDEDORESCOMISIONBusinessProcessorRules }
+constructor TVENDEDORESCOMISIONBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TVENDEDORESCOMISIONBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetVENDEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONVENDEDOR];
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetOldVENDEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCOMISIONVENDEDOR];
+end;
+
+procedure TVENDEDORESCOMISIONBusinessProcessorRules.SetVENDEDORValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONVENDEDOR] := aValue;
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetPORCENTAJEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONPORCENTAJE];
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetOldPORCENTAJEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCOMISIONPORCENTAJE];
+end;
+
+procedure TVENDEDORESCOMISIONBusinessProcessorRules.SetPORCENTAJEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONPORCENTAJE] := aValue;
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetCOMISIONValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONCOMISION];
+end;
+
+function TVENDEDORESCOMISIONBusinessProcessorRules.GetOldCOMISIONValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_VENDEDORESCOMISIONCOMISION];
+end;
+
+procedure TVENDEDORESCOMISIONBusinessProcessorRules.SetCOMISIONValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_VENDEDORESCOMISIONCOMISION] := aValue;
+end;
+
+
+{ TCOMISIONESBusinessProcessorRules }
+constructor TCOMISIONESBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCOMISIONESBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCOMISIONESBusinessProcessorRules.GetCOMISIONValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COMISIONESCOMISION];
+end;
+
+function TCOMISIONESBusinessProcessorRules.GetOldCOMISIONValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COMISIONESCOMISION];
+end;
+
+procedure TCOMISIONESBusinessProcessorRules.SetCOMISIONValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COMISIONESCOMISION] := aValue;
+end;
+
+
+{ TCOBROSCOMISIONBusinessProcessorRules }
+constructor TCOBROSCOMISIONBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCOBROSCOMISIONBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetSELECCIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONSELECCION];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldSELECCIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONSELECCION];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetSELECCIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONSELECCION] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOEMPRESA];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONCODIGOEMPRESA];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOEMPRESA] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGO];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONCODIGO];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGO] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOCONTACTO];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONCODIGOCONTACTO];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOCONTACTO] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONNOMBRE];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONNOMBRE];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONNOMBRE] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONFECHAPAGO];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONFECHAPAGO];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONFECHAPAGO] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetIMPORTEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONIMPORTE];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldIMPORTEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONIMPORTE];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetIMPORTEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONIMPORTE] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetFORMAPAGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONFORMAPAGO];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldFORMAPAGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONFORMAPAGO];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetFORMAPAGOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONFORMAPAGO] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONDESCRIPCION];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONDESCRIPCION];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONDESCRIPCION] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOCATEGORIA];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONCODIGOCATEGORIA];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCODIGOCATEGORIA] := aValue;
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCATEGORIA];
+end;
+
+function TCOBROSCOMISIONBusinessProcessorRules.GetOldCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_COBROSCOMISIONCATEGORIA];
+end;
+
+procedure TCOBROSCOMISIONBusinessProcessorRules.SetCATEGORIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_COBROSCOMISIONCATEGORIA] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_VENDEDORESCOMISIONDelta, TVENDEDORESCOMISIONBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_COMISIONESDelta, TCOMISIONESBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_COBROSCOMISIONDelta, TCOBROSCOMISIONBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Contactos/Reglas/schContactosClient_Intf.pas b/Modulos/Contactos/Reglas/schContactosClient_Intf.pas
new file mode 100644
index 0000000..7cb0dbf
--- /dev/null
+++ b/Modulos/Contactos/Reglas/schContactosClient_Intf.pas
@@ -0,0 +1,562 @@
+unit schContactosClient_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_Contactos = '{8925540A-D98B-411B-ADAF-34E959549849}';
+ RID_CategoriasContacto = '{1EC54DA1-7157-497C-B449-E2C538576AF7}';
+ RID_Categorias = '{FC26550A-8EFE-47EE-A589-E7D1056A5ACF}';
+
+ { Data table names }
+ nme_Contactos = 'Contactos';
+ nme_CategoriasContacto = 'CategoriasContacto';
+ nme_Categorias = 'Categorias';
+
+ { Contactos fields }
+ fld_ContactosCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_ContactosCODIGO = 'CODIGO';
+ fld_ContactosFECHAALTA = 'FECHAALTA';
+ fld_ContactosUSUARIO = 'USUARIO';
+ fld_ContactosNIFCIF = 'NIFCIF';
+ fld_ContactosNOMBRE = 'NOMBRE';
+ fld_ContactosNOTAS = 'NOTAS';
+ fld_ContactosCALLE = 'CALLE';
+ fld_ContactosPROVINCIA = 'PROVINCIA';
+ fld_ContactosCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_ContactosPOBLACION = 'POBLACION';
+ fld_ContactosTELEFONO1 = 'TELEFONO1';
+ fld_ContactosTELEFONO2 = 'TELEFONO2';
+ fld_ContactosMOVIL = 'MOVIL';
+ fld_ContactosFAX = 'FAX';
+ fld_ContactosCORREO1 = 'CORREO1';
+ fld_ContactosCORREO2 = 'CORREO2';
+ fld_ContactosPAGINAWEB = 'PAGINAWEB';
+ fld_ContactosPERSONACONTACTO = 'PERSONACONTACTO';
+
+ { Contactos field indexes }
+ idx_ContactosCODIGOEMPRESA = 0;
+ idx_ContactosCODIGO = 1;
+ idx_ContactosFECHAALTA = 2;
+ idx_ContactosUSUARIO = 3;
+ idx_ContactosNIFCIF = 4;
+ idx_ContactosNOMBRE = 5;
+ idx_ContactosNOTAS = 6;
+ idx_ContactosCALLE = 7;
+ idx_ContactosPROVINCIA = 8;
+ idx_ContactosCODIGOPOSTAL = 9;
+ idx_ContactosPOBLACION = 10;
+ idx_ContactosTELEFONO1 = 11;
+ idx_ContactosTELEFONO2 = 12;
+ idx_ContactosMOVIL = 13;
+ idx_ContactosFAX = 14;
+ idx_ContactosCORREO1 = 15;
+ idx_ContactosCORREO2 = 16;
+ idx_ContactosPAGINAWEB = 17;
+ idx_ContactosPERSONACONTACTO = 18;
+
+ { CategoriasContacto fields }
+ fld_CategoriasContactoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_CategoriasContactoCODIGOCATEGORIA = 'CODIGOCATEGORIA';
+
+ { CategoriasContacto field indexes }
+ idx_CategoriasContactoCODIGOCONTACTO = 0;
+ idx_CategoriasContactoCODIGOCATEGORIA = 1;
+
+ { Categorias fields }
+ fld_CategoriasCODIGO = 'CODIGO';
+ fld_CategoriasDESCRIPCION = 'DESCRIPCION';
+
+ { Categorias field indexes }
+ idx_CategoriasCODIGO = 0;
+ idx_CategoriasDESCRIPCION = 1;
+
+type
+ { IContactos }
+ IContactos = interface(IDAStronglyTypedDataTable)
+ ['{7F8AA4B4-916C-4AFC-BB3C-66087F244F9A}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetNOTASValue: String;
+ procedure SetNOTASValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+ function GetFAXValue: String;
+ procedure SetFAXValue(const aValue: String);
+ function GetCORREO1Value: String;
+ procedure SetCORREO1Value(const aValue: String);
+ function GetCORREO2Value: String;
+ procedure SetCORREO2Value(const aValue: String);
+ function GetPAGINAWEBValue: String;
+ procedure SetPAGINAWEBValue(const aValue: String);
+ function GetPERSONACONTACTOValue: String;
+ procedure SetPERSONACONTACTOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property CORREO1: String read GetCORREO1Value write SetCORREO1Value;
+ property CORREO2: String read GetCORREO2Value write SetCORREO2Value;
+ property PAGINAWEB: String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ end;
+
+ { TContactosDataTableRules }
+ TContactosDataTableRules = class(TDADataTableRules, IContactos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetCORREO1Value: String; virtual;
+ procedure SetCORREO1Value(const aValue: String); virtual;
+ function GetCORREO2Value: String; virtual;
+ procedure SetCORREO2Value(const aValue: String); virtual;
+ function GetPAGINAWEBValue: String; virtual;
+ procedure SetPAGINAWEBValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property FAX: String read GetFAXValue write SetFAXValue;
+ property CORREO1: String read GetCORREO1Value write SetCORREO1Value;
+ property CORREO2: String read GetCORREO2Value write SetCORREO2Value;
+ property PAGINAWEB: String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property PERSONACONTACTO: String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICategoriasContacto }
+ ICategoriasContacto = interface(IDAStronglyTypedDataTable)
+ ['{D0F985CB-C37A-4254-87C4-ADC36BA9029A}']
+ { Property getters and setters }
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetCODIGOCATEGORIAValue: Integer;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ end;
+
+ { TCategoriasContactoDataTableRules }
+ TCategoriasContactoDataTableRules = class(TDADataTableRules, ICategoriasContacto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICategorias }
+ ICategorias = interface(IDAStronglyTypedDataTable)
+ ['{5FA38C8C-1ABE-42FC-AF5C-508D9E6AEF39}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ end;
+
+ { TCategoriasDataTableRules }
+ TCategoriasDataTableRules = class(TDADataTableRules, ICategorias)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TContactosDataTableRules }
+constructor TContactosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TContactosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TContactosDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_ContactosCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TContactosDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ContactosCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TContactosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_ContactosCODIGO].AsInteger;
+end;
+
+procedure TContactosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ContactosCODIGO].AsInteger := aValue;
+end;
+
+function TContactosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_ContactosFECHAALTA].AsDateTime;
+end;
+
+procedure TContactosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_ContactosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TContactosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosUSUARIO].AsString;
+end;
+
+procedure TContactosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosUSUARIO].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosNIFCIF].AsString;
+end;
+
+procedure TContactosDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosNIFCIF].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosNOMBRE].AsString;
+end;
+
+procedure TContactosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosNOMBRE].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetNOTASValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosNOTAS].AsString;
+end;
+
+procedure TContactosDataTableRules.SetNOTASValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosNOTAS].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosCALLE].AsString;
+end;
+
+procedure TContactosDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosCALLE].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosPROVINCIA].AsString;
+end;
+
+procedure TContactosDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosPROVINCIA].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosCODIGOPOSTAL].AsString;
+end;
+
+procedure TContactosDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosPOBLACION].AsString;
+end;
+
+procedure TContactosDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosPOBLACION].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_ContactosTELEFONO1].AsString;
+end;
+
+procedure TContactosDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosTELEFONO1].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_ContactosTELEFONO2].AsString;
+end;
+
+procedure TContactosDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosTELEFONO2].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosMOVIL].AsString;
+end;
+
+procedure TContactosDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosMOVIL].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetFAXValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosFAX].AsString;
+end;
+
+procedure TContactosDataTableRules.SetFAXValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosFAX].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetCORREO1Value: String;
+begin
+ result := DataTable.Fields[idx_ContactosCORREO1].AsString;
+end;
+
+procedure TContactosDataTableRules.SetCORREO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosCORREO1].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetCORREO2Value: String;
+begin
+ result := DataTable.Fields[idx_ContactosCORREO2].AsString;
+end;
+
+procedure TContactosDataTableRules.SetCORREO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosCORREO2].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetPAGINAWEBValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosPAGINAWEB].AsString;
+end;
+
+procedure TContactosDataTableRules.SetPAGINAWEBValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosPAGINAWEB].AsString := aValue;
+end;
+
+function TContactosDataTableRules.GetPERSONACONTACTOValue: String;
+begin
+ result := DataTable.Fields[idx_ContactosPERSONACONTACTO].AsString;
+end;
+
+procedure TContactosDataTableRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ContactosPERSONACONTACTO].AsString := aValue;
+end;
+
+
+{ TCategoriasContactoDataTableRules }
+constructor TCategoriasContactoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCategoriasContactoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasContactoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_CategoriasContactoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TCategoriasContactoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CategoriasContactoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TCategoriasContactoDataTableRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := DataTable.Fields[idx_CategoriasContactoCODIGOCATEGORIA].AsInteger;
+end;
+
+procedure TCategoriasContactoDataTableRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CategoriasContactoCODIGOCATEGORIA].AsInteger := aValue;
+end;
+
+
+{ TCategoriasDataTableRules }
+constructor TCategoriasDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCategoriasDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_CategoriasCODIGO].AsInteger;
+end;
+
+procedure TCategoriasDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CategoriasCODIGO].AsInteger := aValue;
+end;
+
+function TCategoriasDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_CategoriasDESCRIPCION].AsString;
+end;
+
+procedure TCategoriasDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CategoriasDESCRIPCION].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Contactos, TContactosDataTableRules);
+ RegisterDataTableRules(RID_CategoriasContacto, TCategoriasContactoDataTableRules);
+ RegisterDataTableRules(RID_Categorias, TCategoriasDataTableRules);
+
+end.
diff --git a/Modulos/Contactos/Reglas/schContactosServer_Intf.pas b/Modulos/Contactos/Reglas/schContactosServer_Intf.pas
new file mode 100644
index 0000000..1cf7398
--- /dev/null
+++ b/Modulos/Contactos/Reglas/schContactosServer_Intf.pas
@@ -0,0 +1,635 @@
+unit schContactosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schContactosClient_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_ContactosDelta = '{05C6FCA7-C4BD-4B10-AA2A-D3E1CBEA3100}';
+ RID_CategoriasContactoDelta = '{85963D41-1B87-4A9E-ADB1-DCF05D4373C2}';
+ RID_CategoriasDelta = '{08DBB9D1-D1A9-46C4-A113-AA7424C15849}';
+
+type
+ { IContactosDelta }
+ IContactosDelta = interface(IContactos)
+ ['{05C6FCA7-C4BD-4B10-AA2A-D3E1CBEA3100}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldNOTASValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+ function GetOldFAXValue : String;
+ function GetOldCORREO1Value : String;
+ function GetOldCORREO2Value : String;
+ function GetOldPAGINAWEBValue : String;
+ function GetOldPERSONACONTACTOValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property OldFAX : String read GetOldFAXValue;
+ property OldCORREO1 : String read GetOldCORREO1Value;
+ property OldCORREO2 : String read GetOldCORREO2Value;
+ property OldPAGINAWEB : String read GetOldPAGINAWEBValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+ end;
+
+ { TContactosBusinessProcessorRules }
+ TContactosBusinessProcessorRules = class(TDABusinessProcessorRules, IContactos, IContactosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNOTASValue: String; virtual;
+ function GetOldNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetFAXValue: String; virtual;
+ function GetOldFAXValue: String; virtual;
+ procedure SetFAXValue(const aValue: String); virtual;
+ function GetCORREO1Value: String; virtual;
+ function GetOldCORREO1Value: String; virtual;
+ procedure SetCORREO1Value(const aValue: String); virtual;
+ function GetCORREO2Value: String; virtual;
+ function GetOldCORREO2Value: String; virtual;
+ procedure SetCORREO2Value(const aValue: String); virtual;
+ function GetPAGINAWEBValue: String; virtual;
+ function GetOldPAGINAWEBValue: String; virtual;
+ procedure SetPAGINAWEBValue(const aValue: String); virtual;
+ function GetPERSONACONTACTOValue: String; virtual;
+ function GetOldPERSONACONTACTOValue: String; virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property NOTAS : String read GetNOTASValue write SetNOTASValue;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property FAX : String read GetFAXValue write SetFAXValue;
+ property OldFAX : String read GetOldFAXValue;
+ property CORREO1 : String read GetCORREO1Value write SetCORREO1Value;
+ property OldCORREO1 : String read GetOldCORREO1Value;
+ property CORREO2 : String read GetCORREO2Value write SetCORREO2Value;
+ property OldCORREO2 : String read GetOldCORREO2Value;
+ property PAGINAWEB : String read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property OldPAGINAWEB : String read GetOldPAGINAWEBValue;
+ property PERSONACONTACTO : String read GetPERSONACONTACTOValue write SetPERSONACONTACTOValue;
+ property OldPERSONACONTACTO : String read GetOldPERSONACONTACTOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICategoriasContactoDelta }
+ ICategoriasContactoDelta = interface(ICategoriasContacto)
+ ['{85963D41-1B87-4A9E-ADB1-DCF05D4373C2}']
+ { Property getters and setters }
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldCODIGOCATEGORIAValue : Integer;
+
+ { Properties }
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ end;
+
+ { TCategoriasContactoBusinessProcessorRules }
+ TCategoriasContactoBusinessProcessorRules = class(TDABusinessProcessorRules, ICategoriasContacto, ICategoriasContactoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ function GetOldCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property CODIGOCATEGORIA : Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { ICategoriasDelta }
+ ICategoriasDelta = interface(ICategorias)
+ ['{08DBB9D1-D1A9-46C4-A113-AA7424C15849}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ end;
+
+ { TCategoriasBusinessProcessorRules }
+ TCategoriasBusinessProcessorRules = class(TDABusinessProcessorRules, ICategorias, ICategoriasDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TContactosBusinessProcessorRules }
+constructor TContactosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TContactosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOEMPRESA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGOEMPRESA];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOEMPRESA] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGO];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHAALTA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHAALTA];
+end;
+
+procedure TContactosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHAALTA] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO];
+end;
+
+function TContactosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosUSUARIO];
+end;
+
+procedure TContactosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIFCIF];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNIFCIF];
+end;
+
+procedure TContactosBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIFCIF] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOMBRE];
+end;
+
+procedure TContactosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOTAS];
+end;
+
+procedure TContactosBusinessProcessorRules.SetNOTASValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCALLE];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPROVINCIA];
+end;
+
+procedure TContactosBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOPOSTAL];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGOPOSTAL];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOPOSTAL] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPOBLACION];
+end;
+
+procedure TContactosBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO1];
+end;
+
+function TContactosBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO1];
+end;
+
+procedure TContactosBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO1] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO2];
+end;
+
+function TContactosBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO2];
+end;
+
+procedure TContactosBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO2] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL];
+end;
+
+function TContactosBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL];
+end;
+
+procedure TContactosBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX];
+end;
+
+function TContactosBusinessProcessorRules.GetOldFAXValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFAX];
+end;
+
+procedure TContactosBusinessProcessorRules.SetFAXValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetCORREO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO1];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCORREO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCORREO1];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCORREO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO1] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetCORREO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO2];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCORREO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCORREO2];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCORREO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO2] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetPAGINAWEBValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINAWEB];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPAGINAWEBValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPAGINAWEB];
+end;
+
+procedure TContactosBusinessProcessorRules.SetPAGINAWEBValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINAWEB] := aValue;
+end;
+
+function TContactosBusinessProcessorRules.GetPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONACONTACTO];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPERSONACONTACTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPERSONACONTACTO];
+end;
+
+procedure TContactosBusinessProcessorRules.SetPERSONACONTACTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONACONTACTO] := aValue;
+end;
+
+
+{ TCategoriasContactoBusinessProcessorRules }
+constructor TCategoriasContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCategoriasContactoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCONTACTO];
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasContactoCODIGOCONTACTO];
+end;
+
+procedure TCategoriasContactoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCONTACTO] := aValue;
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCATEGORIA];
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetOldCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasContactoCODIGOCATEGORIA];
+end;
+
+procedure TCategoriasContactoBusinessProcessorRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCATEGORIA] := aValue;
+end;
+
+
+{ TCategoriasBusinessProcessorRules }
+constructor TCategoriasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCategoriasBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasCODIGO];
+end;
+
+function TCategoriasBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasCODIGO];
+end;
+
+procedure TCategoriasBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasCODIGO] := aValue;
+end;
+
+function TCategoriasBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasDESCRIPCION];
+end;
+
+function TCategoriasBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasDESCRIPCION];
+end;
+
+procedure TCategoriasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasDESCRIPCION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_ContactosDelta, TContactosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_CategoriasContactoDelta, TCategoriasContactoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_CategoriasDelta, TCategoriasBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Contactos/Reglas/uBizComisiones.pas b/Modulos/Contactos/Reglas/uBizComisiones.pas
new file mode 100644
index 0000000..d38f025
--- /dev/null
+++ b/Modulos/Contactos/Reglas/uBizComisiones.pas
@@ -0,0 +1,206 @@
+unit uBizComisiones;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schComisionesClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls;
+
+const
+
+ BIZ_SELECCION = 'Client.Field.Seleccion';
+ BIZ_COBROSCOMISION = 'BizCobrosComision';
+ BIZ_VENDEDORESCOMISION = 'BizVendedoresComision';
+
+type
+
+ IBizSeleccion = interface(IDAStronglyTypedDataTable)
+ ['{E4CB36C8-4A41-4DDB-92DB-211517EB60DB}']
+ end;
+
+ IBizVendedoresComision = interface(IVendedoresComision)
+ ['{4095FB35-E5FE-4C04-929A-480C29FC9436}']
+ procedure calcularComisiones(Total: Double);
+ end;
+
+ IBizCobrosComision = interface(ICobrosComision)
+ ['{1CC63E18-6230-4421-96E8-26C011993F5C}']
+
+ function getVendedoresComision: IBizVendedoresComision;
+ procedure setVendedoresComision(const Value: IBizVendedoresComision);
+ property VendedoresComision: IBizVendedoresComision read getVendedoresComision
+ write setVendedoresComision;
+
+ function getTotal: Double;
+ procedure setTotal(const Value: Double);
+ property Total: Double read getTotal write setTotal;
+
+ function GetOnTotalChanged : TNotifyEvent;
+ procedure SetOnTotalChanged (const Value : TNotifyEvent);
+ property OnTotalChanged : TNotifyEvent read GetOnTotalChanged
+ write SetOnTotalChanged;
+ end;
+
+
+ TBizSeleccionFieldRules = class(TDAFieldRules)
+ protected
+ procedure OnChange(Sender: TDACustomField); override;
+ end;
+
+ TBizCobrosComisionDataTableRules = class(TCobrosComisionDataTableRules, IBizCobrosComision)
+ private
+ FVendedoresComision: IBizVendedoresComision;
+ FTotal: Double;
+ FOnTotalChanged : TNotifyEvent;
+ function getTotal: Double;
+ procedure setTotal(const Value: Double);
+ function GetOnTotalChanged: TNotifyEvent;
+ procedure SetOnTotalChanged(const Value: TNotifyEvent);
+ function getVendedoresComision: IBizVendedoresComision;
+ procedure setVendedoresComision(const Value: IBizVendedoresComision);
+ protected
+ procedure AfterOpen(Sender: TDADataTable); override;
+ public
+ property VendedoresComision: IBizVendedoresComision read getVendedoresComision
+ write setVendedoresComision;
+ property Total: Double read getTotal write setTotal;
+ property OnTotalChanged : TNotifyEvent read GetOnTotalChanged
+ write SetOnTotalChanged;
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ end;
+
+ TBizVendedoresComisionDataTableRules = class(TVendedoresComisionDataTableRules, IBizVendedoresComision)
+ public
+ procedure calcularComisiones(Total: Double);
+ end;
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase,
+ uEditorUtils, uDataModuleComisiones, Variants;
+
+
+{ TBizCobrosComisionDataTableRules }
+
+{
+************************** TBizCobrosComisionDataTableRules **************************
+}
+
+procedure TBizCobrosComisionDataTableRules.AfterOpen(Sender: TDADataTable);
+var
+ ldTotal : Double;
+begin
+ inherited;
+
+ with (Sender as IBizCobrosComision) do
+ begin
+ DataTable.DisableControls;
+ ldTotal := 0;
+ First;
+ while not DataTable.Eof do
+ begin
+ ldTotal := ldTotal + IMPORTE;
+ Next;
+ end;
+ First;
+ Total := ldTotal;
+ DataTable.EnableControls;
+ end;
+end;
+
+constructor TBizCobrosComisionDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FVendedoresComision := Nil;
+ aDataTable.AfterOpen := AfterOpen;
+end;
+
+destructor TBizCobrosComisionDataTableRules.Destroy;
+begin
+ FVendedoresComision := Nil;
+ inherited;
+end;
+
+function TBizCobrosComisionDataTableRules.GetOnTotalChanged: TNotifyEvent;
+begin
+ Result := FOnTotalChanged;
+end;
+
+function TBizCobrosComisionDataTableRules.getTotal: Double;
+begin
+ Result := FTotal;
+end;
+
+function TBizCobrosComisionDataTableRules.getVendedoresComision: IBizVendedoresComision;
+begin
+ Result := FVendedoresComision;
+end;
+
+procedure TBizCobrosComisionDataTableRules.SetOnTotalChanged(const Value: TNotifyEvent);
+begin
+ FOnTotalChanged := Value;
+end;
+
+procedure TBizCobrosComisionDataTableRules.setTotal(const Value: Double);
+begin
+ FTotal := Value;
+
+ if Assigned(FOnTotalChanged) then
+ FOnTotalChanged(Self);
+
+ FVendedoresComision.CalcularComisiones(FTotal);
+end;
+
+{ TBizSeleccionFieldRules }
+
+procedure TBizSeleccionFieldRules.OnChange(Sender: TDACustomField);
+var
+ ACobrosComision : IBizCobrosComision;
+begin
+ if Supports(DataTable, IBizCobrosComision, ACobrosComision) then
+ begin
+ if ACobrosComision.SELECCION = 1
+ then ACobrosComision.Total := ACobrosComision.Total + ACobrosComision.IMPORTE
+ else ACobrosComision.Total := ACobrosComision.Total - ACobrosComision.IMPORTE;
+ end;
+end;
+
+procedure TBizCobrosComisionDataTableRules.setVendedoresComision(const Value: IBizVendedoresComision);
+begin
+ if Assigned(FVendedoresComision) then
+ FVendedoresComision := Nil;
+
+ FVendedoresComision := Value;
+end;
+
+{ TBizVendedoresComisionDataTableRules }
+
+procedure TBizVendedoresComisionDataTableRules.calcularComisiones(Total: Double);
+begin
+ with (Self as IBizVendedoresComision) do
+ begin
+ DataTable.DisableControls;
+ First;
+ while not DataTable.Eof do
+ begin
+ Edit;
+ COMISION := (Total * PORCENTAJE) / 100;
+ Post;
+ Next;
+ end;
+ First;
+ DataTable.EnableControls;
+ end;
+end;
+
+initialization
+ RegisterFieldRules(BIZ_SELECCION, TBizSeleccionFieldRules);
+ RegisterDataTableRules(BIZ_CobrosCOMISION, TBizCobrosComisionDataTableRules);
+ RegisterDataTableRules(BIZ_VENDEDORESCOMISION, TBizVendedoresComisionDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Reglas/uBizContacto.pas b/Modulos/Contactos/Reglas/uBizContacto.pas
new file mode 100644
index 0000000..b97b91e
--- /dev/null
+++ b/Modulos/Contactos/Reglas/uBizContacto.pas
@@ -0,0 +1,497 @@
+unit uBizContacto;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schContactosClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls;
+
+const
+ CLIENTE = 1;
+ PROVEEDOR = 2;
+ INSTALADOR = 3;
+ VENDEDOR = 4;
+
+ BIZ_CLIENTE = 'Client.Cliente';
+ BIZ_PROVEEDOR = 'Client.Proveedor';
+ BIZ_VENDEDOR = 'Client.Vendedor';
+ BIZ_INSTALADOR = 'Client.Instalador';
+ BIZ_CATEGORIACONTACTO = 'Client.CategoriaContacto';
+
+ { Contactos fields }
+ fld_ContactosCOMISION = 'COMISION';
+
+type
+ IBizCategoriasContacto = interface(ICategoriasContacto)
+ ['{2E0F9809-1E14-4382-A313-44CD363B3450}']
+ end;
+
+ IBizContacto = interface(ICONTACTOS)
+ ['{800A68B8-8C95-4CEB-B12A-C3D039ACDC14}']
+ function GetCategorias: IBizCategoriasContacto;
+ procedure SetCategorias(const Value: IBizCategoriasContacto);
+ property Categorias: IBizCategoriasContacto read GetCategorias write
+ SetCategorias;
+
+ procedure Show;
+ procedure ShowAll;
+ procedure Preview;
+ function ShowForSelect : TModalResult;
+ procedure CopyFrom(AContacto : IBizContacto);
+ end;
+
+ IBizProveedor = interface(IBizContacto)
+ ['{63B81D43-97D5-412F-99BF-891B5AC9920F}']
+ end;
+
+ IBizCliente = interface(IBizContacto)
+ ['{72BBFEB3-0315-4A8A-A9EA-BBC4CF20820E}']
+ end;
+
+ IBizInstalador = interface(IBizContacto)
+ ['{D70D7308-6A47-4D93-BAC4-FDC0CBD4CDB7}']
+ end;
+
+ IBizVendedor = interface(IBizContacto)
+ ['{A2B5FBCC-11C4-4723-A711-1EB413D2D1A4}']
+ function GetCOMISIONValue: Float;
+ procedure SetCOMISIONValue(const aValue: Float);
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+ procedure CalcularComisiones;
+ end;
+
+ TBizCategoriasContacto = class(TCategoriasContactoDataTableRules,
+ IBizCategoriasContacto)
+ end;
+
+ TBizContactoDataTableRules = class(TCONTACTOSDataTableRules, IBizContacto,
+ IApplyUpdateFailedException, ISelectedRowList)
+ private
+ FCategorias: IBizCategoriasContacto;
+ FCategoriasLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+ procedure ShowToSelect;
+ function OnApplyUpdateFailed: Boolean;
+ protected
+ function GetCategorias: IBizCategoriasContacto;
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure SetCategorias(const Value: IBizCategoriasContacto);
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+ procedure ShowAll; virtual;
+ function ShowForSelect : TModalResult; virtual;
+ procedure CopyFrom(AContacto : IBizContacto);
+ procedure Preview; virtual;
+ property Categorias: IBizCategoriasContacto read GetCategorias write
+ SetCategorias;
+
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ TBizProveedor = class(TBizContactoDataTableRules, IBizProveedor)
+ protected
+ procedure AfterPost(Sender: TDADataTable); override;
+ public
+ procedure Show; override;
+ procedure ShowAll; override;
+ function ShowForSelect : TModalResult; override;
+ end;
+
+ TBizCliente = class(TBizContactoDataTableRules, IBizCliente)
+ protected
+ procedure AfterPost(Sender: TDADataTable); override;
+ public
+ procedure ShowAll; override;
+ procedure Show; override;
+ function ShowForSelect : TModalResult; override;
+ end;
+
+ TBizInstalador = class(TBizContactoDataTableRules, IBizInstalador)
+ protected
+ procedure AfterPost(Sender: TDADataTable); override;
+ public
+ procedure ShowAll; override;
+ procedure Show; override;
+ function ShowForSelect : TModalResult; override;
+ end;
+
+ TBizVendedor = class(TBizContactoDataTableRules, IBizVendedor)
+ protected
+ procedure AfterApplyUpdates(Sender : TDADataTable);
+ procedure AfterPost(Sender: TDADataTable); override;
+ function GetCOMISIONValue: Float;
+ procedure SetCOMISIONValue(const aValue: Float);
+ procedure OnCalcFields(Sender: TDADataTable); override;
+ public
+ procedure ShowAll; override;
+ procedure Show; override;
+ function ShowForSelect : TModalResult; override;
+ procedure CalcularComisiones;
+ property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
+ constructor Create(aDataTable: TDADataTable); override;
+ end;
+
+ procedure ValidarContacto (const AContacto : IBizContacto);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils,
+ uDataModuleContactos, uDataModuleBase, uDataModuleUsuarios, Variants,
+ uDataModuleComisiones;
+
+
+procedure ValidarContacto (const AContacto : IBizContacto);
+begin
+ if Length(AContacto.NOMBRE) = 0 then
+ raise Exception.Create('Debe indicar al menos el nombre');
+end;
+
+
+{
+************************** TBizContactoDataTableRules **************************
+}
+constructor TBizContactoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FCategoriasLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizContactoDataTableRules.Destroy;
+begin
+ FCategorias := NIL;
+ FCategoriasLink.Free;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizContactoDataTableRules.GetCategorias: IBizCategoriasContacto;
+begin
+ Result := FCategorias;
+end;
+
+procedure TBizContactoDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ CODIGO := dmContactos.GetNextAutoinc;
+end;
+
+procedure TBizContactoDataTableRules.SetCategorias(const Value:
+ IBizCategoriasContacto);
+begin
+ FCategorias := Value;
+ FCategoriasLink.DataTable := Self.DataTable;
+ FCategorias.DataTable.MasterSource := FCategoriasLink;
+end;
+
+procedure TBizContactoDataTableRules.Show;
+begin
+ //
+end;
+
+{ TBizCliente }
+
+{
+********************************* TBizCliente **********************************
+}
+procedure TBizCliente.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+ if (Categorias.RecordCount = 0) then
+ begin
+ with Categorias do
+ begin
+ Insert;
+ CODIGOCATEGORIA := CLIENTE;
+ Post;
+ end;
+ end;
+end;
+
+procedure TBizCliente.Show;
+begin
+ inherited;
+ ShowEditor(IBizCliente, Self, etItem);
+end;
+
+{ TBizCategoriasContactoDataTableRules }
+
+
+{ TBizProveedor }
+
+{
+******************************** TBizProveedor *********************************
+}
+procedure TBizProveedor.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+ if (Categorias.RecordCount = 0) then
+ begin
+ with Categorias do
+ begin
+ Insert;
+ CODIGOCATEGORIA := PROVEEDOR;
+ Post;
+ end;
+ end;
+end;
+
+procedure TBizProveedor.Show;
+begin
+ inherited;
+ ShowEditor(IBizProveedor, Self, etItem);
+end;
+
+procedure TBizContactoDataTableRules.Preview;
+begin
+ dmContactos.Preview;
+end;
+
+procedure TBizContactoDataTableRules.ShowAll;
+begin
+ //
+end;
+
+procedure TBizCliente.ShowAll;
+begin
+ inherited;
+ ShowEditor(IBizCliente, Self, etItems);
+end;
+
+procedure TBizProveedor.ShowAll;
+begin
+ inherited;
+ ShowEditor(IBizProveedor, Self, etItems);
+end;
+
+function TBizContactoDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizContactoDataTableRules.ShowToSelect;
+begin
+ //
+end;
+
+function TBizCliente.ShowForSelect : TModalResult;
+begin
+ Result := ShowEditor(IBizCliente, Self, etSelectItems);
+end;
+
+function TBizContactoDataTableRules.ShowForSelect : TModalResult;
+begin
+ //
+end;
+
+function TBizProveedor.ShowForSelect : TModalResult;
+begin
+ Result := ShowEditor(IBizProveedor, Self, etSelectItems);
+end;
+
+{ TBizInstalador }
+
+procedure TBizInstalador.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+ if (Categorias.RecordCount = 0) then
+ begin
+ with Categorias do
+ begin
+ Insert;
+ CODIGOCATEGORIA := INSTALADOR;
+ Post;
+ end;
+ end;
+end;
+
+procedure TBizInstalador.Show;
+begin
+ inherited;
+ ShowEditor(IBizInstalador, Self, etItem);
+end;
+
+procedure TBizInstalador.ShowAll;
+begin
+ inherited;
+ ShowEditor(IBizInstalador, Self, etItems);
+end;
+
+function TBizInstalador.ShowForSelect : TModalResult;
+begin
+ Result := ShowEditor(IBizInstalador, Self, etSelectItems);
+end;
+
+function TBizContactoDataTableRules.OnApplyUpdateFailed: Boolean;
+begin
+ //
+end;
+
+procedure TBizContactoDataTableRules.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este contacto porque tiene documentos dados de alta (como presupuestos, facturas, etc)', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TBizContactoDataTableRules.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmContactos.PuedoEliminarContacto(CODIGO) then
+ raise Exception.Create('No se puede borrar este contacto porque tiene documentos dados de alta (como presupuestos, facturas, etc');
+end;
+
+{ TBizVendedor }
+
+procedure TBizVendedor.AfterApplyUpdates(Sender: TDADataTable);
+begin
+ dmComisiones.SetComision(CODIGO, COMISION);
+end;
+
+procedure TBizVendedor.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+ if (Categorias.RecordCount = 0) then
+ begin
+ with Categorias do
+ begin
+ Insert;
+ CODIGOCATEGORIA := VENDEDOR;
+ Post;
+ end;
+ end;
+end;
+
+procedure TBizVendedor.CalcularComisiones;
+begin
+ dmComisiones.CalcularComisiones;
+end;
+
+constructor TBizVendedor.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ aDataTable.OnAfterApplyUpdates := AfterApplyUpdates;
+end;
+
+function TBizVendedor.GetCOMISIONValue: Float;
+begin
+ Result := DataTable.FieldByName(fld_ContactosCOMISION).AsFloat;
+end;
+
+procedure TBizVendedor.OnCalcFields(Sender: TDADataTable);
+begin
+ inherited;
+ if VarIsNull(DataTable.FieldByName(fld_ContactosCOMISION).AsVariant) and
+ not VarIsNull(DataTable.FieldByName(fld_ContactosCODIGO).AsVariant) then
+ COMISION := dmComisiones.GetComision(CODIGO);
+end;
+
+procedure TBizVendedor.SetCOMISIONValue(const aValue: Float);
+begin
+ DataTable.FieldByName(fld_ContactosCOMISION).AsFloat := aValue;
+end;
+
+procedure TBizVendedor.Show;
+begin
+ inherited;
+ ShowEditor(IBizVendedor, Self, etItem);
+end;
+
+procedure TBizVendedor.ShowAll;
+begin
+ inherited;
+ ShowEditor(IBizVendedor, Self, etItems);
+end;
+
+function TBizVendedor.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizVendedor, Self, etSelectItems);
+end;
+
+procedure TBizContactoDataTableRules.CopyFrom(AContacto: IBizContacto);
+begin
+ //DataTable.DisableEventHandlers;
+ try
+ if not AContacto.DataTable.Active then
+ AContacto.DataTable.Active := True;
+ CODIGOEMPRESA := AContacto.CODIGOEMPRESA;
+ NIFCIF := AContacto.NIFCIF;
+ NOMBRE := AContacto.NOMBRE;
+ CALLE := AContacto.CALLE;
+ PROVINCIA := AContacto.PROVINCIA;
+ POBLACION := AContacto.POBLACION;
+ CODIGOPOSTAL := AContacto.CODIGOPOSTAL;
+ CORREO1 := AContacto.CORREO1;
+ CORREO2 := AContacto.CORREO2;
+ TELEFONO1 := AContacto.TELEFONO1;
+ TELEFONO2 := AContacto.TELEFONO2;
+ MOVIL := AContacto.MOVIL;
+ FAX := AContacto.FAX;
+ NOTAS := AContacto.NOTAS;
+ PERSONACONTACTO := AContacto.PERSONACONTACTO;
+ PAGINAWEB := AContacto.PAGINAWEB;
+ finally
+ //DataTable.EnableEventHandlers;
+ end;
+ Post;
+
+ with Categorias do
+ begin
+ Insert;
+ CODIGOCATEGORIA := AContacto.Categorias.CODIGOCATEGORIA;
+ Post;
+ end;
+end;
+
+procedure TBizContactoDataTableRules.BeforeApplyUpdates(
+ Sender: TDADataTable; const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarContacto(Self);
+ //ctDelete :
+ end;
+end;
+
+procedure TBizContactoDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('Nombre', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar al menos el nombre', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_CATEGORIACONTACTO, TBizCategoriasContacto);
+ RegisterDataTableRules(BIZ_CLIENTE, TBizCliente);
+ RegisterDataTableRules(BIZ_PROVEEDOR, TBizProveedor);
+ RegisterDataTableRules(BIZ_INSTALADOR, TBizInstalador);
+ RegisterDataTableRules(BIZ_VENDEDOR, TBizVendedor);
+
+finalization
+
+end.
diff --git a/Modulos/Contactos/Servidor/schContactosServer_Intf.pas b/Modulos/Contactos/Servidor/schContactosServer_Intf.pas
new file mode 100644
index 0000000..1853192
--- /dev/null
+++ b/Modulos/Contactos/Servidor/schContactosServer_Intf.pas
@@ -0,0 +1,650 @@
+unit schContactosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schContactosClient_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_ContactosDelta = '{180A19A6-D1CF-4681-BDC0-3B59C38D3AAC}';
+ RID_CategoriasContactoDelta = '{3B1B6925-6451-43CC-90F7-5E115C229DD1}';
+ RID_CategoriasDelta = '{63723E47-D160-486B-ADCD-16EF79B30E87}';
+
+type
+ { IContactosDelta }
+ IContactosDelta = interface(ICONTACTOS)
+ ['{180A19A6-D1CF-4681-BDC0-3B59C38D3AAC}']
+ function GetOldCALLEValue: string;
+ function GetOldCODIGOEMPRESAValue: Integer;
+ function GetOldCODIGOPOSTALValue: string;
+ function GetOldCODIGOValue: Integer;
+ function GetOldCORREO1Value: string;
+ function GetOldCORREO2Value: string;
+ function GetOldFAXValue: string;
+ function GetOldFECHAALTAValue: DateTime;
+ function GetOldMOVILValue: string;
+ function GetOldNIFCIFValue: string;
+ function GetOldNOMBREValue: string;
+ function GetOldNOTASValue: string;
+ function GetOldPAGINAWEBValue: string;
+ function GetOldPERSONACONTACTOValue: string;
+ function GetOldPOBLACIONValue: string;
+ function GetOldPROVINCIAValue: string;
+ function GetOldTELEFONO1Value: string;
+ function GetOldTELEFONO2Value: string;
+ function GetOldUSUARIOValue: string;
+ property OldCALLE: string read GetOldCALLEValue;
+ property OldCODIGO: Integer read GetOldCODIGOValue;
+ property OldCODIGOEMPRESA: Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGOPOSTAL: string read GetOldCODIGOPOSTALValue;
+ property OldCORREO1: string read GetOldCORREO1Value;
+ property OldCORREO2: string read GetOldCORREO2Value;
+ property OldFAX: string read GetOldFAXValue;
+ property OldFECHAALTA: DateTime read GetOldFECHAALTAValue;
+ property OldMOVIL: string read GetOldMOVILValue;
+ property OldNIFCIF: string read GetOldNIFCIFValue;
+ property OldNOMBRE: string read GetOldNOMBREValue;
+ property OldNOTAS: string read GetOldNOTASValue;
+ property OldPAGINAWEB: string read GetOldPAGINAWEBValue;
+ property OldPERSONACONTACTO: string read GetOldPERSONACONTACTOValue;
+ property OldPOBLACION: string read GetOldPOBLACIONValue;
+ property OldPROVINCIA: string read GetOldPROVINCIAValue;
+ property OldTELEFONO1: string read GetOldTELEFONO1Value;
+ property OldTELEFONO2: string read GetOldTELEFONO2Value;
+ property OldUSUARIO: string read GetOldUSUARIOValue;
+ end;
+
+ { TContactosBusinessProcessorRules }
+ TContactosBusinessProcessorRules = class(TDABusinessProcessorRules,
+ IContactos, IContactosDelta)
+ protected
+ function GetCALLEValue: string; virtual;
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetCODIGOPOSTALValue: string; virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetCORREO1Value: string; virtual;
+ function GetCORREO2Value: string; virtual;
+ function GetFAXValue: string; virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetMOVILValue: string; virtual;
+ function GetNIFCIFValue: string; virtual;
+ function GetNOMBREValue: string; virtual;
+ function GetNOTASValue: string; virtual;
+ function GetOldCALLEValue: string; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOPOSTALValue: string; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ function GetOldCORREO1Value: string; virtual;
+ function GetOldCORREO2Value: string; virtual;
+ function GetOldFAXValue: string; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ function GetOldMOVILValue: string; virtual;
+ function GetOldNIFCIFValue: string; virtual;
+ function GetOldNOMBREValue: string; virtual;
+ function GetOldNOTASValue: string; virtual;
+ function GetOldPAGINAWEBValue: string; virtual;
+ function GetOldPERSONACONTACTOValue: string; virtual;
+ function GetOldPOBLACIONValue: string; virtual;
+ function GetOldPROVINCIAValue: string; virtual;
+ function GetOldTELEFONO1Value: string; virtual;
+ function GetOldTELEFONO2Value: string; virtual;
+ function GetOldUSUARIOValue: string; virtual;
+ function GetPAGINAWEBValue: string; virtual;
+ function GetPERSONACONTACTOValue: string; virtual;
+ function GetPOBLACIONValue: string; virtual;
+ function GetPROVINCIAValue: string; virtual;
+ function GetTELEFONO1Value: string; virtual;
+ function GetTELEFONO2Value: string; virtual;
+ function GetUSUARIOValue: string; virtual;
+ procedure SetCALLEValue(const aValue: string); virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: string); virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ procedure SetCORREO1Value(const aValue: string); virtual;
+ procedure SetCORREO2Value(const aValue: string); virtual;
+ procedure SetFAXValue(const aValue: string); virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ procedure SetMOVILValue(const aValue: string); virtual;
+ procedure SetNIFCIFValue(const aValue: string); virtual;
+ procedure SetNOMBREValue(const aValue: string); virtual;
+ procedure SetNOTASValue(const aValue: string); virtual;
+ procedure SetPAGINAWEBValue(const aValue: string); virtual;
+ procedure SetPERSONACONTACTOValue(const aValue: string); virtual;
+ procedure SetPOBLACIONValue(const aValue: string); virtual;
+ procedure SetPROVINCIAValue(const aValue: string); virtual;
+ procedure SetTELEFONO1Value(const aValue: string); virtual;
+ procedure SetTELEFONO2Value(const aValue: string); virtual;
+ procedure SetUSUARIOValue(const aValue: string); virtual;
+ property CALLE: string read GetCALLEValue write SetCALLEValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write
+ SetCODIGOEMPRESAValue;
+ property CODIGOPOSTAL: string read GetCODIGOPOSTALValue write
+ SetCODIGOPOSTALValue;
+ property CORREO1: string read GetCORREO1Value write SetCORREO1Value;
+ property CORREO2: string read GetCORREO2Value write SetCORREO2Value;
+ property FAX: string read GetFAXValue write SetFAXValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property MOVIL: string read GetMOVILValue write SetMOVILValue;
+ property NIFCIF: string read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: string read GetNOMBREValue write SetNOMBREValue;
+ property NOTAS: string read GetNOTASValue write SetNOTASValue;
+ property OldCALLE: string read GetOldCALLEValue;
+ property OldCODIGO: Integer read GetOldCODIGOValue;
+ property OldCODIGOEMPRESA: Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGOPOSTAL: string read GetOldCODIGOPOSTALValue;
+ property OldCORREO1: string read GetOldCORREO1Value;
+ property OldCORREO2: string read GetOldCORREO2Value;
+ property OldFAX: string read GetOldFAXValue;
+ property OldFECHAALTA: DateTime read GetOldFECHAALTAValue;
+ property OldMOVIL: string read GetOldMOVILValue;
+ property OldNIFCIF: string read GetOldNIFCIFValue;
+ property OldNOMBRE: string read GetOldNOMBREValue;
+ property OldNOTAS: string read GetOldNOTASValue;
+ property OldPAGINAWEB: string read GetOldPAGINAWEBValue;
+ property OldPERSONACONTACTO: string read GetOldPERSONACONTACTOValue;
+ property OldPOBLACION: string read GetOldPOBLACIONValue;
+ property OldPROVINCIA: string read GetOldPROVINCIAValue;
+ property OldTELEFONO1: string read GetOldTELEFONO1Value;
+ property OldTELEFONO2: string read GetOldTELEFONO2Value;
+ property OldUSUARIO: string read GetOldUSUARIOValue;
+ property PAGINAWEB: string read GetPAGINAWEBValue write SetPAGINAWEBValue;
+ property PERSONACONTACTO: string read GetPERSONACONTACTOValue write
+ SetPERSONACONTACTOValue;
+ property POBLACION: string read GetPOBLACIONValue write SetPOBLACIONValue;
+ property PROVINCIA: string read GetPROVINCIAValue write SetPROVINCIAValue;
+ property TELEFONO1: string read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: string read GetTELEFONO2Value write SetTELEFONO2Value;
+ property USUARIO: string read GetUSUARIOValue write SetUSUARIOValue;
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+ end;
+
+ { ICategoriasContactoDelta }
+ ICategoriasContactoDelta = interface(ICategoriasContacto)
+ ['{3B1B6925-6451-43CC-90F7-5E115C229DD1}']
+ function GetOldCODIGOCATEGORIAValue: Integer;
+ function GetOldCODIGOCONTACTOValue: Integer;
+ property OldCODIGOCATEGORIA: Integer read GetOldCODIGOCATEGORIAValue;
+ property OldCODIGOCONTACTO: Integer read GetOldCODIGOCONTACTOValue;
+ end;
+
+ { TCategoriasContactoBusinessProcessorRules }
+ TCategoriasContactoBusinessProcessorRules = class(TDABusinessProcessorRules,
+ ICategoriasContacto, ICategoriasContactoDelta)
+ protected
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCATEGORIAValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write
+ SetCODIGOCATEGORIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write
+ SetCODIGOCONTACTOValue;
+ property OldCODIGOCATEGORIA: Integer read GetOldCODIGOCATEGORIAValue;
+ property OldCODIGOCONTACTO: Integer read GetOldCODIGOCONTACTOValue;
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+ end;
+
+ { ICategoriasDelta }
+ ICategoriasDelta = interface(ICATEGORIAS)
+ ['{63723E47-D160-486B-ADCD-16EF79B30E87}']
+ function GetOldCODIGOValue: Integer;
+ function GetOldDESCRIPCIONValue: string;
+ property OldCODIGO: Integer read GetOldCODIGOValue;
+ property OldDESCRIPCION: string read GetOldDESCRIPCIONValue;
+ end;
+
+ { TCategoriasBusinessProcessorRules }
+ TCategoriasBusinessProcessorRules = class(TDABusinessProcessorRules,
+ ICategorias, ICategoriasDelta)
+ protected
+ function GetCODIGOValue: Integer; virtual;
+ function GetDESCRIPCIONValue: string; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ function GetOldDESCRIPCIONValue: string; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ procedure SetDESCRIPCIONValue(const aValue: string); virtual;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property DESCRIPCION: string read GetDESCRIPCIONValue write
+ SetDESCRIPCIONValue;
+ property OldCODIGO: Integer read GetOldCODIGOValue;
+ property OldDESCRIPCION: string read GetOldDESCRIPCIONValue;
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TContactosBusinessProcessorRules }
+{
+*********************** TContactosBusinessProcessorRules ***********************
+}
+constructor TContactosBusinessProcessorRules.Create(aBusinessProcessor:
+ TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TContactosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TContactosBusinessProcessorRules.GetCALLEValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE];
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOEMPRESA];
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOPOSTALValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOPOSTAL];
+end;
+
+function TContactosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO];
+end;
+
+function TContactosBusinessProcessorRules.GetCORREO1Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO1];
+end;
+
+function TContactosBusinessProcessorRules.GetCORREO2Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO2];
+end;
+
+function TContactosBusinessProcessorRules.GetFAXValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX];
+end;
+
+function TContactosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHAALTA];
+end;
+
+function TContactosBusinessProcessorRules.GetMOVILValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL];
+end;
+
+function TContactosBusinessProcessorRules.GetNIFCIFValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIFCIF];
+end;
+
+function TContactosBusinessProcessorRules.GetNOMBREValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE];
+end;
+
+function TContactosBusinessProcessorRules.GetNOTASValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCALLEValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCALLE];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGOEMPRESA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOPOSTALValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGOPOSTAL];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCODIGO];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCORREO1Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCORREO1];
+end;
+
+function TContactosBusinessProcessorRules.GetOldCORREO2Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosCORREO2];
+end;
+
+function TContactosBusinessProcessorRules.GetOldFAXValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFAX];
+end;
+
+function TContactosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosFECHAALTA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldMOVILValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosMOVIL];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNIFCIFValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNIFCIF];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNOMBREValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOMBRE];
+end;
+
+function TContactosBusinessProcessorRules.GetOldNOTASValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosNOTAS];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPAGINAWEBValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPAGINAWEB];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPERSONACONTACTOValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPERSONACONTACTO];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPOBLACIONValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPOBLACION];
+end;
+
+function TContactosBusinessProcessorRules.GetOldPROVINCIAValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosPROVINCIA];
+end;
+
+function TContactosBusinessProcessorRules.GetOldTELEFONO1Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO1];
+end;
+
+function TContactosBusinessProcessorRules.GetOldTELEFONO2Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosTELEFONO2];
+end;
+
+function TContactosBusinessProcessorRules.GetOldUSUARIOValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContactosUSUARIO];
+end;
+
+function TContactosBusinessProcessorRules.GetPAGINAWEBValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINAWEB];
+end;
+
+function TContactosBusinessProcessorRules.GetPERSONACONTACTOValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONACONTACTO];
+end;
+
+function TContactosBusinessProcessorRules.GetPOBLACIONValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION];
+end;
+
+function TContactosBusinessProcessorRules.GetPROVINCIAValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA];
+end;
+
+function TContactosBusinessProcessorRules.GetTELEFONO1Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO1];
+end;
+
+function TContactosBusinessProcessorRules.GetTELEFONO2Value: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO2];
+end;
+
+function TContactosBusinessProcessorRules.GetUSUARIOValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO];
+end;
+
+procedure TContactosBusinessProcessorRules.SetCALLEValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCALLE] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue:
+ Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOEMPRESA] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGOPOSTAL] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetCODIGOValue(const aValue:
+ Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCODIGO] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetCORREO1Value(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO1] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetCORREO2Value(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosCORREO2] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetFAXValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFAX] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetFECHAALTAValue(const aValue:
+ DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosFECHAALTA] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetMOVILValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosMOVIL] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetNIFCIFValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNIFCIF] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetNOMBREValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOMBRE] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetNOTASValue(const aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosNOTAS] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetPAGINAWEBValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPAGINAWEB] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetPERSONACONTACTOValue(const
+ aValue: string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPERSONACONTACTO] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetPOBLACIONValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPOBLACION] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetPROVINCIAValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosPROVINCIA] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetTELEFONO1Value(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO1] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetTELEFONO2Value(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosTELEFONO2] := aValue;
+end;
+
+procedure TContactosBusinessProcessorRules.SetUSUARIOValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ContactosUSUARIO] := aValue;
+end;
+
+
+{ TCategoriasContactoBusinessProcessorRules }
+{
+****************** TCategoriasContactoBusinessProcessorRules *******************
+}
+constructor TCategoriasContactoBusinessProcessorRules.Create(
+ aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCategoriasContactoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetCODIGOCATEGORIAValue:
+ Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCATEGORIA];
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetCODIGOCONTACTOValue:
+ Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCONTACTO];
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetOldCODIGOCATEGORIAValue:
+ Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasContactoCODIGOCATEGORIA];
+end;
+
+function TCategoriasContactoBusinessProcessorRules.GetOldCODIGOCONTACTOValue:
+ Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasContactoCODIGOCONTACTO];
+end;
+
+procedure TCategoriasContactoBusinessProcessorRules.SetCODIGOCATEGORIAValue(
+ const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCATEGORIA] := aValue;
+end;
+
+procedure TCategoriasContactoBusinessProcessorRules.SetCODIGOCONTACTOValue(
+ const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasContactoCODIGOCONTACTO] := aValue;
+end;
+
+
+{ TCategoriasBusinessProcessorRules }
+{
+********************** TCategoriasBusinessProcessorRules ***********************
+}
+constructor TCategoriasBusinessProcessorRules.Create(aBusinessProcessor:
+ TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCategoriasBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCategoriasBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasCODIGO];
+end;
+
+function TCategoriasBusinessProcessorRules.GetDESCRIPCIONValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasDESCRIPCION];
+end;
+
+function TCategoriasBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasCODIGO];
+end;
+
+function TCategoriasBusinessProcessorRules.GetOldDESCRIPCIONValue: string;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CategoriasDESCRIPCION];
+end;
+
+procedure TCategoriasBusinessProcessorRules.SetCODIGOValue(const aValue:
+ Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasCODIGO] := aValue;
+end;
+
+procedure TCategoriasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue:
+ string);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CategoriasDESCRIPCION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_ContactosDelta, TContactosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_CategoriasContactoDelta, TCategoriasContactoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_CategoriasDelta, TCategoriasBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Contactos/Servidor/srvContactos_Impl.ddp b/Modulos/Contactos/Servidor/srvContactos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Contactos/Servidor/srvContactos_Impl.ddp differ
diff --git a/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Modulos/Contactos/Servidor/srvContactos_Impl.dfm
new file mode 100644
index 0000000..b5e3540
--- /dev/null
+++ b/Modulos/Contactos/Servidor/srvContactos_Impl.dfm
@@ -0,0 +1,837 @@
+object srvContactos: TsrvContactos
+ OldCreateOrder = True
+ OnCreate = DARemoteServiceCreate
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ OnActivate = DARemoteServiceActivate
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schContactos
+ ServiceAdapter = DABINAdapter
+ Left = 617
+ Top = 313
+ Height = 354
+ Width = 450
+ object schContactos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CONTACTOS'
+ SQL =
+ 'SELECT DISTINCT CONTACTOS.CODIGOEMPRESA, CONTACTOS.CODIGO, CONTA' +
+ 'CTOS.FECHAALTA, CONTACTOS.USUARIO, CONTACTOS.NIFCIF, CONTACTOS.N' +
+ 'OMBRE, CONTACTOS.NOTAS, CONTACTOS.CALLE, CONTACTOS.PROVINCIA, CO' +
+ 'NTACTOS.CODIGOPOSTAL, CONTACTOS.POBLACION, CONTACTOS.TELEFONO1, ' +
+ 'CONTACTOS.TELEFONO2, CONTACTOS.MOVIL, CONTACTOS.FAX, CONTACTOS.C' +
+ 'ORREO1, CONTACTOS.CORREO2, CONTACTOS.PAGINAWEB, CONTACTOS.PERSON' +
+ 'ACONTACTO'#10'FROM CONTACTOSCATEGORIAS'#10' INNER JOIN CONTACTOS ON (C' +
+ 'ONTACTOSCATEGORIAS.CODIGOCONTACTO = CONTACTOS.CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'NOTAS'
+ TableField = 'NOTAS'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end
+ item
+ DatasetField = 'FAX'
+ TableField = 'FAX'
+ end
+ item
+ DatasetField = 'CORREO1'
+ TableField = 'CORREO1'
+ end
+ item
+ DatasetField = 'CORREO2'
+ TableField = 'CORREO2'
+ end
+ item
+ DatasetField = 'PAGINAWEB'
+ TableField = 'PAGINAWEB'
+ end
+ item
+ DatasetField = 'PERSONACONTACTO'
+ TableField = 'PERSONACONTACTO'
+ end>
+ end>
+ Name = 'Contactos'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOTAS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TELEFONOPARTICULAR'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TELEFONOTRABAJO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO1'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CORREO1'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO2'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CORREO2'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PAGINAWEB'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PAGINAWEB'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CONTACTOSCATEGORIAS'
+ SQL =
+ 'SELECT '#10' CODIGOCONTACTO, CODIGOCATEGORIA'#10' FROM'#10' CONTACTOS' +
+ 'CATEGORIAS'#10' WHERE CODIGOCONTACTO = :CODIGOCONTACTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'CODIGOCATEGORIA'
+ TableField = 'CODIGOCATEGORIA'
+ end>
+ end>
+ Name = 'CategoriasContacto'
+ Fields = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCATEGORIA'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CATEGORIAS'
+ SQL = 'SELECT '#10' CODIGO, DESCRIPCION'#10' FROM'#10' CATEGORIAS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end>
+ end>
+ Name = 'Categorias'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CATEGORIAS'
+ DictionaryEntry = 'CODIGOCATEGORIA_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ 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 = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CONTACTOS'
+ SQL = 'DELETE '#10' FROM'#10' CONTACTOS'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Contactos'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_CategoriasContacto_Contactos'
+ MasterDatasetName = 'Contactos'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'CategoriasContacto'
+ DetailFields = 'CODIGOCONTACTO'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert Contactos'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'Contactos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update Contactos'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'Contactos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete CategoriasContacto'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'CategoriasContacto'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert CategoriasContacto'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'CategoriasContacto'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update CategoriasContacto'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'CategoriasContacto'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete Contactos'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'Contactos'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 40
+ Top = 16
+ end
+ object frxReport1: TfrxReport
+ Version = '3.15'
+ 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.761816215280000000
+ ReportOptions.LastChange = 38658.776815497690000000
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'begin'
+ ''
+ 'end.')
+ Left = 296
+ Top = 16
+ Datasets = <
+ item
+ DataSet = frxDBDataset1
+ DataSetName = 'frxDBDataset1'
+ end>
+ Variables = <>
+ Style = <>
+ object Page1: TfrxReportPage
+ PaperWidth = 210.000000000000000000
+ PaperHeight = 297.000000000000000000
+ PaperSize = 9
+ LeftMargin = 10.000000000000000000
+ RightMargin = 10.000000000000000000
+ TopMargin = 10.000000000000000000
+ BottomMargin = 10.000000000000000000
+ object MasterData1: TfrxMasterData
+ Height = 22.677180000000000000
+ Top = 18.897650000000000000
+ Width = 718.110700000000000000
+ DataSet = frxDBDataset1
+ DataSetName = 'frxDBDataset1'
+ RowCount = 0
+ object Memo1: TfrxMemoView
+ Left = 3.779530000000000000
+ Width = 79.370130000000000000
+ Height = 18.897650000000000000
+ DataSet = frxDBDataset1
+ DataSetName = 'frxDBDataset1'
+ Memo.Strings = (
+ '[frxDBDataset1."nombre"]')
+ end
+ end
+ end
+ end
+ object DACDSDataTable1: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CONTACTOS'
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOTAS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONOPARTICULAR'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TELEFONOTRABAJO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'MOVIL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FAX'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO1'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CORREO1'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CORREO2'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CORREO2'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PAGINAWEB'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PAGINAWEB'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PERSONACONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ LocalSchema = schContactos
+ LocalConnection = 'IBX'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Contactos'
+ IndexDefs = <>
+ Left = 296
+ Top = 72
+ end
+ object DADataSource1: TDADataSource
+ DataTable = DACDSDataTable1
+ Left = 352
+ Top = 72
+ end
+ object frxDBDataset1: TfrxDBDataset
+ UserName = 'frxDBDataset1'
+ CloseDataSource = True
+ DataSource = DADataSource1
+ Left = 352
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Modulos/Contactos/Servidor/srvContactos_Impl.pas b/Modulos/Contactos/Servidor/srvContactos_Impl.pas
new file mode 100644
index 0000000..2e42260
--- /dev/null
+++ b/Modulos/Contactos/Servidor/srvContactos_Impl.pas
@@ -0,0 +1,113 @@
+unit srvContactos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor,
+ uDAClasses, uDADataTable, uDAInterfaces, uDAEngine, uDAIBXDriver, DB,
+ IBDatabase, frxClass, frxIBXComponents, uDACDSDataTable, uDABINAdapter,
+ frxDBSet, frxExportPDF;
+
+type
+ { TsrvContactos }
+ TsrvContactos = class(TDARemoteService, IsrvContactos)
+ DACDSDataTable1: TDACDSDataTable;
+ DADataSource1: TDADataSource;
+ frxDBDataset1: TfrxDBDataset;
+ frxReport1: TfrxReport;
+ schContactos: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ procedure DARemoteServiceActivate(const aClientID: TGUID; aSession:
+ TROSession; const aMessage: IROMessage);
+ procedure DARemoteServiceCreate(Sender: TObject);
+ protected
+ function GenerateReport: Binary;
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarContacto(const CodigoContacto: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk,
+ Dialogs, schContactosClient_Intf, fServerForm, IB,
+ Variants, schContactosServer_Intf, uDataModuleServer;
+
+procedure Create_srvContactos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvContactos.Create(NIL);
+end;
+
+{ srvContactos }
+{
+******************************** TsrvContactos *********************************
+}
+procedure TsrvContactos.DARemoteServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+begin
+ ((Connection as IDAConnectionObjectAccess).ConnectionObject as
+ TIBXConnection).Database.TraceFlags := [tfQPrepare, tfQExecute, tfQFetch, tfError, tfStmt, tfConnect, tfTransact, tfBlob, tfService, tfMisc];
+end;
+
+function TsrvContactos.GenerateReport: Binary;
+var
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ DACDSDataTable1.Active := True;
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(AStream);
+ Result.LoadFromStream(AStream);
+ finally
+ DACDSDataTable1.Active := False;
+ AStream.Free;
+ end;
+end;
+
+procedure TsrvContactos.DARemoteServiceCreate(Sender: TObject);
+begin
+ //RequiresSession := True;
+end;
+
+function TsrvContactos.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_CONTACTOS');
+end;
+
+function TsrvContactos.PuedoEliminarContacto(
+ const CodigoContacto: Integer): Boolean;
+var
+ dsContacto: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsContacto := schContactos.NewCommand(Connection, 'Delete_Contactos', ['OLD_CODIGO'], [CodigoContacto]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvContactos', Create_srvContactos, TsrvContactos_Invoker);
+
+finalization
+
+end.
+
diff --git a/Modulos/Cuentas/Cliente/Cuentas.bdsproj b/Modulos/Cuentas/Cliente/Cuentas.bdsproj
new file mode 100644
index 0000000..5fa7ab6
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/Cuentas.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Cuentas.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Modulos/Cuentas/Cliente/Cuentas.cfg b/Modulos/Cuentas/Cliente/Cuentas.cfg
new file mode 100644
index 0000000..5ba1fcf
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/Cuentas.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Cuentas/Cliente/Cuentas.dcp b/Modulos/Cuentas/Cliente/Cuentas.dcp
new file mode 100644
index 0000000..e9fce86
Binary files /dev/null and b/Modulos/Cuentas/Cliente/Cuentas.dcp differ
diff --git a/Modulos/Cuentas/Cliente/Cuentas.dof b/Modulos/Cuentas/Cliente/Cuentas.dof
new file mode 100644
index 0000000..442cfd0
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/Cuentas.dof
@@ -0,0 +1,177 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Cuentas/Cliente/Cuentas.dpk b/Modulos/Cuentas/Cliente/Cuentas.dpk
new file mode 100644
index 0000000..6eb0390
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/Cuentas.dpk
@@ -0,0 +1,86 @@
+package Cuentas;
+
+{$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 OFF}
+
+requires
+ vcl,
+ rtl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PNG_D7,
+ PngComponentsD7,
+ dbrtl,
+ vcldb,
+ dsnap,
+ adortl,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ vclactnband,
+ designide,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ BaseD7,
+ Usuarios,
+ dxPSCoreD7,
+ dxComnD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ frx7,
+ fs7,
+ fqb70,
+ bdertl,
+ ccpack70,
+ cfpack;
+
+contains
+ uBizCuentas in '..\Reglas\uBizCuentas.pas',
+ uDataModuleCuentas in 'uDataModuleCuentas.pas' {dmCuentas: TDAClientDataModule},
+ uPluginControllerCuentas in 'uPluginControllerCuentas.pas' {ModuleCuentas: TModuleController},
+ uViewCuentas in 'uViewCuentas.pas' {frViewCuentas: TCustomView},
+ uEditorCuentas in 'uEditorCuentas.pas' {fEditorCuentas: TCustomEditor},
+ uViewCuenta in 'uViewCuenta.pas' {frViewCuenta: TCustomView},
+ uEditorCuenta in 'uEditorCuenta.pas' {fEditorCuenta: TCustomEditor},
+ uListaCuentas in 'uListaCuentas.pas' {frListaCuentas: TCustomView},
+ schCuentasClient_Intf in '..\Reglas\schCuentasClient_Intf.pas',
+ schCuentasServer_Intf in '..\Reglas\schCuentasServer_Intf.pas';
+
+end.
diff --git a/Modulos/Cuentas/Cliente/Cuentas.drc b/Modulos/Cuentas/Cliente/Cuentas.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/Cuentas.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Cuentas/Cliente/Cuentas.res b/Modulos/Cuentas/Cliente/Cuentas.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Cuentas/Cliente/Cuentas.res differ
diff --git a/Modulos/Cuentas/Cliente/uDataModuleCuentas.ddp b/Modulos/Cuentas/Cliente/uDataModuleCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uDataModuleCuentas.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uDataModuleCuentas.dfm b/Modulos/Cuentas/Cliente/uDataModuleCuentas.dfm
new file mode 100644
index 0000000..294f555
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uDataModuleCuentas.dfm differ
diff --git a/Modulos/Cuentas/Cliente/uDataModuleCuentas.pas b/Modulos/Cuentas/Cliente/uDataModuleCuentas.pas
new file mode 100644
index 0000000..62f4414
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uDataModuleCuentas.pas
@@ -0,0 +1,88 @@
+unit uDataModuleCuentas;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizCuentas;
+
+type
+ TdmCuentas = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Cuentas: TDACDSDataTable;
+ ds_Cuentas: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetItems: IBizCuenta;
+ function GetItem(Codigo : Integer): IBizCuenta;
+ function PuedoEliminarCuenta(Codigo : Integer) : Boolean;
+ end;
+
+var
+ dmCuentas: TdmCuentas;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schCuentasClient_Intf, uDataModuleBase, uDBSelectionList;
+
+
+procedure TdmCuentas.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmCuentas.GetItems: IBizCuenta;
+var
+ dtCuentas: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCuentas := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Cuentas, dtCuentas);
+ dtCuentas.BusinessRulesID := BIZ_CUENTA;
+ Result := (dtCuentas as IBizCuenta);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmCuentas.GetItem(Codigo: Integer): IBizCuenta;
+var
+ ACuenta: IBizCuenta;
+begin
+ ACuenta := GetItems;
+ with ACuenta.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_CuentasCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := ACuenta;
+end;
+
+function TdmCuentas.PuedoEliminarCuenta(Codigo: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvCuentas).PuedoEliminarCuenta(Codigo);
+end;
+
+initialization
+ dmCuentas := TdmCuentas.Create(nil);
+
+finalization
+ FreeAndNil(dmCuentas);
+
+end.
+
diff --git a/Modulos/Cuentas/Cliente/uEditorCuenta.ddp b/Modulos/Cuentas/Cliente/uEditorCuenta.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uEditorCuenta.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uEditorCuenta.dfm b/Modulos/Cuentas/Cliente/uEditorCuenta.dfm
new file mode 100644
index 0000000..d26400c
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uEditorCuenta.dfm
@@ -0,0 +1,132 @@
+inherited fEditorCuenta: TfEditorCuenta
+ Left = 408
+ Top = 316
+ HorzScrollBar.Visible = False
+ VertScrollBar.Range = 0
+ VertScrollBar.Visible = False
+ BorderStyle = bsDialog
+ Caption = 'Ficha de cuenta'
+ ClientHeight = 459
+ ClientWidth = 630
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 630
+ Caption = 'Cuenta'
+ inherited Image1: TImage
+ Left = 603
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000002F14944415478DAB5960B4814
+ 411CC6BFBD67E74964266260986447A8216A6686585964929251529410598969
+ 709C65566A6826667948662565080549450749412F2AA21222148C42E8454660
+ 6698A9F7DADB6B678E3D1F3BA517F687657761E6FBFDBF6F66D8E5DC6E37FE67
+ 71D283E561D7A4A4ACD4686E2A632B6BCFA2E3EE396E14B0E99ADB92BF081B56
+ 453127F40F0CE3DB8F21747FEAA3EF86B02004CDD663CE2C7FE6F8D8B4BDE8E8
+ 35009D468E23E2F09F074B8E9E02F2DAECB2094D195AEFC4F6B606A8940AE4DF
+ 7630C5C9582F60C15CC80013ABBB1F303FB7A3719D1A09EB0BF1D4520FD30337
+ 4C495A1802D911F90420E570BAE0E45D48CE32E2D17533542A05D42A2575A250
+ 70BE015811995773E079012B379B70BFF5A428AC44F1638ED98C4F1191CE3BFB
+ 94687E654775328F355B0EE0CE951338FA4283DC382D22031CD069D532175302
+ 08821B56BB9376CEBB484402D2B71FC4AD966A3122A51891823AD1CD50CBA2F2
+ 39A28A650E11E442E68EC3B8D95C45058FBDD4FD5B44A473DE25D045B5890EDE
+ 8FE86944876287B131B714ADE72B50D73513654BACD4098968E2A2FF1190B922
+ D22B4EA2F144E4C2AF11078D247B4F392E9F29A7621AB547D01391721C243EBD
+ 800D58BBDC00E33D4166BB287A9042730A2B71A9FE08153AFD36801951439A0A
+ 8919FBD880D4A511B463A7E882DC6D0E1EED3F03F1E4831DF911DFB1D3781C4D
+ A74A70F1633052C2B588D7F7C18F3818B3E8C409392F4C404A5CB8579C444400
+ A473E9CADB5F83C69A626F1CE4D2EB343496B110725E9880A49830943D53CB6C
+ EF9ADF4B810525B5A8AF2AA2C22D3D21CC88A4F3C2042444857AF6BD20D0FB88
+ CD8181412BAEF686625BC817184BEB60AE34D1F7ADC13DD0FB69C48834E3169D
+ 3821E7850958BC30840A4B91586D4E7A275B9794A9DC4C0152912D4976911497
+ 0422DB9909201F8AE92A1980D46EFECDB4885F783DE87998084067FBB439404C
+ 2230F479F493F9D7C15203634B9C3C69DDC8E6B8C947311A78F7957E6FA73295
+ FBDFBF2DBF01AB269FECD6A6E3080000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 630
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 630
+ Height = 364
+ inherited pagGeneral: TTabSheet
+ Constraints.MinHeight = 140
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 440
+ Width = 630
+ end
+ inherited EditorActionList: TActionList
+ Top = 128
+ end
+ inherited SmallImages: TPngImageList
+ Top = 112
+ end
+ inherited dsDataTable: TDADataSource [6]
+ OnDataChange = dsDataTableDataChange
+ Left = 168
+ Top = 120
+ end
+ inherited LargeImages: TPngImageList [7]
+ Top = 112
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uEditorCuenta.pas b/Modulos/Cuentas/Cliente/uEditorCuenta.pas
new file mode 100644
index 0000000..535fb6b
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uEditorCuenta.pas
@@ -0,0 +1,149 @@
+unit uEditorCuenta;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, ActnList, uEditorBase, StdActns, TB2Dock, TB2Toolbar,
+ TBX, ImgList, PngImageList, TB2Item, uEditorItem, DB, uDADataTable,
+ uEditorDBBase, JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable,
+ StdCtrls, pngimage, ExtCtrls, TBXDkPanels, JvButton, AppEvnts, uCustomView,
+ uViewBase, JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+
+ uViewCuenta, uBizCuentas;
+
+type
+ IEditorCuenta = interface(IEditorDBItem)
+ ['{BADE8E8B-B0BC-4759-B2EE-4B4082827BE0}']
+ function GetCuenta: IBizCuenta;
+ procedure SetCuenta(const Value: IBizCuenta);
+ property Cuenta: IBizCuenta read GetCuenta write SetCuenta;
+ end;
+
+ TfEditorCuenta = class(TfEditorDBItem, IEditorCuenta)
+
+ procedure FormShow(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure actEliminarExecute(Sender: TObject);
+ private
+ FCuenta: IBizCuenta;
+ FViewCuenta : IViewCuenta;
+ protected
+ function GetCuenta: IBizCuenta; virtual;
+ procedure SetCuenta(const Value: IBizCuenta); virtual;
+
+ function GetViewCuenta: IViewCuenta;
+ procedure SetViewCuenta(const Value: IViewCuenta);
+ property ViewCuenta: IViewCuenta read GetViewCuenta write
+ SetViewCuenta;
+ public
+ property Cuenta: IBizCuenta read GetCuenta write SetCuenta;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uEditorUtils;
+
+function ShowEditorCuenta (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorCuenta;
+begin
+ AEditor := TfEditorCuenta.Create(Application);
+ try
+ AEditor.Cuenta := (ABizObject as IBizCuenta);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+******************************* TfEditorCuenta *******************************
+}
+function TfEditorCuenta.GetCuenta: IBizCuenta;
+begin
+ Result := FCuenta;
+end;
+
+function TfEditorCuenta.GetViewCuenta: IViewCuenta;
+begin
+ Result := FViewCuenta;
+end;
+
+procedure TfEditorCuenta.SetCuenta(const Value: IBizCuenta);
+begin
+ FCuenta := Value;
+ dsDataTable.DataTable := FCuenta.DataTable;
+
+ if Assigned(FViewCuenta) and Assigned(Cuenta) then
+ FViewCuenta.Cuenta := Cuenta;
+end;
+
+procedure TfEditorCuenta.SetViewCuenta(const Value: IViewCuenta);
+begin
+ FViewCuenta := Value;
+
+ if Assigned(FViewCuenta) and Assigned(Cuenta) then
+ FViewCuenta.Cuenta := Cuenta;
+end;
+
+procedure TfEditorCuenta.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewCuenta) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Cuenta) then
+ raise Exception.Create('No hay ninguna cuenta asignado');
+
+ Cuenta.DataTable.Active := True;
+ FViewCuenta.ShowEmbedded(pagGeneral);
+ FViewCuenta.SetFocus;
+end;
+
+destructor TfEditorCuenta.Destroy;
+begin
+ FViewCuenta := NIL;
+ FCuenta := NIL;
+ inherited;
+end;
+
+constructor TfEditorCuenta.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewCuenta := CreateView(TfrViewCuenta) as IViewCuenta;
+end;
+
+procedure TfEditorCuenta.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(FCuenta) and (not (FCuenta.DataTable.Fetching) or
+ not (FCuenta.DataTable.Opening) or not (FCuenta.DataTable.Closing)) then
+ begin
+ if Length(FCuenta.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nueva cuenta'
+ else
+ JvNavPanelHeader.Caption := 'Cuenta - ' + FCuenta.Nombre;
+ Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorCuenta.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Está seguro que desea borrar esta cuenta?, se borrarán todos sus asientos.', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+initialization
+ RegisterEditor(IBizCuenta, ShowEditorCuenta, etItem);
+
+end.
+
diff --git a/Modulos/Cuentas/Cliente/uEditorCuentas.ddp b/Modulos/Cuentas/Cliente/uEditorCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uEditorCuentas.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uEditorCuentas.dfm b/Modulos/Cuentas/Cliente/uEditorCuentas.dfm
new file mode 100644
index 0000000..64ade64
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uEditorCuentas.dfm
@@ -0,0 +1,1435 @@
+inherited fEditorCuentas: TfEditorCuentas
+ Left = 247
+ Top = 222
+ Caption = 'Lista de cuentas'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de cuentas'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000004184944415478DAB5956D6C53
+ 5518C7FFB51DAC5DDD708C1637E858BACD4DB7B0E150E30BA27C40067C923895
+ 2FCA07256498A841488C41741247B0716FBE2C324894619097958EB1267B6163
+ 5BE7EA149DA3AC0912DC24A332D8FA7EDBDE5BCF39B5775C486F3F719AF3E13E
+ E79EDFEF3ECF737BAE221A8DE27E0EC59D0285422159ACAEFE8D2D3636962BEE
+ 8EE7AAAA9093FD205EFF6054B2B66E7551B46BC4A1482AA090479E984659B101
+ A90B552CF6AF4B40475B10149EBAAA0E46830E4B32B56CCD757D12A68FAAA154
+ 02565B12411CFEE44A234A0A0D2C3662BF8113C76F89F0FC5C1D1E2F31225DAB
+ 817D64181FBFF716F6EF5E81DAAF2671B2FBCFC48238FCA9B27C3C9ABF1C51F2
+ B3D95C309F9E8717ACD0A382C0B5696A0C0F0EE0D3DD3BF0C9FBB958AA5B805D
+ 357F2516ECDC7991C19F5E558062E33208421483432E58CCF3F0C2BCA5585D6A
+ 84469D0A1B81D710F83E027F98C0E9482AC8C80C63EE568AA4D9149E68740E3E
+ 80E6DA02F13AA960CD9A5C09A0A9A90E9BCA8F6163551532753AC9DAF090030D
+ F53DA22012E6B1A7F61A4EC9093656164A209FD71E6082D7B6BF0D7D4E8E64AD
+ A37D14F5260BBED96F04CF47112282BDA6299CEA9111BCB0D6001A8BF0118438
+ 0E875A5A6219BC5A85C524037A7B84C0829C80DEEE71FC78F4021AF6E5211C11
+ 1026829A86EB38DD3B9E585054A421CD15E0F5BA61B576B038151497AD8446AB
+ 65823977187F4FF96169BFC4D60F7E6860703A0F34BBD02627A025A2211AA769
+ 7F613A2829118DD3CCFC5E2FAC9D1771A465009FEDCA26F5175889EA0ECFA0ED
+ BC8CA07243217B3D293C4C3635349A24022E1864703ABBBBC6D1DA6AC7DE77F4
+ A4443C1108F8FA87DB30F75D4A2C78697D0101C7E01152D76F9BBF14058BB2B2
+ E0F37844417F9F13274EFE813DDBB3C41E7C77DC8D337282752FE62314E29984
+ 0A0E1FA9678297DF7C03DA8C8C7981C78BA1A1AB38737602EF6E7BE8FF3D02BE
+ 37FB60E997113CF76C1EB959886540E6D1634D4C5059F50AD24893BD62063E72
+ 3E4DC2DA750D3BB6A6830BC59AFCD3B9202C171C8905A5258B193C148A204C36
+ 7574B63241F933CF439D96C6C05E8F9F4C1F1C976FE2E7D19BD8B645038EE349
+ C63CCC3D11B4CB0952525CE0C98D01D24CA7F377F1351516E8214495080478CC
+ CE72989DE3F0CF34C7D6B76E5E2866D03910C5D9011941C963D9E4C9E34D2637
+ 9F6B6682D28A0A28552A04FC7E04C9A4657238DDF8652C882DEB552483082CE7
+ 816EFB65E9097DCF61971E60A9068321F2B4014C38ED4CA05EB48C65E0F771F0
+ 7839B8E78298B91DC68D19019BD74284538EAC80E3AE8AD7779668EC8A1A778F
+ 7889E888C3930A96E72C210D8EFDD1E8E8ED3BC404597A3DE94D841C215E84B9
+ 1878721AB832A520359F907C97650563636DF73C2915F4FFAA8C6D16A2EC2B47
+ 07CF93EF814D0A9715DC8FF11FAABDDDEF79CA04C30000000049454E44AE4260
+ 82}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ inherited tbxEditFiltro: TTBXEditItem
+ EditOptions = [tboUseEditWhenVertical]
+ end
+ inherited TBXItem37: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 885
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 885
+ inherited bSeleccionar: TButton
+ Left = 546
+ end
+ inherited bCancelar: TButton
+ Left = 625
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ end
+ inherited actDuplicar: TAction
+ Visible = False
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 610000000970485973000017120000171201679FD252000002194944415478DA
+ 63FCFFFF3F03232323030CE4E49CFF0FA2A74C31840BDADBD7FFF7315CCE503A
+ E116422110389B6AFC67443600A459DDEC05B21A8635734F30803473184D4411
+ DF30B9104CC30D8069F6B4D363509697024B3A3834C0353B99CA3168696881C5
+ 5DCC34196675AA32A495DF8618909B7BE1BFB7971A5872EBB65B60FAF2E50D60
+ CD05CD4D0C136AEBE036EF38CA04D6FCFBF73F86EC9ABB9806C040476717DC00
+ 64E0E1D4C030B54599E1D7AFBF0C854D0F1006484AFE030A7E63F8F39B89E1E3
+ A7CF40171C071B202E2D0DD6F8E1E36F86074F7E305CBCFA85A1B352166C406D
+ EF334C17FCF9F39FE1C78FBF0C53A6F6A1B8E0C7F71F0C1FDEBE6548889BCDD0
+ 5C2C0536A079F24B5403609A4178CEDC897003609A41B8A0701D4379BA08C3AF
+ DF7F19FAE7BD4718E0EEA60AD70CC24B964E011B90515505D70CC20D2D07190A
+ 9304C12E98BAE413C2007B3B25B8E69F3FFF31AC5E330D6C40447A3A5CF3A70F
+ 1F18FAA65C644809E566F8093460F1C61F9881F8EDEB4F864F9F3F33DCB87101
+ 6CC0F30F7CE03078F1EA17C3CBD7BFC0EC587F0EA0257F1856EDF88330405F4F
+ 066CF3CF9F1017ECDC351B6C8085A323D8E64FEFDF83E9555B3F31F83B32825D
+ 004A13282E78FEFC2630C07E317CF9FA15C87E85D3051ED6FFC09AF79EBEC108
+ 374051411C6CF32F200681FD07E7820D90515080B8008861291104409AE17901
+ 64002CF922039001300DC800A6196E0025000048B3879138758C930000000049
+ 454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000002F14944415478DA
+ B5960B4814411CC6BFBD67E74964266260986447A8216A668658596492925152
+ 9410598969709C65566A6826667948662565080549450749412F2AA21222148C
+ 42E84546606698A9F7DADB6B678E3D1F3BA517F687657761E6FBFDBF6F66D8E5
+ DC6E37FE6771D283E561D7A4A4ACD4686E2A632B6BCFA2E3EE396E14B0E99ADB
+ 92BF081B56453127F40F0CE3DB8F21747FEAA3EF86B02004CDD663CE2C7FE6F8
+ D8B4BDE8E835009D468E23E2F09F074B8E9E02F2DAECB2094D195AEFC4F6B606
+ A8940AE4DF7630C5C9582F60C15CC80013ABBB1F303FB7A3719D1A09EB0BF1D4
+ 520FD303374C495A1802D911F90420E570BAE0E45D48CE32E2D17533542A05D4
+ 2A2575A25070BE015811995773E079012B379B70BFF5A428AC44F1638ED98C4F
+ 1191CE3BFB94687E654775328F355B0EE0CE951338FA4283DC382D22031CD069
+ D53217530208821B56BB9376CEBB484402D2B71FC4AD966A3122A51891823AD1
+ CD50CBA2F239A28A650E11E442E68EC3B8D95C45058FBDD4FD5B44A473DE25D0
+ 45B5890EDE8FE86944876287B131B714ADE72B50D73513654BACD4098968E2A2
+ FF1190B922D22B4EA2F144E4C2AF11078D247B4F392E9F29A7621AB547D01391
+ 721C243EBD800D58BBDC00E33D4166BB287A9042730A2B71A9FE08153AFD3680
+ 1951439A0A8919FBD880D4A511B463A7E882DC6D0E1EED3F03F1E4831DF911DF
+ B1D3781C4DA74A70F1633052C2B588D7F7C18F3818B3E8C409392F4C404A5CB8
+ 579C444400A473E9CADB5F83C69A626F1CE4D2EB343496B110725E9880A49830
+ 943D53CB6CEF9ADF4B810525B5A8AF2AA2C22D3D21CC88A4F3C2042444857AF6
+ BD20D0FB88CD8181412BAEF686625BC817184BEB60AE34D1F7ADC13DD0FB69C4
+ 8834E3169D3821E7850958BC30840A4B91586D4E7A275B9794A9DC4C0152912D
+ 49769114970422DB9909201F8AE92A1980D46EFECDB4885F783DE87998084067
+ FBB439404C2230F479F493F9D7C15203634B9C3C69DDC8E6B8C947311A78F795
+ 7E6FA73295FBDFBF2DBF01AB269FECD6A6E3080000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uEditorCuentas.pas b/Modulos/Cuentas/Cliente/uEditorCuentas.pas
new file mode 100644
index 0000000..dc9650b
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uEditorCuentas.pas
@@ -0,0 +1,169 @@
+unit uEditorCuentas;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, ActnList, DBActns, uViewGrid, Menus, ImgList, PngImageList,
+ TB2Dock, TB2Toolbar, TBX, TB2Item, StdActns, TB2ExtItems, TBXExtItems,
+ TB2MRU, DB, uDADataTable, JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView,
+ uViewBase, uViewBarraSeleccion, pngimage,
+
+ uViewCuentas, uBizCuentas, JvComponentBase;
+
+type
+ IEditorCuentas = interface(IEditorGrid)
+ ['{F1DCDA99-2E02-43FC-A2D0-43BF7C3C1FD1}']
+ function GetCuentas: IBizCuenta;
+ procedure SetCuentas(const Value: IBizCuenta);
+ property Cuentas: IBizCuenta read GetCuentas write SetCuentas;
+
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+ TfEditorCuentas = class(TfEditorGrid, IEditorCuentas)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ private
+ FCuentas: IBizCuenta;
+ protected
+ function GetCuentas: IBizCuenta; virtual;
+ procedure SetCuentas(const Value: IBizCuenta); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ function GetSelectionBarVisible: Boolean; virtual;
+ procedure SetSelectionBarVisible(const Value: Boolean); virtual;
+ public
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ property Cuentas: IBizCuenta read GetCuentas write SetCuentas;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uEditorUtils, uDataModuleCuentas;
+
+{$R *.dfm}
+
+function ShowEditorCuentas (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorCuentas;
+begin
+ AEditor := TfEditorCuentas.Create(Application);
+ try
+ AEditor.Cuentas := (ABizObject as IBizCuenta);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+****************************** TfEditorCuentas *******************************
+}
+procedure TfEditorCuentas.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Cuentas) then
+ raise Exception.Create('No hay ningún Cuenta asignado');
+
+ Cuentas.DataTable.Active := True;
+end;
+
+function TfEditorCuentas.GetCuentas: IBizCuenta;
+begin
+ Result := FCuentas;
+end;
+
+procedure TfEditorCuentas.SetCuentas(const Value: IBizCuenta);
+begin
+ FCuentas := Value;
+ dsDataTable.DataTable := FCuentas.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewCuentas).Cuentas := Cuentas;
+end;
+
+procedure TfEditorCuentas.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Cuentas.Insert;
+ Cuentas.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorCuentas.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Cuentas.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorCuentas.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Cuentas) then
+ (ViewGrid as IViewCuentas).Cuentas := Cuentas;
+end;
+
+destructor TfEditorCuentas.Destroy;
+begin
+ FCuentas := NIL;
+ inherited;
+end;
+
+function TfEditorCuentas.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorCuentas.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorCuentas.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+constructor TfEditorCuentas.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewCuentas) as IViewCuentas;
+end;
+
+procedure TfEditorCuentas.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Está seguro que desea borrar esta cuenta?'+#10#13+'(Se borrarán todos sus asientos)', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizCuenta, ShowEditorCuentas, etItems);
+
+end.
+
diff --git a/Modulos/Cuentas/Cliente/uListaAlmacenes.ddp b/Modulos/Cuentas/Cliente/uListaAlmacenes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uListaAlmacenes.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uListaAlmacenes.dfm b/Modulos/Cuentas/Cliente/uListaAlmacenes.dfm
new file mode 100644
index 0000000..66f8ea4
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uListaAlmacenes.dfm
@@ -0,0 +1,104 @@
+object fListaAlmacenes: TfListaAlmacenes
+ Left = 356
+ Top = 461
+ Width = 363
+ Height = 150
+ ActiveControl = cxAlmacenes
+ Caption = 'fListaAlmacenes'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 21
+ Top = 42
+ Width = 100
+ Height = 13
+ Caption = 'Nombre del almac'#233'n:'
+ end
+ object Label5: TLabel
+ Left = 9
+ Top = 9
+ Width = 84
+ Height = 13
+ Caption = 'Elegir almac'#233'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 108
+ Top = 9
+ Width = 237
+ Height = 9
+ Shape = bsBottomLine
+ end
+ object cxAlmacenes: TcxLookupComboBox
+ Left = 128
+ Top = 38
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ SortOrder = soAscending
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.AnsiSort = True
+ Properties.ListOptions.GridLines = glNone
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 217
+ end
+ object pnlSeleccion: TPanel
+ Left = 0
+ Top = 79
+ Width = 355
+ Height = 37
+ Align = alBottom
+ BevelOuter = bvNone
+ ParentBackground = True
+ TabOrder = 1
+ DesignSize = (
+ 355
+ 37)
+ object bSeleccionar: TButton
+ Left = 192
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Caption = '&Seleccionar'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ OnClick = bSeleccionarClick
+ end
+ object bCancelar: TButton
+ Left = 273
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 84
+ Top = 68
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uListaAlmacenes.pas b/Modulos/Cuentas/Cliente/uListaAlmacenes.pas
new file mode 100644
index 0000000..17fd6f0
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uListaAlmacenes.pas
@@ -0,0 +1,79 @@
+unit uListaAlmacenes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
+ cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase,
+ uViewBarraSeleccion, uBizAlmacenes, ExtCtrls, StdCtrls,
+ Grids, DBGrids;
+
+type
+ TfListaAlmacenes = class(TForm)
+ DADataSource: TDADataSource;
+ Label1: TLabel;
+ Label5: TLabel;
+ Bevel1: TBevel;
+ cxAlmacenes: TcxLookupComboBox;
+ pnlSeleccion: TPanel;
+ bSeleccionar: TButton;
+ bCancelar: TButton;
+ procedure bSeleccionarClick(Sender: TObject);
+ private
+ FAlmacenes: IBizAlmacen;
+ function GetAlmacenes: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ public
+ property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacen;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ fListaAlmacenes: TfListaAlmacenes;
+
+implementation
+{$R *.dfm}
+
+uses uDataModuleAlmacenes, schAlmacenesClient_Intf;
+
+{ TfListaAlmacenes }
+
+constructor TfListaAlmacenes.Create(AOwner: TComponent);
+begin
+ inherited;
+end;
+
+destructor TfListaAlmacenes.Destroy;
+begin
+ FAlmacenes := Nil;
+ inherited;
+end;
+
+function TfListaAlmacenes.GetAlmacenes: IBizAlmacen;
+begin
+ Result := FAlmacenes;
+end;
+
+procedure TfListaAlmacenes.SetAlmacen(const Value: IBizAlmacen);
+begin
+ FAlmacenes := Value;
+ if Assigned(FAlmacenes) then
+ begin
+ DADataSource.DataTable := FAlmacenes.DataTable;
+ FAlmacenes.DataTable.Active := True;
+ cxAlmacenes.ItemIndex := 0;
+ end
+ else
+ DADataSource.DataTable := Nil;
+end;
+
+procedure TfListaAlmacenes.bSeleccionarClick(Sender: TObject);
+begin
+ FAlmacenes.First;
+ FAlmacenes.Locate(fld_ALMACENESNOMBRE, cxAlmacenes.Text);
+end;
+
+end.
diff --git a/Modulos/Cuentas/Cliente/uListaCuentas.ddp b/Modulos/Cuentas/Cliente/uListaCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uListaCuentas.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uListaCuentas.dfm b/Modulos/Cuentas/Cliente/uListaCuentas.dfm
new file mode 100644
index 0000000..2d07742
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uListaCuentas.dfm
@@ -0,0 +1,36 @@
+inherited frListaCuentas: TfrListaCuentas
+ Width = 461
+ Height = 35
+ object Label3: TLabel
+ Left = 23
+ Top = 10
+ Width = 39
+ Height = 13
+ Caption = 'Cuenta:'
+ end
+ object cxCuenta: TcxDBLookupComboBox
+ Left = 72
+ Top = 7
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSource
+ 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 = 369
+ end
+ object DADataSource: TDADataSource
+ Left = 439
+ Top = 65533
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uListaCuentas.pas b/Modulos/Cuentas/Cliente/uListaCuentas.pas
new file mode 100644
index 0000000..cf28796
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uListaCuentas.pas
@@ -0,0 +1,80 @@
+unit uListaCuentas;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizCuentas, cxGraphics, StdCtrls, DB, uDADataTable,
+ cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
+ cxLookupEdit, cxDBLookupEdit, cxDBExtLookupComboBox, cxDBLookupComboBox;
+
+type
+ IListaCuentas = interface(IViewBase)
+ ['{292056C8-4993-460A-A071-705E0D64D31C}']
+ function GetCuenta: IBizCuenta;
+ property Cuenta: IBizCuenta read GetCuenta;
+
+ function GetOnCuentaChanged : TNotifyEvent;
+ procedure SetOncuentaChanged (const Value : TNotifyEvent);
+ property OnCuentaChanged : TNotifyEvent read GetOnCuentaChanged
+ write SetOnCuentaChanged;
+ end;
+
+ TfrListaCuentas = class(TfrViewBase, IListaCuentas)
+ DADataSource: TDADataSource;
+ Label3: TLabel;
+ cxCuenta: TcxDBLookupComboBox;
+ private
+ FCuentas: IBizCuenta;
+ FOnCuentaChanged: TNotifyEvent;
+ function GetCuenta: IBizCuenta;
+ function GetOnCuentaChanged : TNotifyEvent;
+ procedure SetOncuentaChanged (const Value : TNotifyEvent);
+ public
+ property Cuenta: IBizCuenta read GetCuenta;
+ property OnCuentaChanged : TNotifyEvent read GetOnCuentaChanged
+ write SetOnCuentaChanged;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ frListaCuentas: TfrListaCuentas;
+
+implementation
+
+{$R *.dfm}
+{ TfListaCuentas }
+
+uses uDataModuleCuentas;
+
+constructor TfrListaCuentas.Create(AOwner: TComponent);
+begin
+ inherited;
+ FCuentas := dmCuentas.GetItems;
+ DADataSource.DataTable := FCuentas.DataTable;
+ FCuentas.DataTable.Active := True;
+end;
+
+destructor TfrListaCuentas.Destroy;
+begin
+ FCuentas := Nil;
+ inherited;
+end;
+
+function TfrListaCuentas.GetCuenta: IBizCuenta;
+begin
+ Result := FCuentas;
+end;
+
+function TfrListaCuentas.GetOnCuentaChanged: TNotifyEvent;
+begin
+ Result := FOnCuentaChanged;
+end;
+
+procedure TfrListaCuentas.SetOnCuentaChanged(const Value: TNotifyEvent);
+begin
+ FOnCuentaChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Cuentas/Cliente/uPluginControllerCuentas.ddp b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uPluginControllerCuentas.dfm b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.dfm
new file mode 100644
index 0000000..050beb9
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.dfm
@@ -0,0 +1,167 @@
+object ModuleCuentas: TModuleCuentas
+ OldCreateOrder = True
+ Description = 'Cuentas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Cuentas'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 497
+ Top = 391
+ Height = 248
+ Width = 397
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000004184944415478DA
+ B5956D6C535518C7FFB51DAC5DDD708C1637E858BACD4DB7B0E150E30BA27C40
+ 067C9238952FCA07256498A841488C41741247B0716FBE2C324894619097958E
+ B1267B61635BE7EA149DA3AC0912DC24A332D8FA7EDBDE5BCF39B5775C486F3F
+ 719AF3E13EE79EDFEF3ECF737BAE221A8DE27E0EC59D0285422159ACAEFE8D2D
+ 3636962BEE8EE7AAAA9093FD205EFF6054B2B66E7551B46BC4A1482AA090479E
+ 984659B101A90B552CF6AF4B40475B10149EBAAA0E46830E4B32B56CCD757D12
+ A68FAAA15402565B12411CFEE44A234A0A0D2C3662BF8113C76F89F0FC5C1D1E
+ 2F31225DAB817D64181FBFF716F6EF5E81DAAF2671B2FBCFC48238FCA9B27C3C
+ 9ABF1C51F2B3D95C309F9E8717ACD0A382C0B5696A0C0F0EE0D3DD3BF0C9FBB9
+ 58AA5B805D357F2516ECDC7991C19F5E558062E33208421483432E58CCF3F0C2
+ BCA5585D6A84469D0A1B81D710F83E027F98C0E9482AC8C80C63EE568AA4D914
+ 9E68740E3E80E6DA02F13AA960CD9A5C09A0A9A90E9BCA8F6163551532753AC9
+ DAF090030DF53DA22012E6B1A7F61A4EC9093656164A209FD71E6082D7B6BF0D
+ 7D4E8E64ADA37D14F5260BBED96F04CF47112282BDA6299CEA9111BCB0D6001A
+ 8BF01184380E875A5A6219BC5A85C524037A7B84C0829C80DEEE71FC78F4021A
+ F6E5211C111026829A86EB38DD3B9E585054A421CD15E0F5BA61B576B0381514
+ 97AD8446AB65823977187F4FF96169BFC4D60F7E6860703A0F34BBD02627A025
+ A2211AA7697F613A2829118DD3CCFC5E2FAC9D1771A465009FEDCA26F5175889
+ EA0ECFA0EDBC8CA07243217B3D293C4C3635349A24022E1864703ABBBBC6D1DA
+ 6AC7DE77F4A4443C1108F8FA87DB30F75D4A2C78697D0101C7E01152D76F9BBF
+ 14058BB2B2E0F37844417F9F13274EFE813DDBB3C41E7C77DC8D337282752FE6
+ 2314E299840A0E1FA9678297DF7C03DA8C8C7981C78BA1A1AB38737602EF6E7B
+ E8FF3D02BE37FB60E997113CF76C1EB959886540E6D1634D4C5059F50AD24893
+ BD62063E723E4DC2DA750D3BB6A6830BC59AFCD3B9202C171C8905A5258B193C
+ 148A204C367574B63241F933CF439D96C6C05E8F9F4C1F1C976FE2E7D19BD8B6
+ 45038EE349C63CCC3D11B4CB0952525CE0C98D01D24CA7F377F1351516E82144
+ 95080478CCCE72989DE3F0CF34C7D6B76E5E2866D03910C5D9011941C963D9E4
+ C9E34D26379F6B6682D28A0A28552A04FC7E04C9A4657238DDF8652C882DEB55
+ 2483082CE7816EFB65E9097DCF61971E60A9068321F2B4014C38ED4CA05EB48C
+ 65E0F771F07839B8E78298B91DC68D19019BD74284538EAC80E3AE8AD7779668
+ EC8A1A778F7889E888C3930A96E72C210D8EFDD1E8E8ED3BC404597A3DE94D84
+ 1C215E84B91878721AB832A520359F907C97650563636DF73C2915F4FFAA8C6D
+ 16A2EC2B4707CF93EF814D0A9715DC8FF11FAABDDDEF79CA04C3000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actCuentas: TAction
+ Category = 'Contabilidad'
+ Caption = 'Cuentas'
+ ImageIndex = 0
+ OnExecute = actCuentasExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 500
+ Caption = '&Contabilidad'
+ GroupIndex = 1
+ ImageIndex = 0
+ OnClick = actCuentasExecute
+ object Contabilidad1: TMenuItem
+ Tag = 100
+ Action = actCuentas
+ end
+ object N1: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000002194944415478DA
+ 63FCFFFF3F03232323030CE4E49CFF0FA2A74C31840BDADBD7FFF7315CCE503A
+ E116422110389B6AFC67443600A459DDEC05B21A8635734F30803473184D4411
+ DF30B9104CC30D8069F6B4D363509697024B3A3834C0353B99CA3168696881C5
+ 5DCC34196675AA32A495DF8618909B7BE1BFB7971A5872EBB65B60FAF2E50D60
+ CD05CD4D0C136AEBE036EF38CA04D6FCFBF73F86EC9ABB9806C040476717DC00
+ 64E0E1D4C030B54599E1D7AFBF0C854D0F1006484AFE030A7E63F8F39B89E1E3
+ A7CF40171C071B202E2D0DD6F8E1E36F86074F7E305CBCFA85A1B352166C406D
+ EF334C17FCF9F39FE1C78FBF0C53A6F6A1B8E0C7F71F0C1FDEBE6548889BCDD0
+ 5C2C0536A079F24B5403609A4178CEDC897003609A41B8A0701D4379BA08C3AF
+ DF7F19FAE7BD4718E0EEA60AD70CC24B964E011B90515505D70CC20D2D07190A
+ 9304C12E98BAE413C2007B3B25B8E69F3FFF31AC5E330D6C40447A3A5CF3A70F
+ 1F18FAA65C644809E566F8093460F1C61F9881F8EDEB4F864F9F3F33DCB87101
+ 6CC0F30F7CE03078F1EA17C3CBD7BFC0EC587F0EA0257F1856EDF88330405F4F
+ 066CF3CF9F1017ECDC351B6C8085A323D8E64FEFDF83E9555B3F31F83B32825D
+ 004A13282E78FEFC2630C07E317CF9FA15C87E85D3051ED6FFC09AF79EBEC108
+ 374051411C6CF32F200681FD07E7820D90515080B8008861291104409AE17901
+ 64002CF922039001300DC800A6196E0025000048B3879138758C930000000049
+ 454E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD2520000031F4944415478DA
+ C5D67B4814411800F06F23E84591F6303D33D3BA8A48B317862998629A957F54
+ 5068442816F9E082E4AC104C433CDF7A6A76A5A0858908FA4799941106FD5341
+ 86843D301244D310CDBC47BB7BBBCDCCB5DBEDDD49639CF6C130B33337FBE3FB
+ 66F75846144598CF60FE2BC8308C62313DFD4D30EA7AABAB4318C78D684DC4F3
+ C51AB59855F1D1693D6AEF56B1FB653F430D4AD8967D5F217467806253A3C104
+ 7D7D1D7024E43E2CDE55E9B49E9D9C407A6AD01E8B8B0882C00D3E647E607018
+ 2A4AC660B5E72A5836152D637B76A8E5F5F327A34097ED0BDAC2213AD01D9887
+ C71248D57EFA3B9891D1EB160C072D28BA039B15082E42C2668AC8703F05362B
+ 30FEB0DAE98685BA22F2446AF2F35C82B10773C1A0DB2C5F73AC15D2723ECF3D
+ 285805B05A4560392B5CCA1B9C5BB0AE201041181480451952BD1618F4F616C8
+ 787AFA078C8E0EC3C0C007728D412F954AFEEDE4770EBE0C59E0EDBB69725D75
+ 7D23812430A76CE4DF32E438114ACB8A5D6668321AC18C5AE2A95A28B9E6F707
+ 4425CDD78FCD0E1450A2F83C3854A62A7DA9132861B8A524374241968A405286
+ BA5BE3F420C6384E90C19B75E50AD01EC3E3CCCC36C8D5ACB3CB5080F286093A
+ 302E564D109615102C92BEBEA152061D31DC6BAF3C82AB17D7D840B2C70A35F7
+ A6E8C0E8A84D04B1CFB0E9AE9E80A9D95A27CC6C3441EE8D1EB89CE24932C318
+ 8FB2BCD36AA40323C20308223501A1CD2D35043C9391EE84E17151F96BC83CBB
+ 92603F7F97B5A9C34207EE0FF597311E83E83C5BDB6A0998909484E6590586C7
+ 7A433F5C38BD9C60D239B6747274A0C9D44FC666B389B4898971F93D1C995C41
+ C6168B0093533C8C7E63E5BDE78E2F5564D8DE2DD081C141BE2433FCFEF1BCED
+ 1C1F741A087820268664C4719CE22C9B3BC621F1E82245860F9F3374E0F66D3E
+ 32867BFCA4763DBE4DC0DD61616036D94AC9B3AC5CD2F6271638716821C170EB
+ 7AB1009EBE7AEFF203CD6D253D16C928303C470506F87B91CCC843C3DBD69EF5
+ D413D05FAD56949247A5C58191D83041815183EB556B15983D88FFBC1D3109C4
+ 618FD18269E8F3AF1A5C040235E8C6153043386254E07CC42F741D70F6B59175
+ 350000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uPluginControllerCuentas.pas b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.pas
new file mode 100644
index 0000000..8da6fc7
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uPluginControllerCuentas.pas
@@ -0,0 +1,73 @@
+unit uPluginControllerCuentas;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCCuentas = interface(IInterface)
+ ['{269979BB-DCF8-41FD-8F46-57022242FE86}']
+ end;
+
+ TModuleCuentas = class(TModuleController, IMCCuentas)
+ actCuentas: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ Contabilidad1: TMenuItem;
+ SmallImages: TPngImageList;
+ N1: TMenuItem;
+ procedure actCuentasExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleCuentas, uBizCuentas,
+ uEditorCuentas;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleCuentas.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleCuentas.actCuentasExecute(Sender: TObject);
+var
+ aObj: IEditorCuentas;
+ ACuentas : IBizCuenta;
+begin
+ ACuentas := dmCuentas.GetItems;
+ aObj := TfEditorCuentas.Create(Application);
+ try
+ with aObj do
+ begin
+ Cuentas := ACuentas;
+ ShowEmbedded;
+ end;
+ finally
+ ACuentas := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleCuentas);
+
+finalization
+ UnRegisterModuleClass(TModuleCuentas);
+
+end.
diff --git a/Modulos/Cuentas/Cliente/uViewCuenta.ddp b/Modulos/Cuentas/Cliente/uViewCuenta.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uViewCuenta.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uViewCuenta.dfm b/Modulos/Cuentas/Cliente/uViewCuenta.dfm
new file mode 100644
index 0000000..ace1b8e
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uViewCuenta.dfm
@@ -0,0 +1,89 @@
+inherited frViewCuenta: TfrViewCuenta
+ Width = 600
+ Height = 270
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 245
+ Constraints.MinWidth = 600
+ object pnlGeneral: TPanel
+ Left = 0
+ Top = 0
+ Width = 601
+ Height = 161
+ BevelOuter = bvNone
+ Constraints.MinWidth = 300
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 0
+ DesignSize = (
+ 601
+ 161)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 109
+ Height = 13
+ Caption = 'Datos de la cuenta'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 128
+ Top = 8
+ Width = 465
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 61
+ Height = 13
+ Caption = 'Otros datos:'
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 41
+ Height = 13
+ Caption = 'Nombre:'
+ end
+ object eNombre: TcxDBTextEdit
+ Left = 93
+ Top = 28
+ DataBinding.DataField = 'NOMBRE'
+ DataBinding.DataSource = DADataSource
+ Style.Color = 14745599
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 492
+ end
+ object memOtrosDatos: TcxDBMemo
+ Left = 93
+ Top = 56
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'OTROSDATOS'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 81
+ Width = 492
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 80
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uViewCuenta.pas b/Modulos/Cuentas/Cliente/uViewCuenta.pas
new file mode 100644
index 0000000..e98bb62
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uViewCuenta.pas
@@ -0,0 +1,71 @@
+unit uViewCuenta;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
+ DBCtrls, Grids, DBGrids, uBizCuentas, Mask, ComCtrls, uCustomView,
+ uViewDireccion, uViewTelefonos, uViewInternet, uViewCategorias,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit, cxMemo;
+
+type
+ IViewCuenta = interface(IViewBase)
+ ['{076DB0D0-0E2C-49DE-861E-C8405DB35175}']
+ function GetCuenta: IBizCuenta;
+ procedure SetCuenta(const Value: IBizCuenta);
+ property Cuenta: IBizCuenta read GetCuenta write SetCuenta;
+ end;
+
+ TfrViewCuenta = class(TfrViewBase, IViewCuenta)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ Label1: TLabel;
+ Label2: TLabel;
+ Label5: TLabel;
+ pnlGeneral: TPanel;
+ eNombre: TcxDBTextEdit;
+ memOtrosDatos: TcxDBMemo;
+ private
+ FCuenta: IBizCuenta;
+ protected
+ function GetCuenta: IBizCuenta;
+ procedure SetCuenta(const Value: IBizCuenta);
+ public
+ property Cuenta: IBizCuenta read GetCuenta write SetCuenta;
+ end;
+
+implementation
+
+uses uDataModuleCuentas;
+
+{$R *.dfm}
+
+{ TfrViewCuentas }
+
+{
+******************************* TfrViewCuentas ********************************
+}
+function TfrViewCuenta.GetCuenta: IBizCuenta;
+begin
+ Result := FCuenta;
+end;
+
+procedure TfrViewCuenta.SetCuenta(const Value: IBizCuenta);
+begin
+ FCuenta := Value;
+ if Assigned(FCuenta) then
+ DADataSource.DataTable := FCuenta.DataTable
+ else
+ DADataSource.DataTable := NIL;
+end;
+
+initialization
+ RegisterClass(TfrViewCuenta);
+
+finalization
+ UnRegisterClass(TfrViewCuenta);
+
+end.
+
diff --git a/Modulos/Cuentas/Cliente/uViewCuentas.ddp b/Modulos/Cuentas/Cliente/uViewCuentas.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Cliente/uViewCuentas.ddp differ
diff --git a/Modulos/Cuentas/Cliente/uViewCuentas.dfm b/Modulos/Cuentas/Cliente/uViewCuentas.dfm
new file mode 100644
index 0000000..da97b65
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uViewCuentas.dfm
@@ -0,0 +1,92 @@
+inherited frViewCuentas: TfrViewCuentas
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewICONOCustomDrawCell
+ Options.Sorting = False
+ Width = 20
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ end
+ object cxGridViewOTROSDATOS: TcxGridDBColumn
+ DataBinding.FieldName = 'OTROSDATOS'
+ Visible = False
+ end
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000013A4944415478DA
+ 63FCFFFF3F03258091620340C4FABD97B19A12E8ACCB884F0E64392343C8AAFF
+ EB333519029C7430146DD87705ABB8914716C3795E4786FFAB4319F11A005278
+ 6EC734E20D48DFFC13AE68821B1383B57F3EC3D18D13190A76FD838BCFF465C7
+ EF823F7FFF317CFFF19BE1F79FBF0C2EE1250C7B56F6307072B03270B2B392E6
+ 825AB3EF0C7EF1550C9B16B631349FE224EC021F7B2DB0CDDF7EFC02D3BF802E
+ 8848AF675831B391810BE8022E0E36B84BB01AE06CAECA50B20F115099AA6F18
+ 920A5A19E64DA866987E5B04236C300CB0D49707DBFCF5FB2F30FEFDFB2F436E
+ 5537C3E4B652066E2E36062E4E36B84B406183618081BA145CF337200681A2BA
+ 3E86BEA62206561666144340618361405317667CE30328066055C12387607F79
+ 845509C4005C00D9E0356158D581F302A5B911006305C5E10A57158000000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 160
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Cuentas/Cliente/uViewCuentas.pas b/Modulos/Cuentas/Cliente/uViewCuentas.pas
new file mode 100644
index 0000000..4cb241a
--- /dev/null
+++ b/Modulos/Cuentas/Cliente/uViewCuentas.pas
@@ -0,0 +1,87 @@
+unit uViewCuentas;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, uBizCuentas, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ uViewFiltroBase;
+
+type
+ IViewCuentas = interface(IViewGrid)
+ ['{14CA2FE9-4B42-47EE-AEF0-60F759C1755A}']
+ function GetCuentas: IBizCuenta;
+ procedure SetCuentas(const Value: IBizCuenta);
+ property Cuentas: IBizCuenta read GetCuentas write SetCuentas;
+ end;
+
+ TfrViewCuentas = class(TfrViewGrid, IViewCuentas)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOEMPRESA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewOTROSDATOS: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ procedure cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ protected
+ FCuentas: IBizCuenta;
+ function GetCuentas: IBizCuenta; virtual;
+ procedure SetCuentas(const Value: IBizCuenta); virtual;
+ public
+ property DataSet: IBizCuenta read GetCuentas write SetCuentas;
+ end;
+
+var
+ frViewCuentas: TfrViewCuentas;
+
+implementation
+
+uses uDataModuleCuentas;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewCuentas *******************************
+}
+function TfrViewCuentas.GetCuentas: IBizCuenta;
+begin
+ Result := FCuentas;
+end;
+
+procedure TfrViewCuentas.SetCuentas(const Value: IBizCuenta);
+begin
+ FCuentas := Value;
+ if Assigned(FCuentas) then
+ DADataSource.DataTable := FCuentas.DataTable;
+end;
+
+
+procedure TfrViewCuentas.cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+end.
diff --git a/Modulos/Cuentas/Reglas/schCuentasClient_Intf.pas b/Modulos/Cuentas/Reglas/schCuentasClient_Intf.pas
new file mode 100644
index 0000000..eef12ae
--- /dev/null
+++ b/Modulos/Cuentas/Reglas/schCuentasClient_Intf.pas
@@ -0,0 +1,209 @@
+unit schCuentasClient_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_Cuentas = '{FD2A065D-876F-41F3-A883-9B5E665718B4}';
+
+ { Data table names }
+ nme_Cuentas = 'Cuentas';
+
+ { Cuentas fields }
+ fld_CuentasCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_CuentasCODIGO = 'CODIGO';
+ fld_CuentasFECHAALTA = 'FECHAALTA';
+ fld_CuentasUSUARIO = 'USUARIO';
+ fld_CuentasNOMBRE = 'NOMBRE';
+ fld_CuentasOTROSDATOS = 'OTROSDATOS';
+ fld_CuentasULTIMOCIERRE = 'ULTIMOCIERRE';
+ fld_CuentasPENULTIMOCIERRE = 'PENULTIMOCIERRE';
+
+ { Cuentas field indexes }
+ idx_CuentasCODIGOEMPRESA = 0;
+ idx_CuentasCODIGO = 1;
+ idx_CuentasFECHAALTA = 2;
+ idx_CuentasUSUARIO = 3;
+ idx_CuentasNOMBRE = 4;
+ idx_CuentasOTROSDATOS = 5;
+ idx_CuentasULTIMOCIERRE = 6;
+ idx_CuentasPENULTIMOCIERRE = 7;
+
+type
+ { ICuentas }
+ ICuentas = interface(IDAStronglyTypedDataTable)
+ ['{81148F99-BE98-4AAA-9572-9D985476978F}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetOTROSDATOSValue: IROStrings;
+ procedure SetOTROSDATOSValue(const aValue: IROStrings);
+ function GetULTIMOCIERREValue: DateTime;
+ procedure SetULTIMOCIERREValue(const aValue: DateTime);
+ function GetPENULTIMOCIERREValue: DateTime;
+ procedure SetPENULTIMOCIERREValue(const aValue: DateTime);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OTROSDATOS: IROStrings read GetOTROSDATOSValue write SetOTROSDATOSValue;
+ property ULTIMOCIERRE: DateTime read GetULTIMOCIERREValue write SetULTIMOCIERREValue;
+ property PENULTIMOCIERRE: DateTime read GetPENULTIMOCIERREValue write SetPENULTIMOCIERREValue;
+ end;
+
+ { TCuentasDataTableRules }
+ TCuentasDataTableRules = class(TDADataTableRules, ICuentas)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOTROSDATOSValue: IROStrings; virtual;
+ procedure SetOTROSDATOSValue(const aValue: IROStrings); virtual;
+ function GetULTIMOCIERREValue: DateTime; virtual;
+ procedure SetULTIMOCIERREValue(const aValue: DateTime); virtual;
+ function GetPENULTIMOCIERREValue: DateTime; virtual;
+ procedure SetPENULTIMOCIERREValue(const aValue: DateTime); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OTROSDATOS: IROStrings read GetOTROSDATOSValue write SetOTROSDATOSValue;
+ property ULTIMOCIERRE: DateTime read GetULTIMOCIERREValue write SetULTIMOCIERREValue;
+ property PENULTIMOCIERRE: DateTime read GetPENULTIMOCIERREValue write SetPENULTIMOCIERREValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TCuentasDataTableRules }
+constructor TCuentasDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TCuentasDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCuentasDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_CuentasCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TCuentasDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CuentasCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TCuentasDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_CuentasCODIGO].AsInteger;
+end;
+
+procedure TCuentasDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_CuentasCODIGO].AsInteger := aValue;
+end;
+
+function TCuentasDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CuentasFECHAALTA].AsDateTime;
+end;
+
+procedure TCuentasDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CuentasFECHAALTA].AsDateTime := aValue;
+end;
+
+function TCuentasDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_CuentasUSUARIO].AsString;
+end;
+
+procedure TCuentasDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CuentasUSUARIO].AsString := aValue;
+end;
+
+function TCuentasDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_CuentasNOMBRE].AsString;
+end;
+
+procedure TCuentasDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_CuentasNOMBRE].AsString := aValue;
+end;
+
+function TCuentasDataTableRules.GetOTROSDATOSValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_CuentasOTROSDATOS].AsString;
+end;
+
+procedure TCuentasDataTableRules.SetOTROSDATOSValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_CuentasOTROSDATOS].AsString := aValue.Text;
+end;
+
+function TCuentasDataTableRules.GetULTIMOCIERREValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CuentasULTIMOCIERRE].AsDateTime;
+end;
+
+procedure TCuentasDataTableRules.SetULTIMOCIERREValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CuentasULTIMOCIERRE].AsDateTime := aValue;
+end;
+
+function TCuentasDataTableRules.GetPENULTIMOCIERREValue: DateTime;
+begin
+ result := DataTable.Fields[idx_CuentasPENULTIMOCIERRE].AsDateTime;
+end;
+
+procedure TCuentasDataTableRules.SetPENULTIMOCIERREValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_CuentasPENULTIMOCIERRE].AsDateTime := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Cuentas, TCuentasDataTableRules);
+
+end.
diff --git a/Modulos/Cuentas/Reglas/schCuentasServer_Intf.pas b/Modulos/Cuentas/Reglas/schCuentasServer_Intf.pas
new file mode 100644
index 0000000..6424cf1
--- /dev/null
+++ b/Modulos/Cuentas/Reglas/schCuentasServer_Intf.pas
@@ -0,0 +1,235 @@
+unit schCuentasServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schCuentasClient_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_CuentasDelta = '{E2548CDF-39FB-4108-AED9-015ADCB51AD5}';
+
+type
+ { ICuentasDelta }
+ ICuentasDelta = interface(ICuentas)
+ ['{E2548CDF-39FB-4108-AED9-015ADCB51AD5}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldOTROSDATOSValue : IROStrings;
+ function GetOldULTIMOCIERREValue : DateTime;
+ function GetOldPENULTIMOCIERREValue : DateTime;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldOTROSDATOS : IROStrings read GetOldOTROSDATOSValue;
+ property OldULTIMOCIERRE : DateTime read GetOldULTIMOCIERREValue;
+ property OldPENULTIMOCIERRE : DateTime read GetOldPENULTIMOCIERREValue;
+ end;
+
+ { TCuentasBusinessProcessorRules }
+ TCuentasBusinessProcessorRules = class(TDABusinessProcessorRules, ICuentas, ICuentasDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOTROSDATOSValue: IROStrings; virtual;
+ function GetOldOTROSDATOSValue: IROStrings; virtual;
+ procedure SetOTROSDATOSValue(const aValue: IROStrings); virtual;
+ function GetULTIMOCIERREValue: DateTime; virtual;
+ function GetOldULTIMOCIERREValue: DateTime; virtual;
+ procedure SetULTIMOCIERREValue(const aValue: DateTime); virtual;
+ function GetPENULTIMOCIERREValue: DateTime; virtual;
+ function GetOldPENULTIMOCIERREValue: DateTime; virtual;
+ procedure SetPENULTIMOCIERREValue(const aValue: DateTime); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OTROSDATOS : IROStrings read GetOTROSDATOSValue write SetOTROSDATOSValue;
+ property OldOTROSDATOS : IROStrings read GetOldOTROSDATOSValue;
+ property ULTIMOCIERRE : DateTime read GetULTIMOCIERREValue write SetULTIMOCIERREValue;
+ property OldULTIMOCIERRE : DateTime read GetOldULTIMOCIERREValue;
+ property PENULTIMOCIERRE : DateTime read GetPENULTIMOCIERREValue write SetPENULTIMOCIERREValue;
+ property OldPENULTIMOCIERRE : DateTime read GetOldPENULTIMOCIERREValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TCuentasBusinessProcessorRules }
+constructor TCuentasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TCuentasBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TCuentasBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasCODIGOEMPRESA];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasCODIGOEMPRESA];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasCODIGOEMPRESA] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasCODIGO];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasCODIGO];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasCODIGO] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasFECHAALTA];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasFECHAALTA];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasFECHAALTA] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasUSUARIO];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasUSUARIO];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasUSUARIO] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasNOMBRE];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasNOMBRE];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasNOMBRE] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetOTROSDATOSValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasOTROSDATOS];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldOTROSDATOSValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasOTROSDATOS];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetOTROSDATOSValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasOTROSDATOS] := aValue.Text;
+end;
+
+function TCuentasBusinessProcessorRules.GetULTIMOCIERREValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasULTIMOCIERRE];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldULTIMOCIERREValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasULTIMOCIERRE];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetULTIMOCIERREValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasULTIMOCIERRE] := aValue;
+end;
+
+function TCuentasBusinessProcessorRules.GetPENULTIMOCIERREValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasPENULTIMOCIERRE];
+end;
+
+function TCuentasBusinessProcessorRules.GetOldPENULTIMOCIERREValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_CuentasPENULTIMOCIERRE];
+end;
+
+procedure TCuentasBusinessProcessorRules.SetPENULTIMOCIERREValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_CuentasPENULTIMOCIERRE] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_CuentasDelta, TCuentasBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Cuentas/Reglas/uBizCuentas.pas b/Modulos/Cuentas/Reglas/uBizCuentas.pas
new file mode 100644
index 0000000..f722eda
--- /dev/null
+++ b/Modulos/Cuentas/Reglas/uBizCuentas.pas
@@ -0,0 +1,172 @@
+unit uBizCuentas;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schCuentasClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls;
+
+const
+ BIZ_CUENTA = 'BizCuenta';
+
+type
+ IBizCuenta = interface(ICuentas)
+ ['{6A535FAA-01A9-42E1-A6F5-6DB630306ACC}']
+ procedure Show;
+ function ShowForSelect : TModalResult;
+
+ function GetOnCuentaChanged : TNotifyEvent;
+ procedure SetOnCuentaChanged (const Value : TNotifyEvent);
+ property OnCuentaChanged : TNotifyEvent read GetOnCuentaChanged
+ write SetOnCuentaChanged;
+
+ function LocalizarCuenta(Codigo: Integer): Boolean;
+ end;
+
+ TBizCuentaDataTableRules = class(TCuentasDataTableRules, IBizCuenta,
+ IApplyUpdateFailedException, ISelectedRowList)
+ private
+ FOnCuentaChanged: TNotifyEvent;
+ FSelectedRows : TSelectedRowList;
+ procedure ShowToSelect;
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ function GetOnCuentaChanged: TNotifyEvent;
+ procedure SetOnCuentaChanged(const Value: TNotifyEvent);
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ public
+ property OnCuentaChanged : TNotifyEvent read GetOnCuentaChanged write SetOnCuentaChanged;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+ function ShowForSelect : TModalResult; virtual;
+ function LocalizarCuenta(Codigo: Integer): Boolean;
+ end;
+
+ procedure ValidarCuenta (const ACuenta : IBizCuenta);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
+ uEditorUtils, uDataModuleCuentas, Variants;
+
+
+procedure ValidarCuenta (const ACuenta : IBizCuenta);
+begin
+//
+end;
+
+
+{ TBizCuentaDataTableRules }
+
+{
+************************** TBizCuentaDataTableRules **************************
+}
+
+procedure TBizCuentaDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ ULTIMOCIERRE := MinDateTime;
+ PENULTIMOCIERRE := MinDateTime;
+end;
+
+procedure TBizCuentaDataTableRules.Show;
+begin
+ ShowEditor(IBizCuenta, Self, etItem);
+end;
+
+procedure TBizCuentaDataTableRules.ShowApplyUpdateFailed(const Error: EDAApplyUpdateFailed);
+begin
+// if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+// MessageBox(0, 'No se puede borrar esta cuenta porque tiene pagos asociados', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+function TBizCuentaDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizCuentaDataTableRules.ShowToSelect;
+begin
+//
+end;
+
+constructor TBizCuentaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizCuentaDataTableRules.Destroy;
+begin
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizCuentaDataTableRules.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizCuenta, Self, etItems);
+end;
+
+procedure TBizCuentaDataTableRules.BeforeApplyUpdates(
+ Sender: TDADataTable; const Delta: IDADelta);
+var
+ i: Integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarCuenta(Self);
+// ctDelete :
+ end;
+end;
+
+procedure TBizCuentaDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('Nombre', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar al menos el nombre', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+function TBizCuentaDataTableRules.LocalizarCuenta(Codigo: Integer): Boolean;
+begin
+ Result := Locate(fld_CuentasCODIGO,Codigo);
+
+ if Assigned(FOnCuentaChanged) then
+ FOnCuentaChanged(Self);
+end;
+
+function TBizCuentaDataTableRules.GetOnCuentaChanged: TNotifyEvent;
+begin
+ Result := FOnCuentaChanged;
+end;
+
+procedure TBizCuentaDataTableRules.SetOnCuentaChanged(const Value: TNotifyEvent);
+begin
+ FOnCuentaChanged := Value;
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_CUENTA, TBizCuentaDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Cuentas/Servidor/srvCuentas_Impl.ddp b/Modulos/Cuentas/Servidor/srvCuentas_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Cuentas/Servidor/srvCuentas_Impl.ddp differ
diff --git a/Modulos/Cuentas/Servidor/srvCuentas_Impl.dfm b/Modulos/Cuentas/Servidor/srvCuentas_Impl.dfm
new file mode 100644
index 0000000..fcd38b0
--- /dev/null
+++ b/Modulos/Cuentas/Servidor/srvCuentas_Impl.dfm
@@ -0,0 +1,186 @@
+object srvCuentas: TsrvCuentas
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schCuentas
+ ServiceAdapter = DABINAdapter
+ Left = 555
+ Top = 179
+ Height = 300
+ Width = 300
+ object schCuentas: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CUENTAS'
+ SQL =
+ 'SELECT '#10' CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, NOMBRE, '#10 +
+ ' OTROSDATOS, ULTIMOCIERRE, PENULTIMOCIERRE'#10' FROM'#10' CUENTAS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'OTROSDATOS'
+ TableField = 'OTROSDATOS'
+ end
+ item
+ DatasetField = 'ULTIMOCIERRE'
+ TableField = 'ULTIMOCIERRE'
+ end
+ item
+ DatasetField = 'PENULTIMOCIERRE'
+ TableField = 'PENULTIMOCIERRE'
+ end>
+ end>
+ Name = 'Cuentas'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CUENTAS'
+ DictionaryEntry = 'CODIGOCUENTA_GEN'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OTROSDATOS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ULTIMOCIERRE'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = #218'ltimo cierre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PENULTIMOCIERRE'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Penultimo cierre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'CUENTAS'
+ SQL = 'DELETE '#10' FROM'#10' CUENTAS'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Cuentas'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 40
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 80
+ end
+end
diff --git a/Modulos/Cuentas/Servidor/srvCuentas_Impl.pas b/Modulos/Cuentas/Servidor/srvCuentas_Impl.pas
new file mode 100644
index 0000000..773f435
--- /dev/null
+++ b/Modulos/Cuentas/Servidor/srvCuentas_Impl.pas
@@ -0,0 +1,68 @@
+unit srvCuentas_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvCuentas }
+ TsrvCuentas = class(TDARemoteService, IsrvCuentas)
+ schCuentas: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ { IsrvCuentas methods }
+ function GenerateReport: Binary;
+ function PuedoEliminarCuenta(const Codigo: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, uDAInterfaces;
+
+procedure Create_srvCuentas(out anInstance : IUnknown);
+begin
+ anInstance := TsrvCuentas.Create(NIL);
+end;
+
+{ srvCuentas }
+function TsrvCuentas.GenerateReport: Binary;
+begin
+//
+end;
+
+function TsrvCuentas.PuedoEliminarCuenta(const Codigo: Integer): Boolean;
+var
+ dsData: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsData := schCuentas.NewCommand(Connection, 'Delete_Cuentas', ['OLD_CODIGO'], [Codigo]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvCuentas', Create_srvCuentas, TsrvCuentas_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Documentos asociados/DocumentosAsociados.bdsproj b/Modulos/Documentos asociados/DocumentosAsociados.bdsproj
new file mode 100644
index 0000000..7d06a5b
--- /dev/null
+++ b/Modulos/Documentos asociados/DocumentosAsociados.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ DocumentosAsociados.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+ 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
+
+
+ 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/Modulos/Documentos asociados/DocumentosAsociados.cfg b/Modulos/Documentos asociados/DocumentosAsociados.cfg
new file mode 100644
index 0000000..fde67f0
--- /dev/null
+++ b/Modulos/Documentos asociados/DocumentosAsociados.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Documentos asociados/DocumentosAsociados.dcp b/Modulos/Documentos asociados/DocumentosAsociados.dcp
new file mode 100644
index 0000000..aea9067
Binary files /dev/null and b/Modulos/Documentos asociados/DocumentosAsociados.dcp differ
diff --git a/Modulos/Documentos asociados/DocumentosAsociados.dof b/Modulos/Documentos asociados/DocumentosAsociados.dof
new file mode 100644
index 0000000..d109aeb
--- /dev/null
+++ b/Modulos/Documentos asociados/DocumentosAsociados.dof
@@ -0,0 +1,178 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+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
+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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+C:\Archivos de programa\Developer Express Inc\Lib\D7\dxLayoutControlcxEditAdaptersD7.bpl=ExpressLayoutControl Adapters for ExpressEditors Library 5 by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Documentos asociados/DocumentosAsociados.dpk b/Modulos/Documentos asociados/DocumentosAsociados.dpk
new file mode 100644
index 0000000..14114b4
--- /dev/null
+++ b/Modulos/Documentos asociados/DocumentosAsociados.dpk
@@ -0,0 +1,34 @@
+package DocumentosAsociados;
+
+{$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 OFF}
+
+requires
+ BaseD7;
+
+contains
+ uViewDocumentosAsociados in 'uViewDocumentosAsociados.pas' {frViewDocumentosAsociados: TCustomView},
+ uBizDocumentosAsociados in 'uBizDocumentosAsociados.pas';
+
+end.
diff --git a/Modulos/Documentos asociados/DocumentosAsociados.drc b/Modulos/Documentos asociados/DocumentosAsociados.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Documentos asociados/DocumentosAsociados.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Documentos asociados/DocumentosAsociados.res b/Modulos/Documentos asociados/DocumentosAsociados.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Documentos asociados/DocumentosAsociados.res differ
diff --git a/Modulos/Documentos asociados/uBizDocumentosAsociados.pas b/Modulos/Documentos asociados/uBizDocumentosAsociados.pas
new file mode 100644
index 0000000..b2655b2
--- /dev/null
+++ b/Modulos/Documentos asociados/uBizDocumentosAsociados.pas
@@ -0,0 +1,136 @@
+unit uBizDocumentosAsociados;
+
+interface
+
+type
+
+ TGestorDocumentos = class(TObject)
+ private
+ FRootDocumentos: Variant;
+ FDirectorio: Variant;
+ FModoInsert: Boolean;
+
+ function CrearDirDocumentos: Boolean;
+ function EliminarDirDocumentos : Boolean;
+
+ function getDirectorio: Variant;
+ function getModoInsert: Boolean;
+ function getRootDocumentos: Variant;
+ procedure setDirectorio(const Value: Variant);
+ procedure setModoInsert(const Value: Boolean);
+ procedure setRootDocumentos(const Value: Variant);
+ public
+ property RootDocumentos: Variant read getRootDocumentos write setRootDocumentos;
+ property Directorio: Variant read getDirectorio write setDirectorio;
+ property ModoInsert: Boolean read getModoInsert write setModoInsert;
+ function AnadirDocumento(RutaDocumento: String): Boolean;
+ procedure HabilitarDirectorio;
+ function darRutaDocumentos: Variant;
+ procedure procesarDeleteTable;
+ procedure procesarCancelTable;
+ end;
+
+ IBizDocumentosAsociados = interface
+ ['{60F86497-AA60-4322-878C-A63ECC78B36B}']
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(Value: TGestorDocumentos);
+ property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
+ end;
+
+implementation
+
+uses SysUtils, uSysFunc, Variants, Forms;
+
+function TGestorDocumentos.AnadirDocumento(RutaDocumento: String): Boolean;
+var
+ DireccionDestino: String;
+begin
+ try
+ Result := False;
+ DireccionDestino := darRutaDocumentos + PathDelim + ExtractFileName(RutaDocumento);
+ CopiarFichero(RutaDocumento, DireccionDestino);
+ Result := True;
+ finally
+ end;
+end;
+
+procedure TGestorDocumentos.HabilitarDirectorio;
+begin
+ if not DirectoryExists(darRutaDocumentos) then
+ CrearDirDocumentos;
+end;
+
+function TGestorDocumentos.darRutaDocumentos: Variant;
+begin
+ Result := FRootDocumentos + PathDelim + VarToStr(FDirectorio);
+end;
+
+function TGestorDocumentos.CrearDirDocumentos: Boolean;
+var
+ DireccionDestino: String;
+begin
+ Result := False;
+ DireccionDestino := darRutaDocumentos;
+ if not DirectoryExists(DireccionDestino) then
+ CreateDir(DireccionDestino);
+ Result := True;
+end;
+
+function TGestorDocumentos.EliminarDirDocumentos: Boolean;
+begin
+ Result := False;
+ Application.ProcessMessages;
+ if DirectoryExists(darRutaDocumentos) then
+ begin
+ Deltree(darRutaDocumentos, True);
+ Application.ProcessMessages;
+ Result := DirectoryExists(darRutaDocumentos);
+ end;
+end;
+
+procedure TGestorDocumentos.ProcesarDeleteTable;
+begin
+ EliminarDirDocumentos;
+end;
+
+procedure TGestorDocumentos.ProcesarCancelTable;
+begin
+ if FModoInsert then
+ EliminarDirDocumentos
+ else
+ //Eliminaremos el directorio si no tiene documentos, solo tendremos direcctorios
+ //en el caso que el presupuesto tenga documentos asociados
+ RemoveDir(darRutaDocumentos);
+ Application.ProcessMessages;
+end;
+
+function TGestorDocumentos.getDirectorio: Variant;
+begin
+ Result := FDirectorio;
+end;
+
+function TGestorDocumentos.getModoInsert: Boolean;
+begin
+ Result := FModoInsert;
+end;
+
+function TGestorDocumentos.getRootDocumentos: Variant;
+begin
+ Result := FRootDocumentos;
+end;
+
+procedure TGestorDocumentos.setDirectorio(const Value: Variant);
+begin
+ FDirectorio := Value;
+end;
+
+procedure TGestorDocumentos.setModoInsert(const Value: Boolean);
+begin
+ FModoInsert := Value;
+end;
+
+procedure TGestorDocumentos.setRootDocumentos(const Value: Variant);
+begin
+ FRootDocumentos := Value;
+end;
+end.
diff --git a/Modulos/Documentos asociados/uViewDocumentosAsociados.ddp b/Modulos/Documentos asociados/uViewDocumentosAsociados.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Documentos asociados/uViewDocumentosAsociados.ddp differ
diff --git a/Modulos/Documentos asociados/uViewDocumentosAsociados.dfm b/Modulos/Documentos asociados/uViewDocumentosAsociados.dfm
new file mode 100644
index 0000000..709dadc
--- /dev/null
+++ b/Modulos/Documentos asociados/uViewDocumentosAsociados.dfm
@@ -0,0 +1,137 @@
+inherited frViewDocumentosAsociados: TfrViewDocumentosAsociados
+ Width = 721
+ Height = 487
+ ParentFont = True
+ OnDestroy = CustomViewDestroy
+ object Panel10: TPanel
+ Left = 0
+ Top = 0
+ Width = 721
+ Height = 487
+ Align = alClient
+ BevelOuter = bvNone
+ BorderWidth = 10
+ Caption = ' '
+ Color = clWhite
+ ParentBackground = True
+ TabOrder = 0
+ object Panel11: TPanel
+ Left = 10
+ Top = 40
+ Width = 701
+ Height = 437
+ Align = alClient
+ BevelOuter = bvNone
+ BorderWidth = 5
+ Caption = ' '
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 0
+ object explo: TcxShellListView
+ Left = 5
+ Top = 5
+ Width = 691
+ Height = 427
+ Align = alClient
+ DragDropSettings.DefaultDropEffect = deCopy
+ DragDropSettings.DropEffect = []
+ IconOptions.WrapText = False
+ MultiSelect = True
+ Options.ShowFolders = False
+ Options.ContextMenus = False
+ Options.TrackShellChanges = False
+ Options.ShowToolTip = False
+ Options.AutoNavigate = False
+ ParentFont = False
+ PopupMenu = GridPopupMenu
+ Root.BrowseFolder = bfCustomPath
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clBlack
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.IsFontAssigned = True
+ TabOrder = 0
+ OnDblClick = exploDblClick
+ end
+ end
+ object pnlBarraDocumentos: TPanel
+ Left = 10
+ Top = 10
+ Width = 701
+ Height = 30
+ Align = alTop
+ AutoSize = True
+ BevelOuter = bvNone
+ BorderWidth = 5
+ Caption = ' '
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 1
+ object Button1: TButton
+ Left = 8
+ Top = 5
+ Width = 116
+ Height = 20
+ Action = actAnadirDocumento
+ TabOrder = 0
+ end
+ object Button2: TButton
+ Left = 129
+ Top = 5
+ Width = 116
+ Height = 20
+ Action = actElliminarDocumento
+ TabOrder = 1
+ end
+ end
+ end
+ object OpenDialog1: TOpenDialog
+ Options = [ofHideReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing]
+ Left = 392
+ Top = 8
+ end
+ object ActionList1: TActionList
+ Left = 312
+ Top = 8
+ object actAnadirDocumento: TAction
+ Caption = 'A'#241'adir documento'
+ OnExecute = actAnadirDocumentoExecute
+ end
+ object actElliminarDocumento: TAction
+ Caption = 'Eliminar documento'
+ OnExecute = actElliminarDocumentoExecute
+ OnUpdate = actElliminarDocumentoUpdate
+ end
+ object actAbrirDocumento: TAction
+ Caption = 'Abrir'
+ OnExecute = actAbrirDocumentoExecute
+ OnUpdate = actAbrirDocumentoUpdate
+ end
+ end
+ object GridPopupMenu: TPopupMenu
+ Left = 432
+ Top = 8
+ object Modificar1: TMenuItem
+ Action = actAbrirDocumento
+ end
+ object N1: TMenuItem
+ Caption = '-'
+ end
+ object Nuevo1: TMenuItem
+ Action = actAnadirDocumento
+ end
+ object Previsualizar1: TMenuItem
+ Action = actElliminarDocumento
+ end
+ end
+ object JvChangeNotify1: TJvChangeNotify
+ Notifications = <
+ item
+ end>
+ FreeOnTerminate = False
+ OnChangeNotify = JvChangeNotify1ChangeNotify
+ Left = 352
+ Top = 8
+ end
+end
diff --git a/Modulos/Documentos asociados/uViewDocumentosAsociados.pas b/Modulos/Documentos asociados/uViewDocumentosAsociados.pas
new file mode 100644
index 0000000..7df36f6
--- /dev/null
+++ b/Modulos/Documentos asociados/uViewDocumentosAsociados.pas
@@ -0,0 +1,192 @@
+unit uViewDocumentosAsociados;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ComCtrls, ShlObj, cxShellCommon, Menus, cxControls, DB,
+ cxContainer, cxShellListView, ExtCtrls, ActnList, StdCtrls,
+ JvComponent, JvChangeNotify, uBizDocumentosAsociados, JvComponentBase;
+
+type
+
+ IViewDocumentosAsociados = interface(IViewBase)
+ ['{38C44437-BAC5-4155-A737-4A448062653C}']
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(const Value: TGestorDocumentos);
+ property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write
+ SetGestorDocumentos;
+ end;
+
+ TfrViewDocumentosAsociados = class(TfrViewBase, IViewDocumentosAsociados)
+ Panel10: TPanel;
+ Panel11: TPanel;
+ explo: TcxShellListView;
+ pnlBarraDocumentos: TPanel;
+ OpenDialog1: TOpenDialog;
+ ActionList1: TActionList;
+ actAnadirDocumento: TAction;
+ actElliminarDocumento: TAction;
+ actAbrirDocumento: TAction;
+ Button1: TButton;
+ Button2: TButton;
+ GridPopupMenu: TPopupMenu;
+ Modificar1: TMenuItem;
+ N1: TMenuItem;
+ Nuevo1: TMenuItem;
+ Previsualizar1: TMenuItem;
+ JvChangeNotify1: TJvChangeNotify;
+ procedure actAnadirDocumentoExecute(Sender: TObject);
+ procedure actElliminarDocumentoExecute(Sender: TObject);
+ procedure actAbrirDocumentoExecute(Sender: TObject);
+ procedure actAbrirDocumentoUpdate(Sender: TObject);
+ procedure actElliminarDocumentoUpdate(Sender: TObject);
+ procedure JvChangeNotify1ChangeNotify(Sender: TObject; Dir: String;
+ Actions: TJvChangeActions);
+ procedure CustomViewDestroy(Sender: TObject);
+ procedure exploDblClick(Sender: TObject);
+ private
+ FGestorDocumentos: TGestorDocumentos;
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(const Value: TGestorDocumentos);
+
+ procedure HabilitarDocumentos;
+ procedure DeshabilitarDocumentos;
+
+ public
+ property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
+ end;
+
+var
+ frViewDocumentosAsociados: TfrViewDocumentosAsociados;
+
+implementation
+{$R *.dfm}
+
+uses ShellApi, uSysFunc;
+
+procedure TfrViewDocumentosAsociados.actAnadirDocumentoExecute(Sender: TObject);
+var
+ FicheroOrigen : String;
+ i : Integer;
+begin
+ if OpenDialog1.Execute then
+ begin
+ for i:=0 to OpenDialog1.Files.Count - 1 do
+ begin
+ FicheroOrigen := OpenDialog1.Files.Strings[i];
+ if not (length(trim(FicheroOrigen))=0) then
+ if not FGestorDocumentos.AnadirDocumento(FicheroOrigen) then
+ raise Exception.Create('Error al añadir el documento');
+ end;
+ end;
+
+ Explo.Root.CustomPath := Explo.Root.CustomPath;
+end;
+
+procedure TfrViewDocumentosAsociados.actElliminarDocumentoExecute(Sender: TObject);
+var
+ i : Integer;
+ cadena: String;
+begin
+ if (Application.MessageBox('¿Desea eliminar los documentos seleccionados?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ for i:=0 to explo.InnerListView.Items.Count - 1 do
+ begin
+ if explo.InnerListView.Items[i].Selected then
+ begin
+ cadena := GetPidlName(explo.GetItemAbsolutePIDL(i));
+ if not SysUtils.DeleteFile(cadena) then
+ raise Exception.Create('Error al eliminar el documento');
+ end;
+ end;
+ end;
+
+ Explo.Root.CustomPath := Explo.Root.CustomPath;
+end;
+
+procedure TfrViewDocumentosAsociados.actAbrirDocumentoExecute(Sender: TObject);
+var
+ FileHandle : Integer;
+ cadena : String;
+begin
+ if explo.InnerListView.SelCount <> 0 then
+ begin
+ cadena := GetPidlName(explo.GetItemAbsolutePIDL(explo.InnerListView.ItemFocused.Index));
+ ShellExecute(Handle, 'open', PAnsiChar(cadena), nil, nil, SW_SHOWNORMAL);
+ end;
+end;
+
+procedure TfrViewDocumentosAsociados.actAbrirDocumentoUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := explo.InnerListView.SelCount <> 0;
+end;
+
+procedure TfrViewDocumentosAsociados.actElliminarDocumentoUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := explo.InnerListView.SelCount <> 0;
+end;
+
+function TfrViewDocumentosAsociados.GetGestorDocumentos: TGestorDocumentos;
+begin
+ Result := FGestorDocumentos;
+end;
+
+procedure TfrViewDocumentosAsociados.SetGestorDocumentos(const Value: TGestorDocumentos);
+begin
+ FGestorDocumentos := Value;
+
+ if Assigned(FGestorDocumentos) then
+ begin
+ DeshabilitarDocumentos;
+ FGestorDocumentos.HabilitarDirectorio;
+ HabilitarDocumentos;
+ end;
+end;
+
+procedure TfrViewDocumentosAsociados.DeshabilitarDocumentos;
+begin
+ JvChangeNotify1.Active := False;
+ JvChangeNotify1.Notifications.Clear;
+ explo.Enabled := False;
+ explo.Options.ShowNonFolders := False;
+ explo.Root.CustomPath := FGestorDocumentos.RootDocumentos;
+end;
+
+procedure TfrViewDocumentosAsociados.HabilitarDocumentos;
+begin
+ explo.Options.ShowNonFolders := True;
+ explo.Root.CustomPath := FGestorDocumentos.darRutaDocumentos;
+ JvChangeNotify1.Notifications.Clear;
+ with JvChangeNotify1.Notifications.Add do
+ begin
+ Actions := [caChangeFileName, caChangeDirName];
+ Directory := explo.Root.CustomPath;
+ end;
+ JvChangeNotify1.Active := True;
+ explo.Enabled := True;
+end;
+
+procedure TfrViewDocumentosAsociados.JvChangeNotify1ChangeNotify(
+ Sender: TObject; Dir: String; Actions: TJvChangeActions);
+begin
+ Explo.Root.CustomPath := Explo.Root.CustomPath;
+end;
+
+procedure TfrViewDocumentosAsociados.CustomViewDestroy(Sender: TObject);
+begin
+ //Eliminaremos el directorio si no tiene documentos, solo tendremos direcctorios
+ //en el caso que el presupuesto tenga documentos asociados
+ RemoveDir(FGestorDocumentos.darRutaDocumentos);
+ FGestorDocumentos := NIL;
+
+ inherited;
+end;
+
+procedure TfrViewDocumentosAsociados.exploDblClick(Sender: TObject);
+begin
+ inherited;
+ actAbrirDocumento.Execute;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/FacturasCliente.bdsproj b/Modulos/Facturas de cliente/Cliente/FacturasCliente.bdsproj
new file mode 100644
index 0000000..b986ba2
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/FacturasCliente.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ FacturasCliente.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
+ Albaranes de cliente
+
+
+
+ .\
+ ..\..\..\Output\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Facturas de cliente/Cliente/FacturasCliente.cfg b/Modulos/Facturas de cliente/Cliente/FacturasCliente.cfg
new file mode 100644
index 0000000..4d5e525
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/FacturasCliente.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Facturas de cliente/Cliente/FacturasCliente.dcp b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dcp
new file mode 100644
index 0000000..bdaec2c
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dcp differ
diff --git a/Modulos/Facturas de cliente/Cliente/FacturasCliente.dof b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dof
new file mode 100644
index 0000000..447d48c
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dof
@@ -0,0 +1,209 @@
+[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=Albaranes de cliente
+[Directories]
+OutputDir=
+UnitOutputDir=.\
+PackageDLLOutputDir=..\..\..\Output\Cliente
+PackageDCPOutputDir=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
+C:\Archivos de programa\EurekaLog 5\Delphi7\ExceptionExpert7.bpl=EurekaLog 5.1.9
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=19
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item7=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item16=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item17=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item18=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Facturas de cliente/Cliente/FacturasCliente.dpk b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dpk
new file mode 100644
index 0000000..f7d4153
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/FacturasCliente.dpk
@@ -0,0 +1,99 @@
+package FacturasCliente;
+
+{$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}
+{$DESCRIPTION 'Albaranes de cliente'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ BaseD7,
+ Contactos,
+ DataAbstract_D7,
+ dbrtl,
+ dsnap,
+ adortl,
+ AlbaranesCliente,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ vcljpg,
+ JvCoreD7R,
+ JvSystemD7R,
+ designide,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ cxExtEditorsVCLD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExportVCLD7,
+ dxPSCoreD7,
+ dxComnD7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ Presupuestos_Intf,
+ Jcl,
+ JclVcl,
+ frxTee7,
+ frx7,
+ fs7,
+ fqb70,
+ bdertl,
+ fsTee7,
+ tee,
+ teeui,
+ teedb,
+ frxe7;
+
+contains
+ uDataModuleFacturasCliente in 'uDataModuleFacturasCliente.pas' {dmFacturasCliente: TDAClientDataModule},
+ schFacturasClienteServer_Intf in '..\Reglas\schFacturasClienteServer_Intf.pas',
+ schFacturasClienteClient_Intf in '..\Reglas\schFacturasClienteClient_Intf.pas',
+ uBizFacturasCliente in '..\Reglas\uBizFacturasCliente.pas',
+ uPluginControllerFacturasCliente in 'uPluginControllerFacturasCliente.pas' {ModuleFacturasCliente: TModuleController},
+ uEditorFacturasCliente in 'uEditorFacturasCliente.pas' {fEditorFacturasCliente: TCustomEditor},
+ uViewFacturasCliente in 'uViewFacturasCliente.pas' {frViewFacturasCliente: TFrame},
+ uViewDatosFacturaCliente in 'uViewDatosFacturaCliente.pas' {frViewDatosFacturaCliente: TFrame},
+ uViewFacturaCliente in 'uViewFacturaCliente.pas' {frViewFacturaCliente: TFrame},
+ uEditorFacturaCliente in 'uEditorFacturaCliente.pas' {fEditorFacturaCliente: TCustomEditor},
+ uViewAlbaranFactura in 'uViewAlbaranFactura.pas' {frViewAlbaranFactura: TCustomView},
+ uViewDetallesFacturaCliente in 'uViewDetallesFacturaCliente.pas' {frViewDetallesFacturaCliente: TCustomView},
+ uEditarPreguntarIVA in 'uEditarPreguntarIVA.pas' {fEditorPreguntarIVA},
+ uEditorPreviewFacturaCliente in 'uEditorPreviewFacturaCliente.pas' {fEditorPreviewFacturaCliente: TCustomEditor};
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/FacturasCliente.drc b/Modulos/Facturas de cliente/Cliente/FacturasCliente.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/FacturasCliente.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Facturas de cliente/Cliente/FacturasCliente.res b/Modulos/Facturas de cliente/Cliente/FacturasCliente.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/FacturasCliente.res differ
diff --git a/Modulos/Facturas de cliente/Cliente/serverlog.txt b/Modulos/Facturas de cliente/Cliente/serverlog.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.ddp b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.dfm b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.dfm
new file mode 100644
index 0000000..8b5d9a3
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.dfm
@@ -0,0 +1,683 @@
+object dmFacturasCliente: TdmFacturasCliente
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 444
+ Top = 330
+ Height = 443
+ Width = 638
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvFacturasCliente'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 32
+ end
+ object tbl_FacturasCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAFACTURA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'NIF/CIF'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasCliente'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasCliente'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasCliente'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'FacturasCliente'
+ IndexDefs = <>
+ Left = 144
+ Top = 32
+ end
+ object ds_FacturasCliente: TDADataSource
+ DataTable = tbl_FacturasCliente
+ Left = 240
+ Top = 32
+ end
+ object tbl_DetallesFacturasCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPODETALLESFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DetallesFacturasCliente_VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOFACTURA=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesFacturasCliente'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesFacturasCliente'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesFacturasCliente'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ MasterSource = ds_FacturasCliente
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOFACTURA'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'DetallesFacturasCliente'
+ IndexDefs = <>
+ Left = 144
+ Top = 88
+ end
+ object ds_DetallesFacturasCliente: TDADataSource
+ DataTable = tbl_DetallesFacturasCliente
+ Left = 240
+ Top = 88
+ end
+ object DADesigntimeCall1: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'UserID'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TLoginInfo'
+ end>
+ RemoteService = RORemoteService2
+ Left = 48
+ Top = 88
+ end
+ object RORemoteService2: TRORemoteService
+ ServiceName = 'srvLogin'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 152
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.pas b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.pas
new file mode 100644
index 0000000..36f905d
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uDataModuleFacturasCliente.pas
@@ -0,0 +1,203 @@
+unit uDataModuleFacturasCliente;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uDADesigntimeCall, uBizFacturasCliente,
+
+ frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode;
+
+type
+ TdmFacturasCliente = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ tbl_FacturasCliente: TDACDSDataTable;
+ ds_FacturasCliente: TDADataSource;
+ tbl_DetallesFacturasCliente: TDACDSDataTable;
+ ds_DetallesFacturasCliente: TDADataSource;
+ DADesigntimeCall1: TDADesigntimeCall;
+ RORemoteService2: TRORemoteService;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ function GetNextAutoinc : integer;
+ function GetItem: IBizFacturasCliente;
+ function GetItems: IBizFacturasCliente;
+ procedure Print(Const Codigo: Integer);
+ procedure Preview(Const Codigo: Integer);
+ function DarNuevaReferencia : String;
+ function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
+ procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
+ end;
+
+var
+ dmFacturasCliente: TdmFacturasCliente;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto,
+ uDataModuleContactos, uDataModuleBase,
+ FactuGES_Intf, uEditorPreviewFacturaCliente, uEditorPreview,
+ uROTypes, schFacturasClienteClient_Intf;
+
+{ TDAClientDataModule1 }
+
+function TdmFacturasCliente.GetItems: IBizFacturasCliente;
+var
+ dtCabecera: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCabecera := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_FacturasCliente, dtCabecera);
+ with dtCabecera do
+ begin
+ BusinessRulesID := BIZ_FACTURASCLIENTE;
+ FieldByName(fld_FacturasClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_FacturasClienteIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesFacturasCliente, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESFACTURASCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesFacturasClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesFacturasClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesFacturasClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+ FieldByName(fld_DetallesFacturasClienteVISIBLE).BusinessRulesID := 'Client.Field.Visible';
+ end;
+ (dtCabecera as IBizFacturasCliente).Detalles := (dtDetalles as IBizDetallesFacturasCliente);
+
+ Result := (dtCabecera as IBizFacturasCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmFacturasCliente.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+ Adapter := dmBase.Adapter;
+end;
+
+
+function TdmFacturasCliente.GetItem: IBizFacturasCliente;
+var
+ dtCabecera: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCabecera := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_AlbaranCliente, dtCabecera);
+ with dtCabecera do
+ begin
+ BusinessRulesID := BIZ_ALBARANCLIENTE;
+ FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesAlbaranCliente, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+ end;
+
+ with (dtAlbaranes as IBizAlbaranesCliente) do
+ begin
+ Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
+ end;
+
+ Result := (dtAlbaranes as IBizAlbaranesCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;}
+end;
+
+function TdmFacturasCliente.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvFacturasCliente).GetNextAutoinc;
+end;
+
+procedure TdmFacturasCliente.Preview(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreviewFacturaCliente : TfEditorPreviewFacturaCliente;
+begin
+ AEditorPreviewFacturaCliente := TfEditorPreviewFacturaCliente.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, 0);
+ AEditorPreviewFacturaCliente.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreviewFacturaCliente.Codigo := Codigo;
+ AEditorPreviewFacturaCliente.ShowModal;
+ finally
+ AEditorPreviewFacturaCliente.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmFacturasCliente.DarNuevaReferencia: String;
+begin
+ Result := (RORemoteService as IsrvFacturasCliente).DarNuevaReferencia;
+end;
+
+function TdmFacturasCliente.PuedoEliminarFactura(CodigoFactura: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvFacturasCliente).PuedoEliminarFactura(CodigoFactura);
+end;
+
+procedure TdmFacturasCliente.Print(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, 0);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmFacturasCliente.Refrescar(lReport: TfrxReport; const Codigo, TamLetra: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+begin
+ AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, TamLetra);
+ lReport.PreviewPages.LoadFromStream(AStream);
+ lReport.ShowPreparedReport;
+end;
+
+initialization
+ dmFacturasCliente := TdmFacturasCliente.Create(nil);
+
+finalization
+ FreeAndNil(dmFacturasCliente);
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.dfm b/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.dfm
new file mode 100644
index 0000000..b11bbe6
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.dfm
@@ -0,0 +1,83 @@
+object fEditorPreguntarIVA: TfEditorPreguntarIVA
+ Left = 562
+ Top = 449
+ BorderStyle = bsDialog
+ Caption = 'Desglose de IVA'
+ ClientHeight = 129
+ ClientWidth = 266
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poOwnerFormCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 56
+ Top = 56
+ Width = 40
+ Height = 13
+ Caption = 'IVA (%) :'
+ end
+ object Label2: TLabel
+ Left = 8
+ Top = 8
+ Width = 250
+ Height = 26
+ Caption =
+ 'Por favor, antes de realizar el desglose de la factura, '#13#10'confir' +
+ 'me el IVA que quiere utilizar:'
+ end
+ object pnlSeleccion: TPanel
+ Left = 0
+ Top = 92
+ Width = 266
+ Height = 37
+ Align = alBottom
+ BevelOuter = bvNone
+ ParentBackground = True
+ TabOrder = 0
+ DesignSize = (
+ 266
+ 37)
+ object bSeleccionar: TButton
+ Left = 103
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Caption = '&Aceptar'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ object bCancelar: TButton
+ Left = 184
+ Top = 7
+ Width = 74
+ Height = 23
+ Anchors = [akRight]
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+ object edtIVA: TcxSpinEdit
+ Left = 104
+ Top = 52
+ Properties.DisplayFormat = '0.00'
+ Properties.ImmediatePost = True
+ Properties.MaxValue = 100.000000000000000000
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Value = 16
+ Width = 121
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.pas b/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.pas
new file mode 100644
index 0000000..89e226e
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditarPreguntarIVA.pas
@@ -0,0 +1,61 @@
+unit uEditarPreguntarIVA;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, ExtCtrls, cxSpinEdit;
+
+type
+ TfEditorPreguntarIVA = class(TForm)
+ pnlSeleccion: TPanel;
+ bSeleccionar: TButton;
+ bCancelar: TButton;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtIVA: TcxSpinEdit;
+ private
+ function GetIVA: Double;
+ procedure SetIVA(const Value: Double);
+ { Private declarations }
+ public
+ property IVA : Double read GetIVA write SetIVA;
+ end;
+
+var
+ fEditorPreguntarIVA: TfEditorPreguntarIVA;
+
+function PreguntarIVA(var IVA : Double) : Boolean;
+
+
+implementation
+
+{$R *.dfm}
+
+function PreguntarIVA(var IVA : Double) : Boolean;
+begin
+ fEditorPreguntarIVA := TfEditorPreguntarIVA.Create(Application);
+ try
+ fEditorPreguntarIVA.IVA := IVA;
+ Result := (fEditorPreguntarIVA.ShowModal = mrOk);
+ finally
+ IVA := fEditorPreguntarIVA.IVA;
+ FreeAndNIL(fEditorPreguntarIVA);
+ end;
+end;
+
+
+{ TForm2 }
+
+function TfEditorPreguntarIVA.GetIVA: Double;
+begin
+ Result := edtIVA.Value;
+end;
+
+procedure TfEditorPreguntarIVA.SetIVA(const Value: Double);
+begin
+ edtIVA.Value := Value;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.ddp b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.dfm b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.dfm
new file mode 100644
index 0000000..96525b7
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.dfm
@@ -0,0 +1,224 @@
+inherited fEditorFacturaCliente: TfEditorFacturaCliente
+ Left = 454
+ Top = 208
+ Width = 777
+ Height = 615
+ Caption = 'Nueva factura de cliente'
+ Constraints.MinHeight = 615
+ Constraints.MinWidth = 766
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 769
+ Caption = 'Nueva factura de cliente'
+ inherited Image1: TImage
+ Left = 742
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F
+ 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601
+ EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6
+ 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C
+ 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058
+ 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB
+ 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3
+ C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960
+ 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C
+ C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859
+ 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8
+ 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF
+ 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116
+ 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D
+ 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049
+ 454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 769
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ object TBXSeparatorItem14: TTBXSeparatorItem [11]
+ end
+ object TBXItem7: TTBXItem [12]
+ Action = actDesglosarIVA
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ object TBXSubmenuItem2: TTBXSubmenuItem [3]
+ Caption = '&Herramientas'
+ object TBXItem33: TTBXItem
+ Action = actDesglosarIVA
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 769
+ Height = 364
+ inherited pagGeneral: TTabSheet
+ inline frViewFacturaCliente1: TfrViewFacturaCliente
+ Left = 0
+ Top = 0
+ Width = 761
+ Height = 336
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 300
+ Constraints.MinWidth = 761
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 313
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ Properties.OnChange = frViewDatosYSeleccionContacto1edtlNombrePropertiesChange
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ end
+ inherited edtCalle: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaCliente1.DADataSource
+ end
+ end
+ inherited frViewFormaPago1: TfrViewFormaPago
+ Top = 215
+ TabOrder = 2
+ inherited memFormaPago: TcxDBMemo
+ Height = 78
+ end
+ end
+ inherited frViewObservaciones1: TfrViewObservaciones
+ Top = 215
+ TabOrder = 1
+ inherited memObservaciones: TcxDBMemo
+ Height = 78
+ end
+ end
+ inherited frViewDatosFacturaCliente1: TfrViewDatosFacturaCliente
+ inherited eReferencia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ end
+ end
+ end
+ object pagContenido: TTabSheet
+ Caption = 'Contenido'
+ ImageIndex = 1
+ inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente
+ Left = 0
+ Top = 0
+ Width = 761
+ Height = 336
+ 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 = 761
+ Height = 314
+ end
+ inherited ToolBar1: TToolBar
+ Width = 761
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 562
+ Width = 769
+ end
+ inline frViewTotales1: TfrViewTotales [4]
+ Left = 0
+ Top = 440
+ Width = 769
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited TabControl1: TTabControl
+ Width = 769
+ inherited GroupBox1: TGroupBox
+ inherited lblBase: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit3: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit4: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit1: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit2: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ object actDesglosarIVA: TAction
+ Category = 'Herramientas'
+ Caption = 'Desglosar IVA'
+ OnExecute = actDesglosarIVAExecute
+ end
+ end
+ inherited SmallImages: TPngImageList [6]
+ end
+ inherited LargeImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+ inherited dsDataTable: TDADataSource
+ OnDataChange = dsDataTableDataChange
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.pas b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.pas
new file mode 100644
index 0000000..d203dbf
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorFacturaCliente.pas
@@ -0,0 +1,189 @@
+unit uEditorFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
+ uViewFacturaCliente, uCustomView, uViewBase, uViewContenido, uViewTotales,
+ StdCtrls, pngimage, AppEvnts,
+ uBizFacturasCliente, uViewDetallesNormales, uViewDetallesFacturaCliente,
+ uViewDetallesFamilias, JvComponentBase;
+
+type
+ IEditorFacturaCliente = interface(IEditorDBItem)
+ ['{6989A930-FB5B-47E7-A836-7EEB8108128F}']
+ function GetFacturaCliente: IBizFacturasCliente;
+ procedure SetFacturaCliente(const Value: IBizFacturasCliente);
+ property FacturaCliente: IBizFacturasCliente read GetFacturaCliente write
+ SetFacturaCliente;
+ end;
+
+ TfEditorFacturaCliente = class(TfEditorDBItem, IEditorFacturaCliente)
+ frViewTotales1: TfrViewTotales;
+ pagContenido: TTabSheet;
+ frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente;
+ frViewFacturaCliente1: TfrViewFacturaCliente;
+ actDesglosarIVA: TAction;
+ TBXSeparatorItem14: TTBXSeparatorItem;
+ TBXItem7: TTBXItem;
+ TBXSubmenuItem2: TTBXSubmenuItem;
+ TBXItem33: TTBXItem;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure FormShow(Sender: TObject); override;
+ procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+ procedure actDesglosarIVAExecute(Sender: TObject);
+ private
+ FFacturaCliente: IBizFacturasCliente;
+ FViewFacturaCliente: IViewFacturaCliente;
+ protected
+ function GetFacturaCliente: IBizFacturasCliente;
+ function GetViewFactura: IViewFacturaCliente;
+ procedure SetFacturaCliente(const Value: IBizFacturasCliente);
+ procedure SetViewFactura(const Value: IViewFacturaCliente);
+ property ViewFacturaCliente: IViewFacturaCliente read GetViewFactura write
+ SetViewFactura;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property FacturaCliente: IBizFacturasCliente read GetFacturaCliente write
+ SetFacturaCliente;
+ end;
+
+var
+ fEditorFacturaCliente: TfEditorFacturaCliente;
+
+implementation
+
+uses uEditorUtils, uDataModuleFacturasCliente, uBizImportesDetalleBase,
+ uDataModulePresupuestos, schFacturasClienteClient_Intf, uExceptions;
+
+{$R *.dfm}
+
+function ShowEditorFacturaCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturaCliente;
+begin
+ AEditor := TfEditorFacturaCliente.Create(Application);
+ try
+ AEditor.FacturaCliente := (ABizObject as IBizFacturasCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorFacturaCliente }
+
+{
+**************************** TfEditorFacturaCliente ****************************
+}
+constructor TfEditorFacturaCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewFacturaCliente := CreateView(TfrViewFacturaCliente) as IViewFacturaCliente;
+ pgPaginas.ActivePageIndex := 0;
+ ViewFacturaCliente := frViewFacturaCliente1;
+end;
+
+destructor TfEditorFacturaCliente.Destroy;
+begin
+ FViewFacturaCliente := NIL;
+ FFacturaCliente := NIL;
+ inherited;
+end;
+
+procedure TfEditorFacturaCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este albarán de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorFacturaCliente.dsDataTableDataChange(Sender: TObject; Field:
+ TField);
+begin
+ inherited;
+ if Assigned(FFacturaCliente) and (not (FFacturaCliente.DataTable.Fetching) or
+ not (FFacturaCliente.DataTable.Opening) or not (FFacturaCliente.DataTable.Closing)) then
+ begin
+ end;
+end;
+
+procedure TfEditorFacturaCliente.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewFacturaCliente) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(FacturaCliente) then
+ raise Exception.Create('No hay ningún albarán asignado');
+
+ FacturaCliente.DataTable.Active := True;
+// FViewFacturaCliente.ShowEmbedded(pagGeneral);
+// FViewFacturaCliente.SetFocus;
+end;
+
+function TfEditorFacturaCliente.GetFacturaCliente: IBizFacturasCliente;
+begin
+ Result := FFacturaCliente;
+end;
+
+function TfEditorFacturaCliente.GetViewFactura: IViewFacturaCliente;
+begin
+ Result := FViewFacturaCliente;
+end;
+
+procedure TfEditorFacturaCliente.SetFacturaCliente(const Value:
+ IBizFacturasCliente);
+begin
+ FFacturaCliente := Value;
+
+ if Assigned(FFacturaCliente) then
+ begin
+ dsDataTable.DataTable := FFacturaCliente.DataTable;
+ frViewTotales1.DADataSource.DataTable := FFacturaCliente.DataTable;
+ frViewDetallesFacturaCliente1.DADataSource.DataTable := FFacturaCliente.Detalles.DataTable;
+
+ if Assigned(FViewFacturaCliente) then
+ FViewFacturaCliente.FacturaCliente := FFacturaCliente;
+ end;
+end;
+
+procedure TfEditorFacturaCliente.SetViewFactura(const Value:
+ IViewFacturaCliente);
+begin
+ FViewFacturaCliente := Value;
+
+ if Assigned(FViewFacturaCliente) and Assigned(FacturaCliente) then
+ FViewFacturaCliente.FacturaCliente := FacturaCliente;
+end;
+
+procedure TfEditorFacturaCliente.frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewFacturaCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nueva factura de cliente'
+ else
+ JvNavPanelHeader.Caption := 'Factura de ' + frViewFacturaCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+procedure TfEditorFacturaCliente.actDesglosarIVAExecute(Sender: TObject);
+begin
+ inherited;
+ FFacturaCliente.DesglosarIVA
+end;
+
+initialization
+ RegisterEditor(IBizFacturasCliente, ShowEditorFacturaCliente, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.ddp b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.dfm b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.dfm
new file mode 100644
index 0000000..287944f
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.dfm
@@ -0,0 +1,1392 @@
+inherited fEditorFacturasCliente: TfEditorFacturasCliente
+ Left = 238
+ Top = 281
+ Width = 705
+ Caption = 'Lista de facturas de cliente'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 697
+ Caption = 'Lista de facturas de cliente'
+ inherited Image1: TImage
+ Left = 670
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F
+ 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601
+ EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6
+ 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C
+ 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058
+ 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB
+ 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3
+ C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960
+ 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C
+ C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859
+ 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8
+ 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF
+ 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116
+ 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D
+ 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049
+ 454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 697
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem14: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem33: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 395
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 697
+ end
+ inherited EditorActionList: TActionList
+ Left = 136
+ Top = 200
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end>
+ Left = 507
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001BE4944415478DA
+ 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80
+ F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3
+ C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978
+ 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9
+ E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1
+ 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850
+ 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7
+ E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3
+ 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988
+ C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70
+ 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F
+ C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5
+ 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F
+ 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42
+ 0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Left = 547
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage
+ Left = 584
+ Top = 80
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage
+ Left = 616
+ Top = 80
+ end
+ inherited dsDataTable: TDADataSource
+ Left = 56
+ Top = 200
+ end
+ inherited GridPopupMenu: TPopupMenu
+ Left = 96
+ Top = 200
+ inherited Duplicar1: TMenuItem
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.pas b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.pas
new file mode 100644
index 0000000..a6ca782
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorFacturasCliente.pas
@@ -0,0 +1,147 @@
+unit uEditorFacturasCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
+ JvNavigationPane, uViewGrid, pngimage, uBizFacturasCliente,
+ JvComponentBase, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, TBXDkPanels,
+ dxLayoutControl, JvButton, cxRadioGroup, Buttons;
+
+type
+ IEditorFacturasCliente = interface(IEditorGrid)
+ ['{597BF875-BD19-4B68-898F-B09982B3360A}']
+ function GetFacturasCliente: IBizFacturasCliente;
+ procedure SetFacturasCliente(const Value: IBizFacturasCliente);
+ property FacturasCliente: IBizFacturasCliente read GetFacturasCliente
+ write SetFacturasCliente;
+ end;
+
+ TfEditorFacturasCliente = class(TfEditorGrid, IEditorFacturasCliente)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ private
+ FFacturasCliente: IBizFacturasCliente;
+ protected
+ function GetFacturasCliente: IBizFacturasCliente;
+ procedure SetFacturasCliente(const Value: IBizFacturasCliente);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property FacturasCliente: IBizFacturasCliente read GetFacturasCliente write SetFacturasCliente;
+ end;
+
+var
+ fEditorFacturasCliente: TfEditorFacturasCliente;
+
+implementation
+
+uses
+ uDataModuleFacturasCliente, uViewFacturasCliente,
+ uEditorUtils;
+
+{$R *.dfm}
+
+function ShowEditorFacturasCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturasCliente;
+begin
+ AEditor := TfEditorFacturasCliente.Create(Application);
+ try
+ AEditor.FacturasCliente := (ABizObject as IBizFacturasCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorFacturasCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturasCliente;
+begin
+ AEditor := TfEditorFacturasCliente.Create(Application);
+ try
+ AEditor.FacturasCliente := (ABizObject as IBizFacturasCliente);
+// AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+*************************** TfEditorFacturasCliente ***************************
+}
+constructor TfEditorFacturasCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewFacturasCliente) as IViewFacturasCliente;
+end;
+
+destructor TfEditorFacturasCliente.Destroy;
+begin
+ FFacturasCliente := NIL;
+ inherited;
+end;
+
+procedure TfEditorFacturasCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar esta factura de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorFacturasCliente.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ FacturasCliente.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorFacturasCliente.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ FacturasCliente.Insert;
+ FacturasCliente.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+function TfEditorFacturasCliente.GetFacturasCliente: IBizFacturasCliente;
+begin
+ Result := FFacturasCliente;
+end;
+
+procedure TfEditorFacturasCliente.SetFacturasCliente(const Value:
+ IBizFacturasCliente);
+begin
+ FFacturasCliente := Value;
+ dsDataTable.DataTable := FFacturasCliente.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewFacturasCliente).FacturasCliente := FacturasCliente;
+end;
+
+procedure TfEditorFacturasCliente.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(FacturasCliente) then
+ (ViewGrid as IViewFacturasCliente).FacturasCliente := FFacturasCliente;
+end;
+
+initialization
+ RegisterEditor(IBizFacturasCliente, ShowEditorFacturasCliente, etItems);
+ RegisterEditor(IBizFacturasCliente, ShowSelectEditorFacturasCliente, etSelectItems);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.ddp b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.dfm b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.dfm
new file mode 100644
index 0000000..f86464a
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.dfm
@@ -0,0 +1,440 @@
+inherited fEditorPreviewFacturaCliente: TfEditorPreviewFacturaCliente
+ OnCreate = CustomEditorCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited TBXDock: TTBXDock
+ inherited TBXToolbar1: TTBXToolbar
+ object TBXItem38: TTBXItem
+ Action = actAumentarTamLetra
+ Images = PreviewSmallImageList
+ end
+ object TBXItem43: TTBXItem
+ Action = actDisminuirTamLetra
+ Images = PreviewSmallImageList
+ end
+ end
+ end
+ inherited PreviewActionList: TActionList
+ object actAumentarTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 11
+ OnExecute = actAumentarTamLetraExecute
+ end
+ object actDisminuirTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 12
+ OnExecute = actDisminuirTamLetraExecute
+ end
+ end
+ inherited 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000010A4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001ABF88321E3FEFBEF40CE8DFF8CB80C00299C0FC40EA09007E22540
+ 3C151A130B9E7FCF4878033440E7210E0370819F868CFF41368334BF0426AD47
+ 1F19187EFD252129BFD060FC8FAE19EC622C5E900352CF8001F607C8D607B21F
+ 01D9EF61F2F35918FF8334A7FF27D10BB0509F018C0C103B03C805D1009D9F97
+ 36069839440000000049454E44AE426082}
+ Name = 'PngImage11'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000000EC4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001AB0834E4012103400AE703B10328E4817809104F85C6C402A00189
+ 0463011BF869C8F8FFFD7706863740FC1298B41E7D6460F8F59784A4FC4283F1
+ 3FBA66B02BB078410E483D033AF50F90AD0F643F02B2DF633394242FE00200A6
+ 308833CD7332EF0000000049454E44AE426082}
+ Name = 'PngImage12'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited frxReport1: TfrxReport
+ Datasets = <>
+ Variables = <>
+ Style = <>
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.pas b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.pas
new file mode 100644
index 0000000..b44bd29
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uEditorPreviewFacturaCliente.pas
@@ -0,0 +1,72 @@
+unit uEditorPreviewFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
+ JvNavigationPane;
+
+const
+ CTE_TamLetraIni = 10;
+ CTE_TamLetraMin = 5;
+ CTE_TamLetraMax = 30;
+ CTE_Aumento = 2;
+
+type
+ TfEditorPreviewFacturaCliente = class(TfEditorPreview)
+ TBXItem38: TTBXItem;
+ actAumentarTamLetra: TAction;
+ TBXItem43: TTBXItem;
+ actDisminuirTamLetra: TAction;
+ procedure CustomEditorCreate(Sender: TObject);
+
+ procedure actAumentarTamLetraExecute(Sender: TObject);
+ procedure actDisminuirTamLetraExecute(Sender: TObject);
+ private
+ FCodigo: Integer;
+ TamLetra: Integer;
+ public
+ property Codigo: Integer read FCodigo write FCodigo;
+ end;
+
+var
+ fEditorPreviewFacturaCliente: TfEditorPreviewFacturaCliente;
+
+implementation
+{$R *.dfm}
+
+uses uDataModuleFacturasCliente;
+
+procedure TfEditorPreviewFacturaCliente.actAumentarTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra >= CTE_TamLetraMax) then
+ Exit;
+
+ TamLetra := TamLetra + CTE_Aumento;
+ dmFacturasCliente.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+procedure TfEditorPreviewFacturaCliente.CustomEditorCreate(Sender: TObject);
+begin
+ inherited;
+ TamLetra := CTE_TamLetraIni;
+end;
+
+procedure TfEditorPreviewFacturaCliente.actDisminuirTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra <= CTE_TamLetraMin) then
+ Exit;
+
+ TamLetra := TamLetra - CTE_Aumento;
+ dmFacturasCliente.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.dfm b/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.dfm
new file mode 100644
index 0000000..c01ada8
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.dfm
@@ -0,0 +1,209 @@
+object ModuleFacturasCliente: TModuleFacturasCliente
+ OldCreateOrder = True
+ DefaultAction = actFacturasCliente
+ Description = 'Facturas de cliente'
+ ModuleMenu = MainMenu
+ ModuleName = 'Facturas de cliente'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 693
+ Top = 665
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001BE4944415478DA
+ 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80
+ F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3
+ C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978
+ 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9
+ E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1
+ 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850
+ 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7
+ E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3
+ 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988
+ C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70
+ 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F
+ C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5
+ 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F
+ 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42
+ 0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actFacturasCliente: TAction
+ Category = 'Ventas'
+ Caption = 'Facturas de cliente'
+ ImageIndex = 1
+ OnExecute = actFacturasClienteExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Tag = 200
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 0
+ object MenuItem2: TMenuItem
+ Tag = 4000
+ Action = actFacturasCliente
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002834944415478DA
+ BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658
+ 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494
+ 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810
+ 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A
+ 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979
+ D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB
+ 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1
+ 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72
+ E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80
+ AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA
+ 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65
+ 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053
+ 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702
+ BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0
+ C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76
+ 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470
+ FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF
+ FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A
+ 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0
+ 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A
+ E74CD9D0710000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.pas b/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.pas
new file mode 100644
index 0000000..21293a2
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uPluginControllerFacturasCliente.pas
@@ -0,0 +1,68 @@
+unit uPluginControllerFacturasCliente;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCFacturasCliente = interface(IInterface)
+ ['{ECAE56F7-4DC8-4912-AC2C-CC64B65D4517}']
+ end;
+
+ TModuleFacturasCliente = class(TModuleController, IMCFacturasCliente)
+ actFacturasCliente: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ MenuItem2: TMenuItem;
+ procedure actFacturasClienteExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uBizFacturasCliente,
+ uDataModuleFacturasCliente, uEditorFacturasCliente;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleFacturasCliente.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TModuleFacturasCliente.actFacturasClienteExecute(Sender: TObject);
+var
+ aObj: IEditorFacturasCliente;
+ AFacturasCliente : IBizFacturasCliente;
+begin
+ AFacturasCliente := dmFacturasCliente.GetItems;
+ aObj := TfEditorFacturasCliente.Create(Application);
+ try
+ with aObj do
+ begin
+ FacturasCliente := AFacturasCliente;
+ ShowEmbedded;
+ end;
+ finally
+ AFacturasCliente := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleFacturasCliente);
+
+finalization
+ UnRegisterModuleClass(TModuleFacturasCliente);
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.dfm b/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.dfm
new file mode 100644
index 0000000..4fb76c6
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.dfm
@@ -0,0 +1,11 @@
+inherited frViewAlbaranFactura: TfrViewAlbaranFactura
+ inherited edtlReferencia: TcxDBTextEdit
+ Height = 21
+ Width = 245
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirAlbaran: TAction
+ OnExecute = actElegirAlbaranExecute
+ end
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.pas b/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.pas
new file mode 100644
index 0000000..73e3fb6
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewAlbaranFactura.pas
@@ -0,0 +1,52 @@
+unit uViewAlbaranFactura;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewAlbaranRelacionado, DB, uDADataTable, ImgList,
+ PngImageList, ActnList, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit, ComCtrls, ToolWin, ExtCtrls, StdCtrls;
+
+type
+ TfrViewAlbaranFactura = class(TfrViewAlbaranRelacionado)
+ procedure actElegirAlbaranExecute(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewAlbaranFactura: TfrViewAlbaranFactura;
+
+implementation
+{$R *.dfm}
+
+uses uBizAlbaranesCliente, uDataModuleAlbaranesCliente;
+
+procedure TfrViewAlbaranFactura.actElegirAlbaranExecute(Sender: TObject);
+var
+ AAlbaran : IBizAlbaranesCliente;
+begin
+ inherited;
+
+ if Length(edtlReferencia.Text) > 0 then
+ if (MessageBox(0, 'Esta factura ya tiene asociado un albarán. '+#13+#10+
+ 'Si elige otro albarán, se cambiará en esta factura el cliente y los conceptos '+#13+#10+
+ 'para hacerlos coincidir con el albarán elegido. '+#13+#10+
+ '¿Desea continuar?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idNo) then
+ Exit;
+
+ AAlbaran := dmAlbaranesCliente.GetItems;
+ try
+ if AAlbaran.ShowForSelect = mrOK then
+ begin
+ Self.Albaran := dmAlbaranesCliente.GetItemsSeleccionados(AAlbaran)
+ end;
+ finally
+ AAlbaran := NIL;
+ end;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.dfm b/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.dfm
new file mode 100644
index 0000000..60a218c
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.dfm
@@ -0,0 +1,99 @@
+inherited frViewDatosFacturaCliente: TfrViewDatosFacturaCliente
+ Width = 360
+ Height = 112
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 112)
+ object Bevel1: TBevel
+ Left = 184
+ Top = 8
+ Width = 165
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 170
+ Height = 13
+ Caption = 'Datos de la factura de cliente'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 69
+ Height = 13
+ Caption = 'Fecha de alta:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 80
+ Width = 61
+ Height = 13
+ Caption = 'Vencimiento:'
+ end
+ object edtFecha: TcxDBDateEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAFACTURA'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtVencimiento: TcxDBDateEdit
+ Left = 100
+ Top = 76
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.Color = clMenuBar
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.pas b/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.pas
new file mode 100644
index 0000000..4fca27e
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDatosFacturaCliente.pas
@@ -0,0 +1,35 @@
+unit uViewDatosFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxMemo, cxRichEdit, cxDBRichEdit;
+
+type
+ TfrViewDatosFacturaCliente = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFecha: TcxDBDateEdit;
+ Label3: TLabel;
+ edtVencimiento: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosFacturaCliente: TfrViewDatosFacturaCliente;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.dfm b/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.dfm
new file mode 100644
index 0000000..59080a4
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.dfm
@@ -0,0 +1,52 @@
+inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ inherited cxGridViewTIPO: TcxGridDBColumn
+ Width = 69
+ end
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ Width = 526
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn [3]
+ DataBinding.FieldName = 'PUNTOS'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 74
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn [4]
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 124
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Properties.Alignment.Horz = taRightJustify
+ Width = 83
+ end
+ inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewVISIBLE: TcxGridDBColumn
+ Styles.OnGetContentStyle = cxGridViewVISIBLEStylesGetContentStyle
+ Width = 76
+ end
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStyle_PUNTOS: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = 16053492
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ TextColor = clWindowText
+ end
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.pas b/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.pas
new file mode 100644
index 0000000..93b796c
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesAlbaranCliente.pas
@@ -0,0 +1,94 @@
+unit uViewDetallesAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, Controls,
+ PngImageList, uDADataTable, Classes, ActnList, ComCtrls, ToolWin,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesFamilias,
+ cxCheckBox, cxMaskEdit, cxCurrencyEdit;
+
+type
+ TfrViewDetallesAlbaranCliente = class(TfrViewDetallesFamilias)
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxStyle_PUNTOS: TcxStyle;
+ procedure cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ end;
+
+
+implementation
+
+uses
+ Variants, uBizImportesDetalleBase, SysUtils;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesAlbaranCliente.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.ddp b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.dfm b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.dfm
new file mode 100644
index 0000000..f635cff
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.dfm
@@ -0,0 +1,54 @@
+inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ inherited cxGridViewTIPO: TcxGridDBColumn
+ Width = 69
+ end
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ Width = 526
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn [3]
+ DataBinding.FieldName = 'PUNTOS'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Visible = False
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 74
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn [4]
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Visible = False
+ Styles.OnGetContentStyle = cxGridViewPUNTOSStylesGetContentStyle
+ Width = 124
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Properties.Alignment.Horz = taRightJustify
+ Width = 83
+ end
+ inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ Width = 157
+ end
+ inherited cxGridViewVISIBLE: TcxGridDBColumn
+ Styles.OnGetContentStyle = cxGridViewVISIBLEStylesGetContentStyle
+ Width = 76
+ end
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStyle_PUNTOS: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = 16053492
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ TextColor = clWindowText
+ end
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.pas b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.pas
new file mode 100644
index 0000000..29be932
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente.pas
@@ -0,0 +1,94 @@
+unit uViewDetallesFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, Controls,
+ PngImageList, uDADataTable, Classes, ActnList, ComCtrls, ToolWin,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesFamilias,
+ cxCheckBox, cxMaskEdit, cxCurrencyEdit;
+
+type
+ TfrViewDetallesFacturaCliente = class(TfrViewDetallesFamilias)
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxStyle_PUNTOS: TcxStyle;
+ procedure cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ end;
+
+
+implementation
+
+uses
+ Variants, uBizImportesDetalleBase, SysUtils;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.dfm b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.dfm
new file mode 100644
index 0000000..61f7862
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.dfm
@@ -0,0 +1,55 @@
+inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ object cxGridViewPOSICION: TcxGridDBColumn
+ DataBinding.FieldName = 'POSICION'
+ Visible = False
+ SortIndex = 0
+ SortOrder = soAscending
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ DataBinding.FieldName = 'TIPO'
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Width = 831
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ BestFitMaxWidth = 64
+ HeaderAlignmentHorz = taRightJustify
+ Width = 75
+ end
+ object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEUNIDAD'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Width = 179
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Options.Editing = False
+ Width = 181
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn
+ DataBinding.FieldName = 'PUNTOS'
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ end
+ object cxGridViewVISIBLE: TcxGridDBColumn
+ DataBinding.FieldName = 'VISIBLE'
+ end
+ end
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.pas b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.pas
new file mode 100644
index 0000000..9090e92
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewDetallesFacturaCliente2.pas
@@ -0,0 +1,100 @@
+unit uViewDetallesFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, Controls,
+ PngImageList, uDADataTable, Classes, ActnList, ComCtrls, ToolWin,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesFamilias,
+ cxCheckBox, cxMaskEdit, cxCurrencyEdit, uViewDetallesNormales;
+
+type
+ TfrViewDetallesFacturaCliente = class(TfrViewDetallesFamilias)
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewCANTIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewPOSICION: TcxGridDBColumn;
+ cxGridViewTIPO: TcxGridDBColumn;
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxGridViewVISIBLE: TcxGridDBColumn;
+ procedure cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ end;
+
+
+implementation
+
+uses
+ Variants, uBizImportesDetalleBase, SysUtils;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+{ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;}
+end;
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesFacturaCliente.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+{ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;}
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.dfm b/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.dfm
new file mode 100644
index 0000000..f7fadf6
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.dfm
@@ -0,0 +1,196 @@
+inherited frViewFacturaCliente: TfrViewFacturaCliente
+ Width = 761
+ Height = 310
+ Align = alClient
+ Constraints.MinHeight = 310
+ Constraints.MinWidth = 761
+ inline frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ Left = 362
+ Top = 0
+ Width = 391
+ Height = 228
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 265
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ Caption = 'Dar de alta un cliente'
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ TabOrder = 4
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ TabOrder = 3
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ Left = 181
+ Width = 182
+ ButtonWidth = 178
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 32
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ OnExecute = frViewDatosYSeleccionContacto1actElegirContactoExecute
+ end
+ inherited actAnadirContacto: TAction
+ OnExecute = frViewDatosYSeleccionContacto1actAnadirContactoExecute
+ end
+ inherited actVerContacto: TAction
+ OnExecute = frViewDatosYSeleccionContacto1actVerContactoExecute
+ end
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 8
+ Top = 229
+ Width = 360
+ Height = 125
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 252
+ end
+ inherited memFormaPago: TcxDBMemo
+ Height = 86
+ Width = 329
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 376
+ Top = 229
+ Width = 380
+ Height = 125
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 272
+ end
+ inherited memObservaciones: TcxDBMemo
+ Height = 90
+ Width = 349
+ end
+ end
+ inline frViewDatosFacturaCliente1: TfrViewDatosFacturaCliente
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Label3: TLabel
+ Visible = False
+ end
+ inherited edtVencimiento: TcxDBDateEdit
+ Visible = False
+ end
+ end
+ inline frViewAlbaranFactura1: TfrViewAlbaranFactura
+ Left = 8
+ Top = 107
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited ToolBar1: TToolBar
+ Left = 0
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.pas b/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.pas
new file mode 100644
index 0000000..0adb86b
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewFacturaCliente.pas
@@ -0,0 +1,152 @@
+unit uViewFacturaCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, uCustomView,
+ uViewDatosYSeleccionContacto, uViewDatosFacturaCliente,
+ uViewObservaciones, uViewFormaPago, AppEvnts, uBizFacturasCliente,
+ cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit,
+ uViewAlbaranRelacionado, uViewAlbaranFactura;
+
+type
+ IViewFacturaCliente = interface(IViewBase)
+ ['{3A95930C-20B3-41E9-93CB-21138ADB5B70}']
+ function GetFacturaCliente: IBizFacturasCliente;
+ procedure SetFacturaCliente(const Value: IBizFacturasCliente);
+ property FacturaCliente: IBizFacturasCliente read GetFacturaCliente
+ write SetFacturaCliente;
+ end;
+
+ TfrViewFacturaCliente = class(TfrViewBase, IViewFacturaCliente)
+ DADataSource: TDADataSource;
+ frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewDatosFacturaCliente1: TfrViewDatosFacturaCliente;
+ frViewAlbaranFactura1: TfrViewAlbaranFactura;
+ procedure frViewDatosYSeleccionContacto1actElegirContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1actAnadirContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1actVerContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged(
+ Sender: TObject);
+ private
+ FFacturaCliente : IBizFacturasCliente;
+ procedure OnContactoChanged (Sender : TObject);
+ procedure OnAlbaranChanged(Sender : TObject);
+ protected
+ function GetFacturaCliente: IBizFacturasCliente;
+ procedure SetFacturaCliente(const Value: IBizFacturasCliente);
+ public
+ property FacturaCliente: IBizFacturasCliente read GetFacturaCliente
+ write SetFacturaCliente;
+ end;
+
+var
+ frViewFacturaCliente: TfrViewFacturaCliente;
+
+implementation
+
+uses uBizContacto, uExceptions, uDataModuleContactos,
+ schFacturasClienteClient_Intf, uDataModuleAlbaranesCliente;
+
+{$R *.dfm}
+
+{ TfrViewFacturaCliente }
+
+function TfrViewFacturaCliente.GetFacturaCliente: IBizFacturasCliente;
+begin
+ Result := FFacturaCliente;
+end;
+
+procedure TfrViewFacturaCliente.OnContactoChanged(Sender: TObject);
+begin
+ FFacturaCliente.Cliente := (frViewDatosYSeleccionContacto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewFacturaCliente.SetFacturaCliente(
+ const Value: IBizFacturasCliente);
+begin
+ FFacturaCliente := Value;
+ if Assigned(FFacturaCliente) then
+ begin
+ DADataSource.DataTable := FFacturaCliente.DataTable;
+
+ //Solo se deshabilita al insertar, luego la referencia será modificable
+ if FFacturaCliente.DataTable.State = dsInsert then
+ frViewDatosFacturaCliente1.eReferencia.Enabled := False;
+ end
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosFacturaCliente1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewDatosYSeleccionContacto1.Contacto := FFacturaCliente.Cliente;
+ frViewDatosYSeleccionContacto1.OnContactoChanged := OnContactoChanged;
+
+ frViewAlbaranFactura1.Albaran := dmAlbaranesCliente.GetItem(FFacturaCliente.CODIGOALBARAN);
+ frViewAlbaranFactura1.OnAlbaranChanged := OnAlbaranChanged;
+end;
+
+procedure TfrViewFacturaCliente.frViewDatosYSeleccionContacto1actElegirContactoExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewDatosYSeleccionContacto1.actElegirContactoExecute(Sender);
+
+end;
+
+procedure TfrViewFacturaCliente.frViewDatosYSeleccionContacto1actAnadirContactoExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewDatosYSeleccionContacto1.actAnadirContactoExecute(Sender);
+
+end;
+
+procedure TfrViewFacturaCliente.frViewDatosYSeleccionContacto1actVerContactoExecute(
+ Sender: TObject);
+var
+ AContacto : IBizCliente;
+begin
+ inherited;
+ AContacto := dmContactos.GetCliente(FFacturaCliente.CODIGOCONTACTO);
+ try
+ AContacto.Show;
+ finally
+ AContacto := NIL;
+ end;
+end;
+
+procedure TfrViewFacturaCliente.frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ with (Sender as TcxDBTextEdit) do
+ Enabled := (FFacturaCliente.CODIGOCONTACTO <> 0)
+end;
+
+procedure TfrViewFacturaCliente.OnAlbaranChanged(Sender: TObject);
+var
+ DesglosarIVA : Boolean;
+begin
+ if not (FFacturaCliente.DataTable.State in dsEditModes) then
+ FFacturaCliente.Edit;
+
+ FFacturaCliente.CopyFrom(frViewAlbaranFactura1.Albaran);
+ frViewDatosYSeleccionContacto1.Contacto := FFacturaCliente.Cliente;
+
+ // ¿Desglosar el IVA?
+ if Application.MessageBox('¿Desea desglosar el IVA a partir del albarán?', 'Atención', MB_YESNO) = IDYES then
+ FFacturaCliente.DesglosarIVA
+ else
+ MessageBox(0, 'Se ha copiado correctamente el albarán elegido en esta factura.', 'Albarán copiado', MB_ICONWARNING or MB_OK);
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.ddp b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.ddp differ
diff --git a/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.dfm b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.dfm
new file mode 100644
index 0000000..2ba42c4
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.dfm
@@ -0,0 +1,160 @@
+inherited frViewFacturasCliente: TfrViewFacturasCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 Facturas'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Options.Sorting = False
+ Width = 25
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 21
+ IsCaptionAssigned = True
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ PropertiesClassName = 'TcxTextEditProperties'
+ SortIndex = 0
+ SortOrder = soDescending
+ Width = 51
+ end
+ object cxGridViewFECHAFACTURA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAFACTURA'
+ SortIndex = 1
+ SortOrder = soDescending
+ Width = 74
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 134
+ end
+ object cxGridViewNIFCIF: TcxGridDBColumn
+ DataBinding.FieldName = 'NIFCIF'
+ Width = 48
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 67
+ end
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.pas b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.pas
new file mode 100644
index 0000000..e439833
--- /dev/null
+++ b/Modulos/Facturas de cliente/Cliente/uViewFacturasCliente.pas
@@ -0,0 +1,130 @@
+unit uViewFacturasCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics,
+ cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList,
+ PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable,
+ cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
+ cxImage, Grids, DBGrids, uBizFacturasCliente, cxCurrencyEdit,
+ uViewFiltroBase;
+
+type
+ IViewFacturasCliente = interface(IViewGrid)
+ ['{0B893BAC-967F-45BD-BD74-B1B78662FCFC}']
+ procedure SyncFocusedRecord;
+ function GetFacturasCliente: IBizFacturasCliente;
+ procedure SetFacturasCliente(const Value: IBizFacturasCliente);
+ property FacturasCliente: IBizFacturasCliente read GetFacturasCliente write SetFacturasCliente;
+ end;
+
+ TfrViewFacturasCliente = class(TfrViewGrid, IViewFacturasCliente)
+ PngImageList: TPngImageList;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewFECHAFACTURA: TcxGridDBColumn;
+ cxGridViewNIFCIF: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroFechas;
+
+ protected
+ FFacturasCliente: IBizFacturasCliente;
+ function GetFacturasCliente: IBizFacturasCliente;
+ procedure SetFacturasCliente(const Value: IBizFacturasCliente);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ procedure SyncFocusedRecord;
+ property FacturasCliente: IBizFacturasCliente read GetFacturasCliente write SetFacturasCliente;
+ end;
+
+var
+ frViewFacturasCliente: TfrViewFacturasCliente;
+
+implementation
+
+uses
+ uDataModuleFacturasCliente;
+
+{$R *.dfm}
+
+{ TfrViewFacturasCliente }
+
+function TfrViewFacturasCliente.GetFacturasCliente: IBizFacturasCliente;
+begin
+ Result := FFacturasCliente;
+end;
+
+procedure TfrViewFacturasCliente.SetFacturasCliente(
+ const Value: IBizFacturasCliente);
+begin
+ FFacturasCliente := Value;
+ if Assigned(FFacturasCliente) then
+ DADataSource.DataTable := FFacturasCliente.DataTable;
+end;
+
+procedure TfrViewFacturasCliente.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewFacturasCliente.SyncFocusedRecord;
+begin
+//
+end;
+
+procedure TfrViewFacturasCliente.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAFACTURA');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+procedure TfrViewFacturasCliente.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+end.
diff --git a/Modulos/Facturas de cliente/Reglas/schFacturasClienteClient_Intf.pas b/Modulos/Facturas de cliente/Reglas/schFacturasClienteClient_Intf.pas
new file mode 100644
index 0000000..6884e8f
--- /dev/null
+++ b/Modulos/Facturas de cliente/Reglas/schFacturasClienteClient_Intf.pas
@@ -0,0 +1,1334 @@
+unit schFacturasClienteClient_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_DarReferenciaFactura = '{0A0311FE-E619-4E86-8FB5-DF8D223B48EA}';
+ RID_FacturasCliente = '{896C2481-665F-4006-88F1-3C08F7AE938C}';
+ RID_DetallesFacturasCliente = '{A966AEEF-FB48-42DA-A290-C9AD58B38E48}';
+ RID_InformeCabeceraFacturaCliente = '{6652332A-E17A-44E7-9833-7CD70E9458C1}';
+ RID_InformeDetallesFacturaCliente = '{D240F619-DD60-4E7F-AB3F-E2B401E3236D}';
+
+ { Data table names }
+ nme_DarReferenciaFactura = 'DarReferenciaFactura';
+ nme_FacturasCliente = 'FacturasCliente';
+ nme_DetallesFacturasCliente = 'DetallesFacturasCliente';
+ nme_InformeCabeceraFacturaCliente = 'InformeCabeceraFacturaCliente';
+ nme_InformeDetallesFacturaCliente = 'InformeDetallesFacturaCliente';
+
+ { DarReferenciaFactura fields }
+ fld_DarReferenciaFacturaREFERENCIA = 'REFERENCIA';
+
+ { DarReferenciaFactura field indexes }
+ idx_DarReferenciaFacturaREFERENCIA = 0;
+
+ { FacturasCliente fields }
+ fld_FacturasClienteCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_FacturasClienteCODIGO = 'CODIGO';
+ fld_FacturasClienteFECHAALTA = 'FECHAALTA';
+ fld_FacturasClienteUSUARIO = 'USUARIO';
+ fld_FacturasClienteFECHAFACTURA = 'FECHAFACTURA';
+ fld_FacturasClienteREFERENCIA = 'REFERENCIA';
+ fld_FacturasClienteBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_FacturasClienteDESCUENTO = 'DESCUENTO';
+ fld_FacturasClienteIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_FacturasClienteIVA = 'IVA';
+ fld_FacturasClienteIMPORTEIVA = 'IMPORTEIVA';
+ fld_FacturasClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_FacturasClienteOBSERVACIONES = 'OBSERVACIONES';
+ fld_FacturasClienteFORMAPAGO = 'FORMAPAGO';
+ fld_FacturasClienteCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_FacturasClienteNIFCIF = 'NIFCIF';
+ fld_FacturasClienteNOMBRE = 'NOMBRE';
+ fld_FacturasClienteCALLE = 'CALLE';
+ fld_FacturasClientePROVINCIA = 'PROVINCIA';
+ fld_FacturasClienteCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_FacturasClientePOBLACION = 'POBLACION';
+ fld_FacturasClienteCODIGOALBARAN = 'CODIGOALBARAN';
+
+ { FacturasCliente field indexes }
+ idx_FacturasClienteCODIGOEMPRESA = 0;
+ idx_FacturasClienteCODIGO = 1;
+ idx_FacturasClienteFECHAALTA = 2;
+ idx_FacturasClienteUSUARIO = 3;
+ idx_FacturasClienteFECHAFACTURA = 4;
+ idx_FacturasClienteREFERENCIA = 5;
+ idx_FacturasClienteBASEIMPONIBLE = 6;
+ idx_FacturasClienteDESCUENTO = 7;
+ idx_FacturasClienteIMPORTEDESCUENTO = 8;
+ idx_FacturasClienteIVA = 9;
+ idx_FacturasClienteIMPORTEIVA = 10;
+ idx_FacturasClienteIMPORTETOTAL = 11;
+ idx_FacturasClienteOBSERVACIONES = 12;
+ idx_FacturasClienteFORMAPAGO = 13;
+ idx_FacturasClienteCODIGOCONTACTO = 14;
+ idx_FacturasClienteNIFCIF = 15;
+ idx_FacturasClienteNOMBRE = 16;
+ idx_FacturasClienteCALLE = 17;
+ idx_FacturasClientePROVINCIA = 18;
+ idx_FacturasClienteCODIGOPOSTAL = 19;
+ idx_FacturasClientePOBLACION = 20;
+ idx_FacturasClienteCODIGOALBARAN = 21;
+
+ { DetallesFacturasCliente fields }
+ fld_DetallesFacturasClienteCODIGOFACTURA = 'CODIGOFACTURA';
+ fld_DetallesFacturasClienteNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_DetallesFacturasClientePOSICION = 'POSICION';
+ fld_DetallesFacturasClienteTIPO = 'TIPO';
+ fld_DetallesFacturasClienteDESCRIPCION = 'DESCRIPCION';
+ fld_DetallesFacturasClienteCANTIDAD = 'CANTIDAD';
+ fld_DetallesFacturasClienteIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_DetallesFacturasClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_DetallesFacturasClienteVISIBLE = 'VISIBLE';
+
+ { DetallesFacturasCliente field indexes }
+ idx_DetallesFacturasClienteCODIGOFACTURA = 0;
+ idx_DetallesFacturasClienteNUMCONCEPTO = 1;
+ idx_DetallesFacturasClientePOSICION = 2;
+ idx_DetallesFacturasClienteTIPO = 3;
+ idx_DetallesFacturasClienteDESCRIPCION = 4;
+ idx_DetallesFacturasClienteCANTIDAD = 5;
+ idx_DetallesFacturasClienteIMPORTEUNIDAD = 6;
+ idx_DetallesFacturasClienteIMPORTETOTAL = 7;
+ idx_DetallesFacturasClienteVISIBLE = 8;
+
+ { InformeCabeceraFacturaCliente fields }
+ fld_InformeCabeceraFacturaClienteCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraFacturaClienteCODIGO = 'CODIGO';
+ fld_InformeCabeceraFacturaClienteFECHAALTA = 'FECHAALTA';
+ fld_InformeCabeceraFacturaClienteUSUARIO = 'USUARIO';
+ fld_InformeCabeceraFacturaClienteFECHAFACTURA = 'FECHAFACTURA';
+ fld_InformeCabeceraFacturaClienteREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraFacturaClienteCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraFacturaClienteBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_InformeCabeceraFacturaClienteDESCUENTO = 'DESCUENTO';
+ fld_InformeCabeceraFacturaClienteIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_InformeCabeceraFacturaClienteIVA = 'IVA';
+ fld_InformeCabeceraFacturaClienteIMPORTEIVA = 'IMPORTEIVA';
+ fld_InformeCabeceraFacturaClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeCabeceraFacturaClienteOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraFacturaClienteFORMAPAGO = 'FORMAPAGO';
+ fld_InformeCabeceraFacturaClienteNIFCIF = 'NIFCIF';
+ fld_InformeCabeceraFacturaClienteNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraFacturaClienteCALLE = 'CALLE';
+ fld_InformeCabeceraFacturaClientePROVINCIA = 'PROVINCIA';
+ fld_InformeCabeceraFacturaClienteCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraFacturaClientePOBLACION = 'POBLACION';
+
+ { InformeCabeceraFacturaCliente field indexes }
+ idx_InformeCabeceraFacturaClienteCODIGOEMPRESA = 0;
+ idx_InformeCabeceraFacturaClienteCODIGO = 1;
+ idx_InformeCabeceraFacturaClienteFECHAALTA = 2;
+ idx_InformeCabeceraFacturaClienteUSUARIO = 3;
+ idx_InformeCabeceraFacturaClienteFECHAFACTURA = 4;
+ idx_InformeCabeceraFacturaClienteREFERENCIA = 5;
+ idx_InformeCabeceraFacturaClienteCODIGOCONTACTO = 6;
+ idx_InformeCabeceraFacturaClienteBASEIMPONIBLE = 7;
+ idx_InformeCabeceraFacturaClienteDESCUENTO = 8;
+ idx_InformeCabeceraFacturaClienteIMPORTEDESCUENTO = 9;
+ idx_InformeCabeceraFacturaClienteIVA = 10;
+ idx_InformeCabeceraFacturaClienteIMPORTEIVA = 11;
+ idx_InformeCabeceraFacturaClienteIMPORTETOTAL = 12;
+ idx_InformeCabeceraFacturaClienteOBSERVACIONES = 13;
+ idx_InformeCabeceraFacturaClienteFORMAPAGO = 14;
+ idx_InformeCabeceraFacturaClienteNIFCIF = 15;
+ idx_InformeCabeceraFacturaClienteNOMBRE = 16;
+ idx_InformeCabeceraFacturaClienteCALLE = 17;
+ idx_InformeCabeceraFacturaClientePROVINCIA = 18;
+ idx_InformeCabeceraFacturaClienteCODIGOPOSTAL = 19;
+ idx_InformeCabeceraFacturaClientePOBLACION = 20;
+
+ { InformeDetallesFacturaCliente fields }
+ fld_InformeDetallesFacturaClienteCODIGOFACTURA = 'CODIGOFACTURA';
+ fld_InformeDetallesFacturaClienteNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_InformeDetallesFacturaClienteDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesFacturaClienteCANTIDAD = 'CANTIDAD';
+ fld_InformeDetallesFacturaClienteIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_InformeDetallesFacturaClienteIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeDetallesFacturaClienteTIPO = 'TIPO';
+ fld_InformeDetallesFacturaClientePOSICION = 'POSICION';
+
+ { InformeDetallesFacturaCliente field indexes }
+ idx_InformeDetallesFacturaClienteCODIGOFACTURA = 0;
+ idx_InformeDetallesFacturaClienteNUMCONCEPTO = 1;
+ idx_InformeDetallesFacturaClienteDESCRIPCION = 2;
+ idx_InformeDetallesFacturaClienteCANTIDAD = 3;
+ idx_InformeDetallesFacturaClienteIMPORTEUNIDAD = 4;
+ idx_InformeDetallesFacturaClienteIMPORTETOTAL = 5;
+ idx_InformeDetallesFacturaClienteTIPO = 6;
+ idx_InformeDetallesFacturaClientePOSICION = 7;
+
+type
+ { IDarReferenciaFactura }
+ IDarReferenciaFactura = interface(IDAStronglyTypedDataTable)
+ ['{3780860F-0689-4DB4-87ED-879E5E0974B9}']
+ { Property getters and setters }
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ end;
+
+ { TDarReferenciaFacturaDataTableRules }
+ TDarReferenciaFacturaDataTableRules = class(TDADataTableRules, IDarReferenciaFactura)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFacturasCliente }
+ IFacturasCliente = interface(IDAStronglyTypedDataTable)
+ ['{9AB55416-5EBD-4913-9D16-DFB75478A091}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAFACTURAValue: DateTime;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ end;
+
+ { TFacturasClienteDataTableRules }
+ TFacturasClienteDataTableRules = class(TDADataTableRules, IFacturasCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesFacturasCliente }
+ IDetallesFacturasCliente = interface(IDAStronglyTypedDataTable)
+ ['{BF49E552-D331-4DD7-A1E9-6C246BE51E99}']
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetVISIBLEValue: String;
+ procedure SetVISIBLEValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOFACTURA: Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ end;
+
+ { TDetallesFacturasClienteDataTableRules }
+ TDetallesFacturasClienteDataTableRules = class(TDADataTableRules, IDetallesFacturasCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer; virtual;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOFACTURA: Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraFacturaCliente }
+ IInformeCabeceraFacturaCliente = interface(IDAStronglyTypedDataTable)
+ ['{3C1DD3E9-BFEC-479A-91BE-9703C511AA3B}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAFACTURAValue: DateTime;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ end;
+
+ { TInformeCabeceraFacturaClienteDataTableRules }
+ TInformeCabeceraFacturaClienteDataTableRules = class(TDADataTableRules, IInformeCabeceraFacturaCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesFacturaCliente }
+ IInformeDetallesFacturaCliente = interface(IDAStronglyTypedDataTable)
+ ['{8A9BE448-C659-4CA5-8C7C-B916FBF7E9C1}']
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOFACTURA: Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ end;
+
+ { TInformeDetallesFacturaClienteDataTableRules }
+ TInformeDetallesFacturaClienteDataTableRules = class(TDADataTableRules, IInformeDetallesFacturaCliente)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer; virtual;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOFACTURA: Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TDarReferenciaFacturaDataTableRules }
+constructor TDarReferenciaFacturaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaFacturaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaFacturaDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_DarReferenciaFacturaREFERENCIA].AsString;
+end;
+
+procedure TDarReferenciaFacturaDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DarReferenciaFacturaREFERENCIA].AsString := aValue;
+end;
+
+
+{ TFacturasClienteDataTableRules }
+constructor TFacturasClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TFacturasClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFacturasClienteDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasClienteCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCODIGO].AsInteger;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasClienteCODIGO].AsInteger := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_FacturasClienteFECHAALTA].AsDateTime;
+end;
+
+procedure TFacturasClienteDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_FacturasClienteFECHAALTA].AsDateTime := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteUSUARIO].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteUSUARIO].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_FacturasClienteFECHAFACTURA].AsDateTime;
+end;
+
+procedure TFacturasClienteDataTableRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_FacturasClienteFECHAFACTURA].AsDateTime := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteREFERENCIA].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteREFERENCIA].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasClienteBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TFacturasClienteDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasClienteBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_FacturasClienteDESCUENTO].AsFloat;
+end;
+
+procedure TFacturasClienteDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FacturasClienteDESCUENTO].AsFloat := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasClienteIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TFacturasClienteDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasClienteIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_FacturasClienteIVA].AsFloat;
+end;
+
+procedure TFacturasClienteDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FacturasClienteIVA].AsFloat := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasClienteIMPORTEIVA].AsCurrency;
+end;
+
+procedure TFacturasClienteDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasClienteIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TFacturasClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TFacturasClienteDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_FacturasClienteFORMAPAGO].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_FacturasClienteFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TFacturasClienteDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasClienteCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteNIFCIF].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteNIFCIF].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteNOMBRE].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteNOMBRE].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCALLE].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteCALLE].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClientePROVINCIA].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClientePROVINCIA].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCODIGOPOSTAL].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClienteCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasClientePOBLACION].AsString;
+end;
+
+procedure TFacturasClienteDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasClientePOBLACION].AsString := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasClienteCODIGOALBARAN].AsInteger;
+end;
+
+procedure TFacturasClienteDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasClienteCODIGOALBARAN].AsInteger := aValue;
+end;
+
+
+{ TDetallesFacturasClienteDataTableRules }
+constructor TDetallesFacturasClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDetallesFacturasClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetCODIGOFACTURAValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteCODIGOFACTURA].AsInteger;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetCODIGOFACTURAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteCODIGOFACTURA].AsInteger := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteNUMCONCEPTO].AsInteger;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClientePOSICION].AsInteger;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesFacturasClientePOSICION].AsInteger := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteTIPO].AsString;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteTIPO].AsString := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteDESCRIPCION].AsString;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteDESCRIPCION].AsString := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteCANTIDAD].AsInteger;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteCANTIDAD].AsInteger := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TDetallesFacturasClienteDataTableRules.GetVISIBLEValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesFacturasClienteVISIBLE].AsString;
+end;
+
+procedure TDetallesFacturasClienteDataTableRules.SetVISIBLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesFacturasClienteVISIBLE].AsString := aValue;
+end;
+
+
+{ TInformeCabeceraFacturaClienteDataTableRules }
+constructor TInformeCabeceraFacturaClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraFacturaClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteFECHAALTA].AsDateTime;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteFECHAALTA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteUSUARIO].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteUSUARIO].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteFECHAFACTURA].AsDateTime;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteFECHAFACTURA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTEIVA].AsCurrency;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraFacturaClienteOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraFacturaClienteFORMAPAGO].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteNIFCIF].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteNIFCIF].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteCALLE].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClientePROVINCIA].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClientePROVINCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClienteCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFacturaClientePOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraFacturaClienteDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFacturaClientePOBLACION].AsString := aValue;
+end;
+
+
+{ TInformeDetallesFacturaClienteDataTableRules }
+constructor TInformeDetallesFacturaClienteDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesFacturaClienteDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetCODIGOFACTURAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteCODIGOFACTURA].AsInteger;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetCODIGOFACTURAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteCODIGOFACTURA].AsInteger := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteNUMCONCEPTO].AsInteger;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteCANTIDAD].AsInteger;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteCANTIDAD].AsInteger := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClienteTIPO].AsString;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClienteTIPO].AsString := aValue;
+end;
+
+function TInformeDetallesFacturaClienteDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFacturaClientePOSICION].AsInteger;
+end;
+
+procedure TInformeDetallesFacturaClienteDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesFacturaClientePOSICION].AsInteger := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_DarReferenciaFactura, TDarReferenciaFacturaDataTableRules);
+ RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules);
+ RegisterDataTableRules(RID_DetallesFacturasCliente, TDetallesFacturasClienteDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraFacturaCliente, TInformeCabeceraFacturaClienteDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesFacturaCliente, TInformeDetallesFacturaClienteDataTableRules);
+
+end.
diff --git a/Modulos/Facturas de cliente/Reglas/schFacturasClienteServer_Intf.pas b/Modulos/Facturas de cliente/Reglas/schFacturasClienteServer_Intf.pas
new file mode 100644
index 0000000..337e7ca
--- /dev/null
+++ b/Modulos/Facturas de cliente/Reglas/schFacturasClienteServer_Intf.pas
@@ -0,0 +1,1551 @@
+unit schFacturasClienteServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schFacturasClienteClient_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_DarReferenciaFacturaDelta = '{F2A5D10C-55BF-43D0-BEE6-3712ED9D6EF7}';
+ RID_FacturasClienteDelta = '{E5E319FF-A856-43F4-A936-9BEA61505D26}';
+ RID_DetallesFacturasClienteDelta = '{7BDC4CEC-780B-4254-8D31-10F7DBDC2641}';
+ RID_InformeCabeceraFacturaClienteDelta = '{4EB09950-01DA-4E9E-A3A2-DECCB3A7812F}';
+ RID_InformeDetallesFacturaClienteDelta = '{6666A20D-5DCA-4D7C-9AAE-46BE7FEF57F6}';
+
+type
+ { IDarReferenciaFacturaDelta }
+ IDarReferenciaFacturaDelta = interface(IDarReferenciaFactura)
+ ['{F2A5D10C-55BF-43D0-BEE6-3712ED9D6EF7}']
+ { Property getters and setters }
+ function GetOldREFERENCIAValue : String;
+
+ { Properties }
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ end;
+
+ { TDarReferenciaFacturaBusinessProcessorRules }
+ TDarReferenciaFacturaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferenciaFactura, IDarReferenciaFacturaDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFacturasClienteDelta }
+ IFacturasClienteDelta = interface(IFacturasCliente)
+ ['{E5E319FF-A856-43F4-A936-9BEA61505D26}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAFACTURAValue : DateTime;
+ function GetOldREFERENCIAValue : String;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldCODIGOALBARANValue : Integer;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ end;
+
+ { TFacturasClienteBusinessProcessorRules }
+ TFacturasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente, IFacturasClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ function GetOldFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAFACTURA : DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesFacturasClienteDelta }
+ IDetallesFacturasClienteDelta = interface(IDetallesFacturasCliente)
+ ['{7BDC4CEC-780B-4254-8D31-10F7DBDC2641}']
+ { Property getters and setters }
+ function GetOldCODIGOFACTURAValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldTIPOValue : String;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldVISIBLEValue : String;
+
+ { Properties }
+ property OldCODIGOFACTURA : Integer read GetOldCODIGOFACTURAValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ end;
+
+ { TDetallesFacturasClienteBusinessProcessorRules }
+ TDetallesFacturasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IDetallesFacturasCliente, IDetallesFacturasClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer; virtual;
+ function GetOldCODIGOFACTURAValue: Integer; virtual;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetVISIBLEValue: String; virtual;
+ function GetOldVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOFACTURA : Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property OldCODIGOFACTURA : Integer read GetOldCODIGOFACTURAValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property VISIBLE : String read GetVISIBLEValue write SetVISIBLEValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraFacturaClienteDelta }
+ IInformeCabeceraFacturaClienteDelta = interface(IInformeCabeceraFacturaCliente)
+ ['{4EB09950-01DA-4E9E-A3A2-DECCB3A7812F}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAFACTURAValue : DateTime;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ end;
+
+ { TInformeCabeceraFacturaClienteBusinessProcessorRules }
+ TInformeCabeceraFacturaClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraFacturaCliente, IInformeCabeceraFacturaClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ function GetOldFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAFACTURA : DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesFacturaClienteDelta }
+ IInformeDetallesFacturaClienteDelta = interface(IInformeDetallesFacturaCliente)
+ ['{6666A20D-5DCA-4D7C-9AAE-46BE7FEF57F6}']
+ { Property getters and setters }
+ function GetOldCODIGOFACTURAValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+
+ { Properties }
+ property OldCODIGOFACTURA : Integer read GetOldCODIGOFACTURAValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ end;
+
+ { TInformeDetallesFacturaClienteBusinessProcessorRules }
+ TInformeDetallesFacturaClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesFacturaCliente, IInformeDetallesFacturaClienteDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOFACTURAValue: Integer; virtual;
+ function GetOldCODIGOFACTURAValue: Integer; virtual;
+ procedure SetCODIGOFACTURAValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOFACTURA : Integer read GetCODIGOFACTURAValue write SetCODIGOFACTURAValue;
+ property OldCODIGOFACTURA : Integer read GetOldCODIGOFACTURAValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TDarReferenciaFacturaBusinessProcessorRules }
+constructor TDarReferenciaFacturaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaFacturaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaFacturaBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaFacturaREFERENCIA];
+end;
+
+function TDarReferenciaFacturaBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaFacturaREFERENCIA];
+end;
+
+procedure TDarReferenciaFacturaBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaFacturaREFERENCIA] := aValue;
+end;
+
+
+{ TFacturasClienteBusinessProcessorRules }
+constructor TFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TFacturasClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOEMPRESA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGOEMPRESA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOEMPRESA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGO] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHAALTA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHAALTA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHAALTA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteUSUARIO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteUSUARIO] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHAFACTURA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFECHAFACTURA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFECHAFACTURA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteREFERENCIA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASEIMPONIBLE];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteBASEIMPONIBLE];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteBASEIMPONIBLE] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteDESCUENTO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteDESCUENTO] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTEDESCUENTO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTEDESCUENTO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTEDESCUENTO] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIVA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIVA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTEIVA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTEIVA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTEIVA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTETOTAL];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteIMPORTETOTAL];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteIMPORTETOTAL] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteOBSERVACIONES];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES] := aValue.Text;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFORMAPAGO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteFORMAPAGO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFORMAPAGO] := aValue.Text;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOCONTACTO];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGOCONTACTO];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOCONTACTO] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIFCIF];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNIFCIF];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNIFCIF] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteNOMBRE];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteNOMBRE] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCALLE];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCALLE] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePROVINCIA];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROVINCIA] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOPOSTAL];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGOPOSTAL];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOPOSTAL] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClientePOBLACION];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePOBLACION] := aValue;
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOALBARAN];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteCODIGOALBARAN];
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteCODIGOALBARAN] := aValue;
+end;
+
+
+{ TDetallesFacturasClienteBusinessProcessorRules }
+constructor TDetallesFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDetallesFacturasClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetCODIGOFACTURAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteCODIGOFACTURA];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldCODIGOFACTURAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteCODIGOFACTURA];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetCODIGOFACTURAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteCODIGOFACTURA] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteNUMCONCEPTO];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteNUMCONCEPTO];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteNUMCONCEPTO] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClientePOSICION];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClientePOSICION];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClientePOSICION] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteTIPO];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteTIPO];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteTIPO] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteDESCRIPCION];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteDESCRIPCION];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteDESCRIPCION] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteCANTIDAD];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteCANTIDAD];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteCANTIDAD] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteIMPORTEUNIDAD];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteIMPORTEUNIDAD];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteIMPORTEUNIDAD] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteIMPORTETOTAL];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteIMPORTETOTAL];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteIMPORTETOTAL] := aValue;
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteVISIBLE];
+end;
+
+function TDetallesFacturasClienteBusinessProcessorRules.GetOldVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesFacturasClienteVISIBLE];
+end;
+
+procedure TDetallesFacturasClienteBusinessProcessorRules.SetVISIBLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesFacturasClienteVISIBLE] := aValue;
+end;
+
+
+{ TInformeCabeceraFacturaClienteBusinessProcessorRules }
+constructor TInformeCabeceraFacturaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraFacturaClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteCODIGO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGO] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFECHAALTA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteFECHAALTA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFECHAALTA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteUSUARIO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteUSUARIO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteUSUARIO] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFECHAFACTURA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteFECHAFACTURA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFECHAFACTURA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteREFERENCIA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteREFERENCIA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteBASEIMPONIBLE];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteBASEIMPONIBLE];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteBASEIMPONIBLE] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteDESCUENTO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteDESCUENTO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTEDESCUENTO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteIMPORTEDESCUENTO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTEDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIVA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteIVA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIVA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTEIVA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteIMPORTEIVA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTEIVA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTETOTAL];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteIMPORTETOTAL];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteIMPORTETOTAL] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteOBSERVACIONES];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFORMAPAGO];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteFORMAPAGO];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteFORMAPAGO] := aValue.Text;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteNIFCIF];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteNIFCIF];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteNIFCIF] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteNOMBRE];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteNOMBRE];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCALLE];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteCALLE];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCALLE] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClientePROVINCIA];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClientePROVINCIA];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClientePROVINCIA] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClienteCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClienteCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClientePOBLACION];
+end;
+
+function TInformeCabeceraFacturaClienteBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFacturaClientePOBLACION];
+end;
+
+procedure TInformeCabeceraFacturaClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFacturaClientePOBLACION] := aValue;
+end;
+
+
+{ TInformeDetallesFacturaClienteBusinessProcessorRules }
+constructor TInformeDetallesFacturaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesFacturaClienteBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetCODIGOFACTURAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteCODIGOFACTURA];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldCODIGOFACTURAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteCODIGOFACTURA];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetCODIGOFACTURAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteCODIGOFACTURA] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteNUMCONCEPTO];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteNUMCONCEPTO];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteNUMCONCEPTO] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteDESCRIPCION];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteDESCRIPCION];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteCANTIDAD];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteCANTIDAD];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteCANTIDAD] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteIMPORTEUNIDAD];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteIMPORTEUNIDAD];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteIMPORTEUNIDAD] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteIMPORTETOTAL];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteIMPORTETOTAL];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteIMPORTETOTAL] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteTIPO];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClienteTIPO];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClienteTIPO] := aValue;
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClientePOSICION];
+end;
+
+function TInformeDetallesFacturaClienteBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFacturaClientePOSICION];
+end;
+
+procedure TInformeDetallesFacturaClienteBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFacturaClientePOSICION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_DarReferenciaFacturaDelta, TDarReferenciaFacturaBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_DetallesFacturasClienteDelta, TDetallesFacturasClienteBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraFacturaClienteDelta, TInformeCabeceraFacturaClienteBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesFacturaClienteDelta, TInformeDetallesFacturaClienteBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Facturas de cliente/Reglas/serverlog.txt b/Modulos/Facturas de cliente/Reglas/serverlog.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Modulos/Facturas de cliente/Reglas/uBizFacturasCliente.pas b/Modulos/Facturas de cliente/Reglas/uBizFacturasCliente.pas
new file mode 100644
index 0000000..946a8c3
--- /dev/null
+++ b/Modulos/Facturas de cliente/Reglas/uBizFacturasCliente.pas
@@ -0,0 +1,666 @@
+unit uBizFacturasCliente;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, Classes, uBizContacto, DB,
+ uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uBizPresupuestosCliente, uDBSelectionList,
+ uExceptions, uBizInformesBase, schFacturasClienteClient_Intf,
+ uBizAlbaranesCliente;
+
+const
+ BIZ_FACTURASCLIENTE = 'Client.FacturasCliente';
+ BIZ_DETALLESFACTURASCLIENTE = 'Client.DetallesFacturasCliente';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_PAGADO = 'Pagado';
+
+ CTE_IVA1 = 16;
+ CTE_IVA2 = 1.16;
+
+type
+ IBizDetallesFacturasCliente = interface(IDetallesFacturasCliente)
+ ['{A628B3DE-2EF0-4A6E-AAFD-8BE582BDEE9A}']
+ procedure CopyFrom(ADetallesAlbaranes : IBizDetallesAlbaranCliente); overload;
+ procedure CopyFrom(ADetallesFacturas : IBizDetallesFacturasCliente); overload;
+ procedure DesglosarIVA(IVA : Double);
+ end;
+
+ IBizFacturasCliente = interface(IFacturasCliente)
+ ['{CE8B2685-0FA5-404C-B8FA-90618A815BFF}']
+ function GetDetalles: IBizDetallesFacturasCliente;
+ procedure SetDetalles(Value: IBizDetallesFacturasCliente);
+ property Detalles: IBizDetallesFacturasCliente read GetDetalles write
+ SetDetalles;
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+
+ procedure Show;
+
+ procedure CopyFrom(AFacturaCliente : IBizFacturasCliente); overload;
+ procedure CopyFrom(AAlbaranCliente : IBizAlbaranesCliente); overload;
+ procedure DesglosarIVA;
+ end;
+
+ TBizDetallesFacturasCliente = class(TDetallesFacturasClienteDataTableRules,
+ IBizDetallesFacturasCliente,
+ IBizImportesDetalle,
+ IBizPuntosDetalle,
+ IBizVisibleDetalle,
+ IParche) // PARCHE ***********************
+ private
+ FIsAppend : Boolean;
+ FPosicionNueva : Integer;
+ FPuedoLanzarEvento : Boolean; // PARCHE ***********************
+
+ procedure SetCANTIDADValue(const aValue: Integer); override;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); override;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); override;
+
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterInsert(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+
+ // PARCHE ***********************
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ public
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ constructor Create(aDataTable: TDADataTable); override;
+ procedure CopyFrom(ADetallesAlbaranes : IBizDetallesAlbaranCliente); overload;
+ procedure CopyFrom(ADetallesFacturas : IBizDetallesFacturasCliente); overload;
+ procedure DesglosarIVA(IVA : Double);
+ end;
+
+
+ TBizFacturasCliente = class(TFacturasClienteDataTableRules, IBizFacturasCliente,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException, IBizInformesAware)
+ private
+ FCliente : IBizCliente;
+ FDetalles: IBizDetallesFacturasCliente;
+ FDetallesLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+ protected
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
+ function GetDetalles: IBizDetallesFacturasCliente;
+ procedure SetDetalles(Value: IBizDetallesFacturasCliente);
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+
+ function GetSelectedRows : TSelectedRowList;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+ public
+ procedure RecalcularImporte;
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+ property Detalles: IBizDetallesFacturasCliente read GetDetalles write
+ SetDetalles;
+ procedure Show;
+ procedure Preview;
+ procedure Print;
+ procedure CopyFrom(AFacturaCliente : IBizFacturasCliente); overload;
+ procedure CopyFrom(AAlbaranCliente : IBizAlbaranesCliente); overload;
+ procedure DesglosarIVA;
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ procedure ValidarFacturaCliente (const AFacturaCliente : IBizFacturasCliente);
+
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils, Variants, Math,
+ uDataModuleContactos, Controls, Forms,
+ uDataModuleBase, uDataModuleUsuarios,
+ uDataTableUtils, uDataModuleFacturasCliente, uEditarPreguntarIVA;
+
+var
+ FMasterDeleting : Boolean;
+ FCancelInsert : Boolean;
+
+procedure ValidarFacturaCliente (const AFacturaCliente : IBizFacturasCliente);
+begin
+ if (FloatToStr(AFacturaCliente.FECHAFACTURA) = '0') then
+ raise Exception.Create('Debe indicar la fecha de esta factura');
+
+ if not Assigned(AFacturaCliente.Cliente) or
+ (AFacturaCliente.Cliente.DataTable.IsEmpty) then
+ raise Exception.Create('Debe indicar el cliente de esta factura');
+
+{ AFacturaCliente.Edit;
+ if (FloatToStr(AFacturaCliente.FECHAPAGO) = '0') then
+ AFacturaCliente.SITUACION := SITUACION_PENDIENTE
+ else
+ AFacturaCliente.SITUACION := SITUACION_PAGADO;
+ AFacturaCliente.Post;}
+
+
+ if (Length(AFacturaCliente.REFERENCIA) = 0) then
+ begin
+ AFacturaCliente.Edit;
+ AFacturaCliente.REFERENCIA := dmFacturasCliente.DarNuevaReferencia;
+ AFacturaCliente.Post;
+ ShowMessage('A esta factura se le ha asignado la referencia ' + AFacturaCliente.REFERENCIA);
+ end;
+end;
+
+constructor TBizFacturasCliente.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FCliente := NIL;
+ FDetallesLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizFacturasCliente.Destroy;
+begin
+ FCliente := NIL;
+ FDetalles := NIL;
+ FDetallesLink.Free;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizFacturasCliente.GetCliente: IBizCliente;
+begin
+ if not Assigned(FCliente) or
+ ((CODIGOCONTACTO <> FCliente.Codigo) and
+ not (FCliente.DataTable.State in dsEditModes)) then
+ begin
+ FCliente := dmContactos.GetCliente(CODIGOCONTACTO);
+ if not FCliente.DataTable.Active then
+ FCliente.DataTable.Active := True;
+ if not FCliente.DataTable.IsEmpty then // Está vacío si la factura es nueva y no tiene cliente
+ begin
+ FCliente.Edit;
+ FCliente.NOMBRE := NOMBRE;
+ FCliente.NIFCIF := NIFCIF;
+ FCliente.CALLE := CALLE;
+ FCliente.CODIGOPOSTAL := CODIGOPOSTAL;
+ FCliente.PROVINCIA := PROVINCIA;
+ FCliente.POBLACION := POBLACION;
+ FCliente.Post;
+ end;
+ end;
+ Result := FCliente;
+end;
+
+function TBizFacturasCliente.GetDetalles: IBizDetallesFacturasCliente;
+begin
+ Result := FDetalles;
+end;
+
+procedure TBizFacturasCliente.CopyFrom(AFacturaCliente : IBizFacturasCliente);
+var
+ ACursor: TCursor;
+begin
+{ if not (State in dsEditModes) then
+ Edit;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ CODIGOEMPRESA := APresupuesto.CODIGOEMPRESA;
+ CODIGOCONTACTO := APresupuesto.CODIGOCONTACTO;
+ BASEIMPONIBLE := APresupuesto.BASEIMPONIBLE;
+ DESCUENTO := APresupuesto.DESCUENTO;
+ IVA := APresupuesto.IVA;
+ OBSERVACIONES := APresupuesto.OBSERVACIONES;
+ FORMAPAGO := APresupuesto.FORMAPAGO;
+ CODIGOPRESUPUESTO := APresupuesto.CODIGO;
+ Cliente := APresupuesto.Cliente;
+ Detalles.CopyFrom(APresupuesto.Detalles);
+ RecalcularImporte;
+
+ MessageBox(0, 'Se ha copiado correctamente el presupuesto elegido en este albarán.', 'Presupuesto copiado', MB_ICONWARNING or MB_OK);
+
+ finally
+ Screen.Cursor := ACursor;
+ end;}
+end;
+
+procedure TBizFacturasCliente.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAFACTURA := Date;
+ CODIGO := dmFacturasCliente.GetNextAutoinc;
+end;
+
+procedure TBizFacturasCliente.Preview;
+begin
+ dmFacturasCliente.Preview(Self.CODIGO);
+end;
+
+procedure TBizFacturasCliente.SetCliente(Value: IBizCliente);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FCliente := Value;
+ if Assigned(FCliente) then
+ begin
+ CODIGOCONTACTO := FCliente.CODIGO;
+ NOMBRE := FCliente.NOMBRE;
+ NIFCIF := FCliente.NIFCIF;
+ CALLE := FCliente.CALLE;
+ CODIGOPOSTAL := FCliente.CODIGOPOSTAL;
+ PROVINCIA := FCliente.PROVINCIA;
+ POBLACION := FCliente.POBLACION;
+ if not bEnEdicion then
+ Post;
+ end
+end;
+
+procedure TBizFacturasCliente.SetDetalles(Value: IBizDetallesFacturasCliente);
+begin
+ FDetalles := Value;
+ FDetallesLink.DataTable := Self.DataTable;
+ FDetalles.DataTable.MasterSource := FDetallesLink;
+end;
+
+procedure TBizFacturasCliente.Show;
+begin
+ ShowEditor(IBizFacturasCliente, Self, etItem);
+end;
+
+procedure TBizDetallesFacturasCliente.ActivarEventos;
+begin
+ FPuedoLanzarEvento := True;
+end;
+
+procedure TBizDetallesFacturasCliente.AfterDelete(Sender: TDADataTable);
+var
+ ACabecera : IBizImportesCabecera;
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (not FMasterDeleting) and (not FCancelInsert) then
+ begin
+ ReasignarPosiciones(Self.DataTable);
+ if Assigned(DataTable.MasterSource) and
+ Supports(DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+ FCancelInsert := False;
+end;
+
+procedure TBizDetallesFacturasCliente.AfterInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ FIsAppend := DataTable.EOF;
+ Post;
+ Edit; // Para volver a dejarlo en modo de edición
+end;
+
+procedure TBizDetallesFacturasCliente.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if POSICION < 0 then
+ AsignarPosicion(Self.DataTable, FIsAppend);
+
+ if NUMCONCEPTO < 0 then
+ AsignarNumConcepto(Self.DataTable);
+
+ FIsAppend := False;
+end;
+
+procedure TBizDetallesFacturasCliente.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (DataTable.State in dsEditModes) then
+ DataTable.Cancel;
+
+ if not FMasterDeleting then
+ FCancelInsert := not (DataTable.MasterSource.DataTable.FieldByName('CODIGO').AsInteger = CODIGOFACTURA);
+end;
+
+procedure TBizDetallesFacturasCliente.BeforeInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if Assigned(DataTable.MasterSource) and
+ (DataTable.MasterSource.DataTable.State in dsEditModes) then
+ DataTable.MasterSource.DataTable.Post;
+
+ if GetRecordCount = 0 then
+ FPosicionNueva := -1
+ else
+ FPosicionNueva := POSICION * (-1);
+end;
+
+procedure TBizDetallesFacturasCliente.CopyFrom(ADetallesFacturas : IBizDetallesFacturasCliente);
+begin
+ //
+end;
+
+procedure TBizDetallesFacturasCliente.CopyFrom(ADetallesAlbaranes : IBizDetallesAlbaranCliente);
+var
+ ImporteSinIva : Double;
+ AcumulaSobrante : Double;
+ ImporteSinIvaRedondeado : Currency;
+
+begin
+ DeleteAllTable(Self.DataTable);
+
+ AcumulaSobrante := 0;
+ ADetallesAlbaranes.First;
+ while not ADetallesAlbaranes.EOF do
+ begin
+ Append;
+ DataTable.DisableControls;
+ DataTable.DisableEventHandlers;
+ try
+ TIPO := ADetallesAlbaranes.TIPO;
+ DESCRIPCION := ADetallesAlbaranes.DESCRIPCION;
+ CANTIDAD := ADetallesAlbaranes.CANTIDAD;
+ IMPORTEUNIDAD := ADetallesAlbaranes.IMPORTEUNIDAD;
+ VISIBLE := ADetallesAlbaranes.VISIBLE;
+ finally
+ DataTable.EnableControls;
+ DataTable.EnableEventHandlers;
+ end;
+
+ RecalcularImporte;
+ Post;
+ ADetallesAlbaranes.Next;
+ end;
+ RecalcularSubtotales(DataTable);
+end;
+
+constructor TBizDetallesFacturasCliente.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FPosicionNueva := 1; // Los conceptos empiezan a contar en 1
+
+ // PARCHE *******************
+ FPuedoLanzarEvento := True;
+end;
+
+function TBizDetallesFacturasCliente.DarSumaTotalImportes: Currency;
+begin
+ Result := DarTotalDetalles(Self.DataTable, True, False);
+end;
+
+procedure TBizDetallesFacturasCliente.DesactivarEventos;
+begin
+ FPuedoLanzarEvento := False;
+end;
+
+procedure TBizDetallesFacturasCliente.DesglosarIVA(IVA : Double);
+var
+ ImporteSinIva : Double;
+ AcumulaSobrante : Double;
+ ImporteSinIvaRedondeado : Currency;
+begin
+ AcumulaSobrante := 0;
+
+ if DataTable.IsEmpty then
+ Exit;
+
+ DataTable.First;
+ while not DataTable.EOF do
+ begin
+ DataTable.Edit;
+ DataTable.DisableControls;
+ DataTable.DisableEventHandlers;
+ try
+ ImporteSinIva := IMPORTEUNIDAD / (1 + IVA/100);
+ ImporteSinIvaRedondeado := RoundTo(ImporteSinIva, -2);
+ if ImporteSinIva < ImporteSinIvaRedondeado then
+ AcumulaSobrante := AcumulaSobrante - (CANTIDAD*(ImporteSinIvaRedondeado - ImporteSinIva))
+ else
+ AcumulaSobrante := AcumulaSobrante + (CANTIDAD*(ImporteSinIva - ImporteSinIvaRedondeado));
+ IMPORTEUNIDAD := ImporteSinIvaRedondeado;
+ finally
+ DataTable.EnableControls;
+ DataTable.EnableEventHandlers;
+ end;
+ RecalcularImporte;
+ DataTable.Post;
+ DataTable.Next;
+ end;
+
+ // Agregamos al último concepto de los detalles los decimales
+ // que hemos ido acumulando
+ while (not DataTable.BOF) and (TIPO <> TIPODETALLE_CONCEPTO) do
+ DataTable.Prior;
+ Edit;
+ IMPORTEUNIDAD := IMPORTEUNIDAD + AcumulaSobrante;
+ RecalcularSubtotales(DataTable);
+end;
+
+procedure TBizDetallesFacturasCliente.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ POSICION := FPosicionNueva;
+ NUMCONCEPTO := -1;
+ TIPO := TIPODETALLE_CONCEPTO;
+ VISIBLE := VISIBLE_TRUE;
+end;
+
+
+function TBizFacturasCliente.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizFacturasCliente.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar esta factura porque...', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+
+procedure TBizFacturasCliente.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmFacturasCliente.PuedoEliminarFactura(CODIGO) then
+ raise Exception.Create('No se puede borrar esta factura porque...');
+ FMasterDeleting := True; // Para que los detalles de borren de golpe y no recalcule posiciones ni totales
+end;
+
+procedure TBizFacturasCliente.AfterDelete(Sender: TDADataTable);
+begin
+ inherited;
+ FMasterDeleting := False;
+end;
+
+procedure TBizFacturasCliente.Print;
+begin
+ dmFacturasCliente.Print(Self.CODIGO);
+end;
+
+procedure TBizFacturasCliente.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente de esta factura', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ if (Pos('Fecha', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de esta factura', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizFacturasCliente.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarFacturaCliente(Self);
+ //ctDelete :
+ end;
+end;
+
+function TBizDetallesFacturasCliente.PuedoLanzarEvento: Boolean;
+begin
+ Result := FPuedoLanzarEvento;
+end;
+
+procedure TBizDetallesFacturasCliente.RecalcularImporte;
+begin
+ RecalcularImporteDetalle(Self.DataTable, True, False);
+end;
+
+procedure TBizFacturasCliente.RecalcularImporte;
+begin
+ RecalcularImportesCabecera(Self.DataTable, Detalles.DataTable);
+end;
+
+procedure TBizFacturasCliente.CopyFrom(AAlbaranCliente: IBizAlbaranesCliente);
+var
+ ACursor: TCursor;
+begin
+ if not (State in dsEditModes) then
+ Edit;
+ if not (AAlbaranCliente.DataTable.Active) then
+ AAlbaranCliente.DataTable.Active := True;
+
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ CODIGOEMPRESA := AAlbaranCliente.CODIGOEMPRESA;
+ CODIGOCONTACTO := AAlbaranCliente.CODIGOCONTACTO;
+ NOMBRE := AAlbaranCliente.Cliente.NOMBRE;
+ BASEIMPONIBLE := AAlbaranCliente.BASEIMPONIBLE;
+ DESCUENTO := AAlbaranCliente.DESCUENTO;
+ IVA := AAlbaranCliente.IVA;
+ OBSERVACIONES := AAlbaranCliente.OBSERVACIONES;
+ FORMAPAGO := AAlbaranCliente.FORMAPAGO;
+ CODIGOALBARAN := AAlbaranCliente.CODIGO;
+ Cliente := AAlbaranCliente.Cliente;
+
+ Detalles.CopyFrom(AAlbaranCliente.Detalles);
+
+ RecalcularImporte;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TBizDetallesFacturasCliente.Refrescar;
+begin
+ DataTable.Refresh;
+end;
+
+procedure TBizDetallesFacturasCliente.SetCANTIDADValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesFacturasClienteCANTIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesFacturasCliente.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesFacturasClienteIMPORTETOTAL].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesFacturasCliente.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ if aValue = 0 then
+ DataTable.Fields[idx_DetallesFacturasClienteIMPORTEUNIDAD].AsVariant := Null
+ else
+ inherited;
+end;
+
+procedure TBizFacturasCliente.DesglosarIVA;
+var
+ aIVA : Double;
+ ACursor: TCursor;
+begin
+ aIVA := Self.IVA;
+
+ if PreguntarIVA(aIVA) then
+ begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ DataTable.Edit;
+ Self.IVA := aIVA;
+ Detalles.DesglosarIVA(aIVA);
+ RecalcularImporte;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+ MessageBox(0, 'Se ha desglosado el IVA de la factura', 'Información', MB_ICONINFORMATION or MB_OK)
+ end;
+end;
+
+initialization
+ FMasterDeleting := False;
+ RegisterDataTableRules(BIZ_DETALLESFACTURASCLIENTE, TBizDetallesFacturasCliente);
+ RegisterDataTableRules(BIZ_FACTURASCLIENTE, TBizFacturasCliente);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.ddp b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.ddp differ
diff --git a/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
new file mode 100644
index 0000000..b180c54
--- /dev/null
+++ b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
@@ -0,0 +1,1353 @@
+object srvFacturasCliente: TsrvFacturasCliente
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schFacturasCliente
+ ServiceAdapter = DABINAdapter
+ Left = 711
+ Top = 310
+ Height = 490
+ Width = 347
+ object schFacturasCliente: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FACTURASCLIENTE'
+ SQL = 'SELECT * FROM DAR_REFERENCIA_FACTURACLIENTE'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'DarReferenciaFactura'
+ Fields = <
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FACTURASCLIENTE'
+ SQL =
+ 'SELECT '#10' CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, FECHAFACT' +
+ 'URA, REFERENCIA,'#10' BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENTO,' +
+ ' IVA, IMPORTEIVA, '#10' IMPORTETOTAL, OBSERVACIONES, FORMAPAGO, C' +
+ 'ODIGOCONTACTO, '#10' NIFCIF, NOMBRE, CALLE, PROVINCIA, CODIGOPOST' +
+ 'AL, POBLACION, CODIGOALBARAN'#10' FROM'#10' FACTURASCLIENTE'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'FECHAFACTURA'
+ TableField = 'FECHAFACTURA'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end>
+ end>
+ Name = 'FacturasCliente'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAFACTURA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESFACTURASCLIENTE'
+ SQL =
+ 'SELECT '#10' CODIGOFACTURA, NUMCONCEPTO, DESCRIPCION, CANTIDAD, '#10 +
+ ' IMPORTEUNIDAD, IMPORTETOTAL, POSICION, TIPO, VISIBLE'#10' FROM'#10 +
+ ' DETALLESFACTURASCLIENTE'#10' WHERE CODIGOFACTURA = :CODIGOFACTU' +
+ 'RA'#10' ORDER BY POSICION;'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'CODIGOFACTURA'
+ TableField = 'CODIGOFACTURA'
+ end
+ item
+ DatasetField = 'VISIBLE'
+ TableField = 'VISIBLE'
+ end>
+ end>
+ Name = 'DetallesFacturasCliente'
+ Fields = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DetallesFacturasCliente_VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FACTURASCLIENTE'
+ SQL =
+ 'SELECT '#10' CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, FECHAFACT' +
+ 'URA, REFERENCIA,'#10' BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENTO,' +
+ ' IVA, IMPORTEIVA, '#10' IMPORTETOTAL, OBSERVACIONES, FORMAPAGO, C' +
+ 'ODIGOCONTACTO, '#10' NIFCIF, NOMBRE, CALLE, PROVINCIA, CODIGOPOST' +
+ 'AL, POBLACION'#10' FROM'#10' FACTURASCLIENTE'#10' WHERE CODIGO = :CODIG' +
+ 'O'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'FECHAFACTURA'
+ TableField = 'FECHAFACTURA'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'InformeCabeceraFacturaCliente'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESFACTURASCLIENTE'
+ SQL =
+ 'SELECT '#10' CODIGOFACTURA, NUMCONCEPTO, DESCRIPCION, CANTIDAD, '#10 +
+ ' IMPORTEUNIDAD, IMPORTETOTAL, POSICION, TIPO'#10'FROM DETALLESFAC' +
+ 'TURASCLIENTE'#10'WHERE CODIGOFACTURA = :CODIGOFACTURA AND'#10'VISIBLE = ' +
+ #39'S'#39#10'ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'CODIGOFACTURA'
+ TableField = 'CODIGOFACTURA'
+ end>
+ end>
+ Name = 'InformeDetallesFacturaCliente'
+ Fields = <
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESFACTURACLIENTE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <>
+ RelationShips = <
+ item
+ Name = 'FK_DetallesFacturasCliente_FacturasCliente'
+ MasterDatasetName = 'FacturasCliente'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'DetallesFacturasCliente'
+ DetailFields = 'CODIGOFACTURA'
+ end
+ item
+ Name = 'FK_InformeDetallesFacturaCliente_InformeCabeceraFacturaCliente'
+ MasterDatasetName = 'InformeCabeceraFacturaCliente'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'InformeDetallesFacturaCliente'
+ DetailFields = 'CODIGOFACTURA'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert FacturasCliente'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'FacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update FacturasCliente'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'FacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete DetallesFacturasCliente'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'DetallesFacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert DetallesFacturasCliente'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'DetallesFacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update DetallesFacturasCliente'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'DetallesFacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete FacturasCliente'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'FacturasCliente'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 48
+ Top = 24
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 200
+ Top = 128
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 128
+ end
+ object DADataCabecera: TDADataSource
+ DataTable = tbl_FacturaCliente
+ Left = 120
+ Top = 176
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_DetallesFacturaCliente
+ Left = 200
+ 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 = 38763.819912650500000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure PresupuestoRelOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' PresupuestoRel.Lines.Clear;'
+ ' if = '#39#39' then'
+ ' PresupuestoRel.Lines.Add('#39'-'#39')'
+ ' else'
+
+ ' PresupuestoRel.Lines.Add();'
+ 'end;'
+ ''
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'var'
+ ' cadenaAux: String;'
+ 'begin'
+ ' DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );'
+ ''
+ ' CadenaAux := '#39#39';'
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ' +
+ ';'
+ ''
+ ' DatosCliente.Lines.Add(CadenaAux);'
+ 'end;'
+ ''
+ 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'T'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo2.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo3.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo4.Style := '#39'Concepto titulo'#39';'
+ ' end;'
+ ' end;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSum' +
+ 'mary1.Height - 1;'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 128
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ 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_FacturaCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 120
+ Top = 232
+ end
+ object tbl_DetallesFacturaCliente: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 200
+ Top = 232
+ end
+ object frxBarCodeObject1: TfrxBarCodeObject
+ Left = 24
+ Top = 296
+ end
+ object frxOLEObject1: TfrxOLEObject
+ Left = 56
+ Top = 296
+ end
+ object frxChartObject1: TfrxChartObject
+ Left = 24
+ Top = 328
+ end
+ object frxRichObject1: TfrxRichObject
+ Left = 56
+ Top = 328
+ end
+ object frxCrossObject1: TfrxCrossObject
+ Left = 88
+ Top = 296
+ end
+ object frxCheckBoxObject1: TfrxCheckBoxObject
+ Left = 88
+ Top = 328
+ end
+ object frxGradientObject1: TfrxGradientObject
+ Left = 24
+ Top = 360
+ end
+ object frxDotMatrixExport1: TfrxDotMatrixExport
+ UseFileCache = True
+ ShowProgress = True
+ EscModel = 0
+ GraphicFrames = False
+ SaveToFile = False
+ UseIniSettings = True
+ Left = 56
+ Top = 360
+ end
+ object frxDialogControls1: TfrxDialogControls
+ Left = 88
+ Top = 360
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 72
+ end
+end
diff --git a/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas
new file mode 100644
index 0000000..bb8f0bf
--- /dev/null
+++ b/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas
@@ -0,0 +1,132 @@
+unit srvFacturasCliente_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDADataTable, uDACDSDataTable, frxClass, DB,
+ frxDBSet, uDAScriptingProvider, uDABusinessProcessor, uDAClasses,
+ uDataModuleServer, uDAInterfaces, frxDCtrl, frxDMPExport, frxGradient,
+ frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode, uDABINAdapter;
+
+type
+ { TsrvFacturasCliente }
+ TsrvFacturasCliente = class(TDARemoteService, IsrvFacturasCliente)
+ frxDBDetalles: TfrxDBDataset;
+ frxDBCabecera: TfrxDBDataset;
+ DADataCabecera: TDADataSource;
+ DADataDetalles: TDADataSource;
+ tbl_FacturaCliente: TDACDSDataTable;
+ tbl_DetallesFacturaCliente: TDACDSDataTable;
+ frxBarCodeObject1: TfrxBarCodeObject;
+ frxOLEObject1: TfrxOLEObject;
+ frxChartObject1: TfrxChartObject;
+ frxRichObject1: TfrxRichObject;
+ frxCrossObject1: TfrxCrossObject;
+ frxCheckBoxObject1: TfrxCheckBoxObject;
+ frxGradientObject1: TfrxGradientObject;
+ frxDotMatrixExport1: TfrxDotMatrixExport;
+ frxDialogControls1: TfrxDialogControls;
+ DABINAdapter: TDABINAdapter;
+ frxReport1: TfrxReport;
+ schFacturasCliente: TDASchema;
+ private
+ protected
+ { IsrvFacturasCliente methods }
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ function ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean;
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function DarNuevaReferencia: String;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ Dialogs,
+ {Generated:} FactuGES_Invk, uRORemoteDataModule,
+ fServerForm, Variants, IB, schFacturasClienteClient_Intf;
+
+procedure Create_srvFacturasCliente(out anInstance : IUnknown);
+begin
+ anInstance := TsrvFacturasCliente.Create(NIL);
+end;
+
+{ srvFacturasCliente }
+function TsrvFacturasCliente.DarNuevaReferencia: String;
+var
+ dsReferencia: IDADataset;
+begin
+ dsReferencia := schFacturasCliente.NewDataset(Connection, 'DarReferenciaFactura');
+ dsReferencia.Active := True;
+ Result := dsReferencia.FieldByName('REFERENCIA').AsString;
+end;
+
+function TsrvFacturasCliente.ExisteFacturaDeAlbaran(
+ const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean;
+begin
+
+end;
+
+function TsrvFacturasCliente.GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schFacturasCliente.NewDataset(Connection, 'InformeCabeceraFacturaCliente', ['CODIGO'], [Codigo]);
+ dsDetail := schFacturasCliente.NewDataset(Connection, 'InformeDetallesFacturaCliente', ['CODIGOFACTURA'], [Codigo], False);
+ dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_FacturaCliente, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_DetallesFacturaCliente, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfFacturaCliente.fr3', True);
+
+ //Tamaño de letra
+ if TamLetra <> 0 then
+ frxReport1.Styles.Find('Concepto normal').Font.Size := TamLetra;
+
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvFacturasCliente.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_FACTURASCLIENTE');
+end;
+
+function TsrvFacturasCliente.PuedoEliminarFactura(
+ const CodigoFactura: Integer): Boolean;
+begin
+ // ?
+end;
+
+initialization
+ TROClassFactory.Create('srvFacturasCliente', Create_srvFacturasCliente, TsrvFacturasCliente_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.bdsproj b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.bdsproj
new file mode 100644
index 0000000..d6d2228
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ FacturasProveedor.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
+ Albaranes de cliente
+
+
+
+ .\
+ ..\..\..\Output\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.cfg b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.cfg
new file mode 100644
index 0000000..b972060
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dcp b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dcp
new file mode 100644
index 0000000..da62760
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dcp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dof b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dof
new file mode 100644
index 0000000..00a60d9
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dof
@@ -0,0 +1,175 @@
+[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=Albaranes de cliente
+[Directories]
+OutputDir=
+UnitOutputDir=.\
+PackageDLLOutputDir=..\..\..\Output\Cliente
+PackageDCPOutputDir=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dpk b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dpk
new file mode 100644
index 0000000..90b68fb
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.dpk
@@ -0,0 +1,82 @@
+package FacturasProveedor;
+
+{$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}
+{$DESCRIPTION 'Albaranes de cliente'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ BaseD7,
+ Contactos,
+ DataAbstract_D7,
+ dbrtl,
+ dsnap,
+ adortl,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ vcljpg,
+ JvCoreD7R,
+ JvSystemD7R,
+ designide,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ cxExtEditorsVCLD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExportVCLD7,
+ dxPSCoreD7,
+ dxComnD7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ ccpack70;
+
+contains
+ uPluginControllerFacturasProveedor in 'uPluginControllerFacturasProveedor.pas' {ModuleFacturasProveedor: TModuleController},
+ uDataModuleFacturasProveedor in 'uDataModuleFacturasProveedor.pas' {dmFacturasProveedor: TDAClientDataModule},
+ uEditorFacturaProveedor in 'uEditorFacturaProveedor.pas' {fEditorFacturaProveedor: TCustomEditor},
+ uEditorFacturasProveedor in 'uEditorFacturasProveedor.pas' {fEditorFacturasProveedor: TCustomEditor},
+ uBizFacturasProveedor in '..\Reglas\uBizFacturasProveedor.pas',
+ schFacturasProveedorServer_Intf in '..\Reglas\schFacturasProveedorServer_Intf.pas',
+ schFacturasProveedorClient_Intf in '..\Reglas\schFacturasProveedorClient_Intf.pas',
+ uViewDatosFacturaProveedor in 'uViewDatosFacturaProveedor.pas' {frViewDatosFacturaProveedor: TCustomView},
+ uViewFacturaProveedor in 'uViewFacturaProveedor.pas' {frViewFacturaProveedor: TCustomView},
+ uViewFacturasProveedor in 'uViewFacturasProveedor.pas' {frViewFacturasProveedor: TCustomView};
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.drc b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.res b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/FacturasProveedor.res differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.dfm
new file mode 100644
index 0000000..bf7eed8
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.dfm
@@ -0,0 +1,451 @@
+object dmFacturasProveedor: TdmFacturasProveedor
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 519
+ Top = 404
+ Height = 443
+ Width = 638
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvFacturasProveedor'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 32
+ end
+ object tbl_FacturasProveedor: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. factura'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOFACTURA'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha factura'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAFACTURA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VENCIMIENTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vencimiento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAVENCIMIENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPROVEEDOR'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'NIF/CIF'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasProveedor'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasProveedor'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FacturasProveedor'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = dmBase.DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'FacturasProveedor'
+ IndexDefs = <>
+ Left = 152
+ Top = 32
+ end
+ object ds_FacturasProveedor: TDADataSource
+ DataTable = tbl_FacturasProveedor
+ Left = 248
+ Top = 32
+ end
+ object DADesigntimeCall1: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'UserID'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TLoginInfo'
+ end>
+ Left = 48
+ Top = 88
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.pas
new file mode 100644
index 0000000..7be506f
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.pas
@@ -0,0 +1,130 @@
+unit uDataModuleFacturasProveedor;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uDADesigntimeCall, uBizFacturasProveedor;
+
+type
+ TdmFacturasProveedor = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ tbl_FacturasProveedor: TDACDSDataTable;
+ ds_FacturasProveedor: TDADataSource;
+ DADesigntimeCall1: TDADesigntimeCall;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ function GetNextAutoinc : integer;
+ function GetItem: IBizFacturasProveedor;
+ function GetItems: IBizFacturasProveedor;
+ function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
+ end;
+
+var
+ dmFacturasProveedor: TdmFacturasProveedor;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto,
+ uDataModuleContactos, uDataModuleBase,
+ FactuGES_Intf, uEditorPreview, uROTypes, schFacturasProveedorClient_Intf;
+
+{ TDAClientDataModule1 }
+
+function TdmFacturasProveedor.GetItems: IBizFacturasProveedor;
+var
+ dtCabecera: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCabecera := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_FacturasProveedor, dtCabecera);
+ with dtCabecera do
+ begin
+ BusinessRulesID := BIZ_FACTURASPROVEEDOR;
+ FieldByName(fld_FacturasProveedorDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_FacturasProveedorIVA).BusinessRulesID := 'Client.Field.IVA';
+ FieldByName(fld_FacturasProveedorBASEIMPONIBLE).BusinessRulesID := 'Client.Field.BaseImponible';
+ end;
+
+ Result := (dtCabecera as IBizFacturasProveedor);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmFacturasProveedor.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+ Adapter := dmBase.Adapter;
+end;
+
+
+function TdmFacturasProveedor.GetItem: IBizFacturasProveedor;
+var
+ dtCabecera: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtCabecera := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_AlbaranCliente, dtCabecera);
+ with dtCabecera do
+ begin
+ BusinessRulesID := BIZ_ALBARANCLIENTE;
+ FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesAlbaranProveedor, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+ end;
+
+ with (dtAlbaranes as IBizAlbaranesCliente) do
+ begin
+ Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
+ end;
+
+ Result := (dtAlbaranes as IBizAlbaranesCliente);
+ finally
+ Screen.Cursor := ACursor;
+ end;}
+end;
+
+function TdmFacturasProveedor.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvFacturasProveedor).GetNextAutoinc;
+end;
+
+function TdmFacturasProveedor.PuedoEliminarFactura(CodigoFactura: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvFacturasProveedor).PuedoEliminarFactura(CodigoFactura);
+end;
+
+initialization
+ dmFacturasProveedor := TdmFacturasProveedor.Create(nil);
+
+finalization
+ FreeAndNil(dmFacturasProveedor);
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.dfm
new file mode 100644
index 0000000..967e391
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.dfm
@@ -0,0 +1,212 @@
+inherited fEditorFacturaProveedor: TfEditorFacturaProveedor
+ Left = 166
+ Top = 59
+ Width = 777
+ Height = 544
+ Caption = 'Nueva factura de proveedor'
+ Constraints.MinWidth = 770
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 769
+ Caption = 'Nueva factura de proveedor'
+ inherited Image1: TImage
+ Left = 742
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F
+ 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601
+ EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6
+ 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C
+ 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058
+ 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB
+ 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3
+ C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960
+ 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C
+ C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859
+ 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8
+ 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF
+ 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116
+ 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D
+ 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049
+ 454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 769
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem10: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 769
+ Height = 293
+ inherited pagGeneral: TTabSheet
+ inline frViewFacturaProveedor1: TfrViewFacturaProveedor
+ Left = 0
+ Top = 0
+ Width = 761
+ Height = 265
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 265
+ Constraints.MinWidth = 761
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 299
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Properties.OnChange = frViewDatosYSeleccionContacto1edtlNombrePropertiesChange
+ Height = 21
+ Width = 282
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Height = 21
+ Width = 282
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Height = 21
+ Width = 138
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Height = 21
+ Width = 282
+ end
+ inherited edtCalle: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Height = 21
+ Width = 282
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ DataBinding.DataSource = frViewFacturaProveedor1.DADataSource
+ Height = 21
+ Width = 91
+ end
+ end
+ inherited frViewFormaPago1: TfrViewFormaPago
+ Top = 178
+ Height = 77
+ inherited memFormaPago: TcxDBMemo
+ Top = 29
+ Height = 46
+ Width = 329
+ end
+ end
+ inherited frViewObservaciones1: TfrViewObservaciones
+ inherited memObservaciones: TcxDBMemo
+ Top = 28
+ Height = 47
+ Width = 329
+ end
+ end
+ inherited frViewDatosFacturaProveedor1: TfrViewDatosFacturaProveedor
+ inherited edtFecha: TcxDBDateEdit
+ Width = 245
+ end
+ inherited edtVencimiento: TcxDBDateEdit
+ Width = 245
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Width = 245
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 491
+ Width = 769
+ end
+ inline frViewTotales1: TfrViewTotales [4]
+ Left = 0
+ Top = 369
+ Width = 769
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited TabControl1: TTabControl
+ Width = 769
+ inherited GroupBox1: TGroupBox
+ inherited lblBase: TcxDBCurrencyEdit
+ Enabled = True
+ Properties.ReadOnly = False
+ Height = 21
+ Width = 137
+ end
+ inherited cxCurrencyEdit3: TcxDBCurrencyEdit
+ Height = 21
+ Width = 137
+ end
+ inherited cxCurrencyEdit4: TcxDBCurrencyEdit
+ Height = 21
+ Width = 137
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Height = 21
+ Width = 137
+ end
+ inherited cxCurrencyEdit1: TcxDBSpinEdit
+ Height = 21
+ Width = 137
+ end
+ inherited cxCurrencyEdit2: TcxDBSpinEdit
+ Height = 21
+ Width = 137
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ end
+ inherited SmallImages: TPngImageList [6]
+ end
+ inherited LargeImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+ inherited dsDataTable: TDADataSource
+ OnDataChange = dsDataTableDataChange
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.pas
new file mode 100644
index 0000000..3b5453d
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uEditorFacturaProveedor.pas
@@ -0,0 +1,178 @@
+unit uEditorFacturaProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
+ uViewFacturaProveedor, uCustomView, uViewBase, uViewContenido, uViewTotales,
+ StdCtrls, pngimage, AppEvnts,
+ uBizFacturasProveedor;
+
+type
+ IEditorFacturaProveedor = interface(IEditorDBItem)
+ ['{22C02CC0-035C-4405-A610-C5734B09BB9F}']
+ function GetFacturaProveedor: IBizFacturasProveedor;
+ procedure SetFacturaProveedor(const Value: IBizFacturasProveedor);
+ property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write
+ SetFacturaProveedor;
+ end;
+
+ TfEditorFacturaProveedor = class(TfEditorDBItem, IEditorFacturaProveedor)
+ frViewTotales1: TfrViewTotales;
+ frViewFacturaProveedor1: TfrViewFacturaProveedor;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure FormShow(Sender: TObject); override;
+ procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+ private
+ FFacturaProveedor: IBizFacturasProveedor;
+ FViewFacturaProveedor: IViewFacturaProveedor;
+ protected
+ function GetFacturaProveedor: IBizFacturasProveedor;
+ function GetViewFactura: IViewFacturaProveedor;
+ procedure SetFacturaProveedor(const Value: IBizFacturasProveedor);
+ procedure SetViewFactura(const Value: IViewFacturaProveedor);
+ property ViewFacturaProveedor: IViewFacturaProveedor read GetViewFactura write
+ SetViewFactura;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write
+ SetFacturaProveedor;
+ end;
+
+var
+ fEditorFacturaProveedor: TfEditorFacturaProveedor;
+
+implementation
+
+uses uEditorUtils, uDataModuleFacturasProveedor, uBizImportesDetalleBase,
+ schFacturasProveedorClient_Intf, uExceptions;
+
+{$R *.dfm}
+
+function ShowEditorFacturaProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturaProveedor;
+begin
+ AEditor := TfEditorFacturaProveedor.Create(Application);
+ try
+ AEditor.FacturaProveedor := (ABizObject as IBizFacturasProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorFacturaProveedor }
+
+{
+**************************** TfEditorFacturaProveedor ****************************
+}
+constructor TfEditorFacturaProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewFacturaProveedor := CreateView(TfrViewFacturaProveedor) as IViewFacturaProveedor;
+ pgPaginas.ActivePageIndex := 0;
+ ViewFacturaProveedor := frViewFacturaProveedor1;
+end;
+
+destructor TfEditorFacturaProveedor.Destroy;
+begin
+ FViewFacturaProveedor := NIL;
+ FFacturaProveedor := NIL;
+ inherited;
+end;
+
+procedure TfEditorFacturaProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorFacturaProveedor.dsDataTableDataChange(Sender: TObject; Field:
+ TField);
+begin
+ inherited;
+ if Assigned(FFacturaProveedor) and (not (FFacturaProveedor.DataTable.Fetching) or
+ not (FFacturaProveedor.DataTable.Opening) or not (FFacturaProveedor.DataTable.Closing)) then
+ begin
+ if Length(FFacturaProveedor.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nueva factura de proveedor'
+ else
+ JvNavPanelHeader.Caption := 'Factura de ' + FFacturaProveedor.NOMBRE;
+ Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorFacturaProveedor.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewFacturaProveedor) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(FacturaProveedor) then
+ raise Exception.Create('No hay ninguna factura asignada');
+
+ FacturaProveedor.DataTable.Active := True;
+// FViewFacturaProveedor.ShowEmbedded(pagGeneral);
+// FViewFacturaProveedor.SetFocus;
+end;
+
+function TfEditorFacturaProveedor.GetFacturaProveedor: IBizFacturasProveedor;
+begin
+ Result := FFacturaProveedor;
+end;
+
+function TfEditorFacturaProveedor.GetViewFactura: IViewFacturaProveedor;
+begin
+ Result := FViewFacturaProveedor;
+end;
+
+procedure TfEditorFacturaProveedor.SetFacturaProveedor(const Value:
+ IBizFacturasProveedor);
+begin
+ FFacturaProveedor := Value;
+
+ if Assigned(FFacturaProveedor) then
+ begin
+ dsDataTable.DataTable := FFacturaProveedor.DataTable;
+ frViewTotales1.DADataSource.DataTable := FFacturaProveedor.DataTable;
+
+ if Assigned(FViewFacturaProveedor) then
+ FViewFacturaProveedor.FacturaProveedor := FFacturaProveedor;
+ end;
+end;
+
+procedure TfEditorFacturaProveedor.SetViewFactura(const Value:
+ IViewFacturaProveedor);
+begin
+ FViewFacturaProveedor := Value;
+
+ if Assigned(FViewFacturaProveedor) and Assigned(FacturaProveedor) then
+ FViewFacturaProveedor.FacturaProveedor := FacturaProveedor;
+end;
+
+procedure TfEditorFacturaProveedor.frViewDatosYSeleccionContacto1edtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewFacturaProveedor1.frViewDatosYSeleccionContacto1.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nueva factura de proveedor'
+ else
+ JvNavPanelHeader.Caption := 'Factura de ' + frViewFacturaProveedor1.frViewDatosYSeleccionContacto1.edtlNombre.Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+initialization
+ RegisterEditor(IBizFacturasProveedor, ShowEditorFacturaProveedor, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.dfm
new file mode 100644
index 0000000..be04361
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.dfm
@@ -0,0 +1,1365 @@
+inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
+ Caption = 'Lista de facturas de proveedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de facturas de proveedor'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000001BE4944415478DA63FCFFFF3F
+ 032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601
+ EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E6
+ 2DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C
+ 802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F6058
+ 03F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB
+ 4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3
+ C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7E839DAF960
+ 46A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3838929AA0C
+ C7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988C1ADFA0859
+ 1674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F707E820D0BD8
+ 82B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275FC1881F18BF
+ 394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5164EC34116
+ 67CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F322068818D
+ 912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE420000000049
+ 454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem14: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem33: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001BE4944415478DA
+ 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80
+ F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3
+ C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978
+ 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9
+ E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1
+ 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850
+ 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7
+ E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3
+ 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988
+ C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70
+ 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F
+ C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5
+ 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F
+ 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42
+ 0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited GridPopupMenu: TPopupMenu
+ inherited Duplicar1: TMenuItem
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.pas
new file mode 100644
index 0000000..35434fd
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uEditorFacturasProveedor.pas
@@ -0,0 +1,146 @@
+unit uEditorFacturasProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
+ JvNavigationPane, uViewGrid, pngimage, uBizFacturasProveedor,
+ JvComponentBase;
+
+type
+ IEditorFacturasProveedor = interface(IEditorGrid)
+ ['{B055B7F3-5A99-4BAC-8D70-A954A6BC288D}']
+ function GetFacturasProveedor: IBizFacturasProveedor;
+ procedure SetFacturasProveedor(const Value: IBizFacturasProveedor);
+ property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor
+ write SetFacturasProveedor;
+ end;
+
+ TfEditorFacturasProveedor = class(TfEditorGrid, IEditorFacturasProveedor)
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ private
+ FFacturasProveedor: IBizFacturasProveedor;
+ protected
+ function GetFacturasProveedor: IBizFacturasProveedor;
+ procedure SetFacturasProveedor(const Value: IBizFacturasProveedor);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor
+ write SetFacturasProveedor;
+ end;
+
+var
+ fEditorFacturasProveedor: TfEditorFacturasProveedor;
+
+implementation
+
+uses
+ uDataModuleFacturasProveedor, uViewFacturasProveedor,
+ uEditorUtils;
+
+{$R *.dfm}
+
+function ShowEditorFacturasProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturasProveedor;
+begin
+ AEditor := TfEditorFacturasProveedor.Create(Application);
+ try
+ AEditor.FacturasProveedor := (ABizObject as IBizFacturasProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorFacturasProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorFacturasProveedor;
+begin
+ AEditor := TfEditorFacturasProveedor.Create(Application);
+ try
+ AEditor.FacturasProveedor := (ABizObject as IBizFacturasProveedor);
+// AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+*************************** TfEditorFacturasProveedor ***************************
+}
+constructor TfEditorFacturasProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewFacturasProveedor) as IViewFacturasProveedor;
+end;
+
+destructor TfEditorFacturasProveedor.Destroy;
+begin
+ FFacturasProveedor := NIL;
+ inherited;
+end;
+
+procedure TfEditorFacturasProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar esta factura de proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorFacturasProveedor.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ FacturasProveedor.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorFacturasProveedor.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ FacturasProveedor.Insert;
+ FacturasProveedor.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+function TfEditorFacturasProveedor.GetFacturasProveedor: IBizFacturasProveedor;
+begin
+ Result := FFacturasProveedor;
+end;
+
+procedure TfEditorFacturasProveedor.SetFacturasProveedor(const Value:
+ IBizFacturasProveedor);
+begin
+ FFacturasProveedor := Value;
+ dsDataTable.DataTable := FFacturasProveedor.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewFacturasProveedor).FacturasProveedor := FacturasProveedor;
+end;
+
+procedure TfEditorFacturasProveedor.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(FacturasProveedor) then
+ (ViewGrid as IViewFacturasProveedor).FacturasProveedor := FFacturasProveedor;
+end;
+
+initialization
+ RegisterEditor(IBizFacturasProveedor, ShowEditorFacturasProveedor, etItems);
+ RegisterEditor(IBizFacturasProveedor, ShowSelectEditorFacturasProveedor, etSelectItems);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.dfm
new file mode 100644
index 0000000..3445364
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.dfm
@@ -0,0 +1,462 @@
+object ModuleFacturasProveedor: TModuleFacturasProveedor
+ OldCreateOrder = True
+ DefaultAction = actFacturasProveedor
+ Description = 'Compras'
+ ModuleMenu = MainMenu
+ ModuleName = 'Facturas de proveedor'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 693
+ Top = 665
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C
+ C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA
+ B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B
+ 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753
+ 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22
+ 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204
+ 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE
+ 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573
+ 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B
+ 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1
+ 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130
+ F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5
+ F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB
+ 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92
+ 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E
+ D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A
+ AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104
+ EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF
+ E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0
+ 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F
+ F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27
+ 2521AB920B52530000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001BE4944415478DA
+ 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80
+ F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3
+ C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978
+ 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9
+ E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1
+ 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850
+ 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7
+ E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3
+ 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988
+ C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70
+ 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F
+ C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5
+ 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F
+ 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42
+ 0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actFacturasProveedor: TAction
+ Category = 'Compras'
+ Caption = 'Facturas de proveedor'
+ ImageIndex = 1
+ OnExecute = actFacturasProveedorExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Tag = 200
+ Caption = '&Compras'
+ GroupIndex = 1
+ ImageIndex = 0
+ object N1: TMenuItem
+ Tag = 4001
+ Caption = '-'
+ end
+ object MenuItem2: TMenuItem
+ Tag = 4000
+ Action = actFacturasProveedor
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325
+ 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF
+ FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77
+ C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC
+ 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A
+ 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334
+ FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B
+ 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764
+ C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80
+ D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400
+ A0BEE1E16734A0290000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000002F94944415478DAED946B48936114
+ C7FFAFDA55CD5CD32E46609161D087082129E8B2794B50495B5EBE140C83A2CF
+ 5DD13E9804111195502441068D04D32C2DCD6181592D2F594CF2B291A6DB9C9A
+ 3AB3E9DE4BCFFB583ADBC539621FA2030FE7BCCF7B38BF739EFFF3BE8C2008F0
+ A531FF81FF06F0C1538DCFA833C0ACE418AF0AB09C008EE389E7A9A7316F1753
+ 4F72C8DEE16379738131992F3C06092C814D0AB05949C1499EC6A2E726391AF3
+ 53FCF462593434C9A0EFEDC3D9C2DB8E408D4A3E079CBCAF1B79B9B92EC13CE9
+ 9CA71371484C54A1B367250519BF1E8454A202C3F2A86F96A1B7DFE01A289A18
+ 3B837D1CEE41526427584B3F0282D7A15ABF195181AB29505C29296568D70661
+ 602083E64B034BA06E96A3DF64723FA13D6C7D481DB871330C5C268D4558EDE0
+ 1EC449EB0874033A0CB1D8145401FFE070B4E9B7233DBD122FEB8F206CF93D90
+ 2E50D3120FD3A0D939D0D951AEF55711D10418F82CACF12BA1B07869036A0677
+ 412E7D8EAED14C44853CA1B96D2639148A2A68DFF95198B8AA5A1330343CE439
+ 904E68311260CEAF097BC060290458E9849FBEEC40B4A49A4EA8698F46764E2D
+ B48DC20CB0A23901639611F740671746D4483BDA4735B459745814BC916A1881
+ 20FA8EB5D91C60A29569E2F07D626CFE5BCA5A05A426E928542C68316A21E938
+ E3F6735992B6172B264261669508636ED1BDD2B73258ADE3EE2714619C75F6FB
+ 12FDFD832711A3CCC754F8162C1EF83C9DA77B4CFD88DE40FDF9E216DC39B77F
+ 4E138F2CC7B12C34C21138DFDFA3AB681B56C91488DA79091D6F4ED35CB3BE89
+ 7A3F5D37F5C56A036E141C70682223BFD111F8EC55ABDBE3EAEB7C8FADC6425A
+ D49919BE5971B5E894D32644E0CD6B57668197AFDF852716116841E58961B739
+ CA8B6AFBC7F2F680D4B41F8C843E5020C3301EC1447B5D10292C5447D280A258
+ 6D2DF51AE8A98EF60D1020E32DF01029984DC2341729E54795BBD3FE6CC02BA0
+ 088B8D8D7EB800FD6803645D20C00FDE003DD2EFF734CE6CC1404FF4FB9BC079
+ F5B33F3E97405F9ACF813F01DF078FC2BAE18F2B0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002834944415478DA
+ BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658
+ 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494
+ 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810
+ 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A
+ 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979
+ D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB
+ 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1
+ 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72
+ E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80
+ AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA
+ 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65
+ 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053
+ 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702
+ BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0
+ C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76
+ 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470
+ FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF
+ FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A
+ 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0
+ 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A
+ E74CD9D0710000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.pas
new file mode 100644
index 0000000..8f793ce
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uPluginControllerFacturasProveedor.pas
@@ -0,0 +1,69 @@
+unit uPluginControllerFacturasProveedor;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCFacturasProveedor = interface(IInterface)
+ ['{6AA0FD19-518A-40D2-BF3F-2E2FACA7C29F}']
+ end;
+
+ TModuleFacturasProveedor = class(TModuleController, IMCFacturasProveedor)
+ actFacturasProveedor: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ MenuItem2: TMenuItem;
+ N1: TMenuItem;
+ procedure actFacturasProveedorExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uBizFacturasProveedor,
+ uDataModuleFacturasProveedor, uEditorFacturasProveedor;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleFacturasProveedor.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TModuleFacturasProveedor.actFacturasProveedorExecute(Sender: TObject);
+var
+ aObj: IEditorFacturasProveedor;
+ AFacturasProveedor : IBizFacturasProveedor;
+begin
+ AFacturasProveedor := dmFacturasProveedor.GetItems;
+ aObj := TfEditorFacturasProveedor.Create(Application);
+ try
+ with aObj do
+ begin
+ FacturasProveedor := AFacturasProveedor;
+ ShowEmbedded;
+ end;
+ finally
+ AFacturasProveedor := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleFacturasProveedor);
+
+finalization
+ UnRegisterModuleClass(TModuleFacturasProveedor);
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.dfm
new file mode 100644
index 0000000..636b32c
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.dfm
@@ -0,0 +1,100 @@
+inherited frViewDatosFacturaProveedor: TfrViewDatosFacturaProveedor
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 110)
+ object Bevel1: TBevel
+ Left = 208
+ Top = 8
+ Width = 141
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 189
+ Height = 13
+ Caption = 'Datos de la factura de proveedor'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 71
+ Height = 13
+ Caption = 'Fecha factura:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 80
+ Width = 61
+ Height = 13
+ Caption = 'Vencimiento:'
+ end
+ object edtFecha: TcxDBDateEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAFACTURA'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtVencimiento: TcxDBDateEdit
+ Left = 100
+ Top = 76
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'VENCIMIENTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.Color = clMenuBar
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 88
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.pas
new file mode 100644
index 0000000..42e5c4a
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewDatosFacturaProveedor.pas
@@ -0,0 +1,35 @@
+unit uViewDatosFacturaProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxMemo, cxRichEdit, cxDBRichEdit;
+
+type
+ TfrViewDatosFacturaProveedor = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFecha: TcxDBDateEdit;
+ Label3: TLabel;
+ edtVencimiento: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosFacturaProveedor: TfrViewDatosFacturaProveedor;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.dfm
new file mode 100644
index 0000000..4486a6d
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.dfm
@@ -0,0 +1,197 @@
+inherited frViewFacturaProveedor: TfrViewFacturaProveedor
+ Width = 761
+ Height = 280
+ Align = alClient
+ Constraints.MinHeight = 280
+ Constraints.MinWidth = 761
+ inline frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ Left = 362
+ Top = 0
+ Width = 377
+ Height = 214
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 116
+ Caption = 'Datos del proveedor'
+ end
+ inherited Bevel1: TBevel
+ Left = 128
+ Width = 235
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 148
+ inherited ToolButton3: TToolButton
+ Left = 125
+ end
+ inherited ToolButton2: TToolButton
+ Left = 133
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 282
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 282
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 138
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 282
+ end
+ inherited edtCalle: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 282
+ end
+ inherited ToolBar2: TToolBar
+ Left = 181
+ Width = 201
+ ButtonWidth = 197
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ DataBinding.DataSource = DADataSource
+ Properties.ReadOnly = False
+ Properties.OnEditValueChanged = frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged
+ Style.Color = clInfoBk
+ Height = 21
+ Width = 91
+ end
+ inherited DADataSource: TDADataSource
+ Left = 88
+ Top = 48
+ end
+ inherited ActionList1: TActionList
+ Top = 40
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un proveedor'
+ OnExecute = frViewDatosYSeleccionContacto1actElegirContactoExecute
+ end
+ inherited actAnadirContacto: TAction
+ Caption = 'Dar de alta un proveedor'
+ OnExecute = frViewDatosYSeleccionContacto1actAnadirContactoExecute
+ end
+ inherited actVerContacto: TAction
+ Caption = 'Ver ficha completa del proveedor...'
+ OnExecute = frViewDatosYSeleccionContacto1actVerContactoExecute
+ end
+ end
+ inherited PngImageList: TPngImageList
+ Left = 160
+ Top = 56
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 2
+ Top = 175
+ Width = 360
+ Height = 76
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 252
+ end
+ inherited memFormaPago: TcxDBMemo
+ Height = 40
+ Width = 329
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 0
+ Top = 102
+ Width = 360
+ Height = 80
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 131
+ Caption = 'Concepto de la factura'
+ end
+ inherited Bevel1: TBevel
+ Left = 144
+ Width = 204
+ end
+ inherited memObservaciones: TcxDBMemo
+ DataBinding.DataField = 'CONCEPTO'
+ Height = 39
+ Width = 329
+ end
+ inherited DADataSource: TDADataSource
+ Left = 8
+ Top = 32
+ end
+ end
+ inline frViewDatosFacturaProveedor1: TfrViewDatosFacturaProveedor
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited edtFecha: TcxDBDateEdit
+ Width = 245
+ end
+ inherited edtVencimiento: TcxDBDateEdit
+ Width = 245
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Width = 245
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.pas
new file mode 100644
index 0000000..8467a8b
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewFacturaProveedor.pas
@@ -0,0 +1,124 @@
+unit uViewFacturaProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, uCustomView,
+ uViewDatosYSeleccionContacto, uViewDatosFacturaProveedor,
+ uViewObservaciones, uViewFormaPago, AppEvnts, uBizFacturasProveedor,
+ cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit;
+
+type
+ IViewFacturaProveedor = interface(IViewBase)
+ ['{B3E29576-9318-4EA7-B778-AFDA6CA3A716}']
+ function GetFacturaProveedor: IBizFacturasProveedor;
+ procedure SetFacturaProveedor(const Value: IBizFacturasProveedor);
+ property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor
+ write SetFacturaProveedor;
+ end;
+
+ TfrViewFacturaProveedor = class(TfrViewBase, IViewFacturaProveedor)
+ DADataSource: TDADataSource;
+ frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewDatosFacturaProveedor1: TfrViewDatosFacturaProveedor;
+ procedure frViewDatosYSeleccionContacto1actElegirContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1actAnadirContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1actVerContactoExecute(
+ Sender: TObject);
+ procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged(
+ Sender: TObject);
+ private
+ FFacturaProveedor : IBizFacturasProveedor;
+ procedure OnContactoChanged (Sender : TObject);
+ protected
+ function GetFacturaProveedor: IBizFacturasProveedor;
+ procedure SetFacturaProveedor(const Value: IBizFacturasProveedor);
+ public
+ property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor
+ write SetFacturaProveedor;
+ end;
+
+var
+ frViewFacturaProveedor: TfrViewFacturaProveedor;
+
+implementation
+
+uses uBizContacto, uExceptions, uDataModuleContactos;
+
+{$R *.dfm}
+
+{ TfrViewFacturaProveedor }
+
+function TfrViewFacturaProveedor.GetFacturaProveedor: IBizFacturasProveedor;
+begin
+ Result := FFacturaProveedor;
+end;
+
+procedure TfrViewFacturaProveedor.OnContactoChanged(Sender: TObject);
+begin
+ FFacturaProveedor.Proveedor := (frViewDatosYSeleccionContacto1.Contacto as IBizProveedor);
+end;
+
+procedure TfrViewFacturaProveedor.SetFacturaProveedor(
+ const Value: IBizFacturasProveedor);
+begin
+ FFacturaProveedor := Value;
+ if Assigned(FFacturaProveedor) then
+ DADataSource.DataTable := FFacturaProveedor.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosFacturaProveedor1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewDatosYSeleccionContacto1.Contacto := FFacturaProveedor.Proveedor;
+ frViewDatosYSeleccionContacto1.OnContactoChanged := OnContactoChanged;
+
+// frViewPresupuestoFactura1.FacturaProveedor := FFacturaProveedor;
+end;
+
+procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actElegirContactoExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewDatosYSeleccionContacto1.actElegirContactoExecute(Sender);
+
+end;
+
+procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actAnadirContactoExecute(
+ Sender: TObject);
+begin
+ inherited;
+ frViewDatosYSeleccionContacto1.actAnadirContactoExecute(Sender);
+
+end;
+
+procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actVerContactoExecute(
+ Sender: TObject);
+var
+ AContacto : IBizProveedor;
+begin
+ inherited;
+ AContacto := dmContactos.GetProveedor(FFacturaProveedor.CODIGOPROVEEDOR);
+ try
+ AContacto.Show;
+ finally
+ AContacto := NIL;
+ end;
+end;
+
+procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ with (Sender as TcxDBTextEdit) do
+ Enabled := (FFacturaProveedor.CODIGOPROVEEDOR <> 0)
+end;
+
+end.
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.ddp b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.ddp differ
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.dfm b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.dfm
new file mode 100644
index 0000000..c6edde8
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.dfm
@@ -0,0 +1,158 @@
+inherited frViewFacturasProveedor: TfrViewFacturasProveedor
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 Facturas'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Options.Sorting = False
+ Width = 25
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 21
+ IsCaptionAssigned = True
+ end
+ object cxGridViewFECHAFACTURA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAFACTURA'
+ SortIndex = 0
+ SortOrder = soDescending
+ Width = 74
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Width = 51
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 134
+ end
+ object cxGridViewVENCIMIENTO: TcxGridDBColumn
+ DataBinding.FieldName = 'VENCIMIENTO'
+ Width = 48
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 67
+ end
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001684944415478DA
+ 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F
+ 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC
+ 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8
+ 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D
+ 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685
+ 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC
+ C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69
+ 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3
+ 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364
+ 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB
+ FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006
+ 00004B6D80F047EC10D30000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.pas b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.pas
new file mode 100644
index 0000000..e768cf6
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Cliente/uViewFacturasProveedor.pas
@@ -0,0 +1,132 @@
+unit uViewFacturasProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics,
+ cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl,
+ dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
+ dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList,
+ PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable,
+ cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
+ cxImage, Grids, DBGrids, uBizFacturasProveedor, cxCurrencyEdit,
+ uViewFiltroBase;
+
+type
+ IViewFacturasProveedor = interface(IViewGrid)
+ ['{82E4A231-1B52-4C90-8E10-D485E8A13C49}']
+ procedure SyncFocusedRecord;
+ function GetFacturasProveedor: IBizFacturasProveedor;
+ procedure SetFacturasProveedor(const Value: IBizFacturasProveedor);
+ property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor
+ write SetFacturasProveedor;
+ end;
+
+ TfrViewFacturasProveedor = class(TfrViewGrid, IViewFacturasProveedor)
+ PngImageList: TPngImageList;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewFECHAFACTURA: TcxGridDBColumn;
+ cxGridViewVENCIMIENTO: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroFechas;
+
+ protected
+ FFacturasProveedor: IBizFacturasProveedor;
+ function GetFacturasProveedor: IBizFacturasProveedor;
+ procedure SetFacturasProveedor(const Value: IBizFacturasProveedor);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ procedure SyncFocusedRecord;
+ property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor
+ write SetFacturasProveedor;
+ end;
+
+var
+ frViewFacturasProveedor: TfrViewFacturasProveedor;
+
+implementation
+
+uses
+ uDataModuleFacturasProveedor;
+
+{$R *.dfm}
+
+{ TfrViewFacturasProveedor }
+
+function TfrViewFacturasProveedor.GetFacturasProveedor: IBizFacturasProveedor;
+begin
+ Result := FFacturasProveedor;
+end;
+
+procedure TfrViewFacturasProveedor.SetFacturasProveedor(
+ const Value: IBizFacturasProveedor);
+begin
+ FFacturasProveedor := Value;
+ if Assigned(FFacturasProveedor) then
+ DADataSource.DataTable := FFacturasProveedor.DataTable;
+end;
+
+procedure TfrViewFacturasProveedor.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewFacturasProveedor.SyncFocusedRecord;
+begin
+//
+end;
+
+procedure TfrViewFacturasProveedor.AnadirFiltroFechas;
+var
+ Columna1, Columna2: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+
+ FFiltro := AddFilterGrid(fboAnd);
+ Columna1 := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAFACTURA');
+ FFiltro.AddItem(Columna1, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+procedure TfrViewFacturasProveedor.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+end.
diff --git a/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorClient_Intf.pas b/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorClient_Intf.pas
new file mode 100644
index 0000000..a4f3aea
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorClient_Intf.pas
@@ -0,0 +1,462 @@
+unit schFacturasProveedorClient_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_FacturasProveedor = '{3F8DC163-805B-44BC-9D8A-90A0A6527F1B}';
+
+ { Data table names }
+ nme_FacturasProveedor = 'FacturasProveedor';
+
+ { FacturasProveedor fields }
+ fld_FacturasProveedorCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_FacturasProveedorCODIGO = 'CODIGO';
+ fld_FacturasProveedorFECHAALTA = 'FECHAALTA';
+ fld_FacturasProveedorUSUARIO = 'USUARIO';
+ fld_FacturasProveedorFECHAFACTURA = 'FECHAFACTURA';
+ fld_FacturasProveedorREFERENCIA = 'REFERENCIA';
+ fld_FacturasProveedorVENCIMIENTO = 'VENCIMIENTO';
+ fld_FacturasProveedorCONCEPTO = 'CONCEPTO';
+ fld_FacturasProveedorBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_FacturasProveedorDESCUENTO = 'DESCUENTO';
+ fld_FacturasProveedorIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_FacturasProveedorIVA = 'IVA';
+ fld_FacturasProveedorIMPORTEIVA = 'IMPORTEIVA';
+ fld_FacturasProveedorIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_FacturasProveedorFORMAPAGO = 'FORMAPAGO';
+ fld_FacturasProveedorCODIGOPROVEEDOR = 'CODIGOPROVEEDOR';
+ fld_FacturasProveedorNIFCIF = 'NIFCIF';
+ fld_FacturasProveedorNOMBRE = 'NOMBRE';
+ fld_FacturasProveedorCALLE = 'CALLE';
+ fld_FacturasProveedorPROVINCIA = 'PROVINCIA';
+ fld_FacturasProveedorCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_FacturasProveedorPOBLACION = 'POBLACION';
+
+ { FacturasProveedor field indexes }
+ idx_FacturasProveedorCODIGOEMPRESA = 0;
+ idx_FacturasProveedorCODIGO = 1;
+ idx_FacturasProveedorFECHAALTA = 2;
+ idx_FacturasProveedorUSUARIO = 3;
+ idx_FacturasProveedorFECHAFACTURA = 4;
+ idx_FacturasProveedorREFERENCIA = 5;
+ idx_FacturasProveedorVENCIMIENTO = 6;
+ idx_FacturasProveedorCONCEPTO = 7;
+ idx_FacturasProveedorBASEIMPONIBLE = 8;
+ idx_FacturasProveedorDESCUENTO = 9;
+ idx_FacturasProveedorIMPORTEDESCUENTO = 10;
+ idx_FacturasProveedorIVA = 11;
+ idx_FacturasProveedorIMPORTEIVA = 12;
+ idx_FacturasProveedorIMPORTETOTAL = 13;
+ idx_FacturasProveedorFORMAPAGO = 14;
+ idx_FacturasProveedorCODIGOPROVEEDOR = 15;
+ idx_FacturasProveedorNIFCIF = 16;
+ idx_FacturasProveedorNOMBRE = 17;
+ idx_FacturasProveedorCALLE = 18;
+ idx_FacturasProveedorPROVINCIA = 19;
+ idx_FacturasProveedorCODIGOPOSTAL = 20;
+ idx_FacturasProveedorPOBLACION = 21;
+
+type
+ { IFacturasProveedor }
+ IFacturasProveedor = interface(IDAStronglyTypedDataTable)
+ ['{B8F57619-27F5-4D11-A277-5F3873F0A4E8}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAFACTURAValue: DateTime;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetVENCIMIENTOValue: DateTime;
+ procedure SetVENCIMIENTOValue(const aValue: DateTime);
+ function GetCONCEPTOValue: IROStrings;
+ procedure SetCONCEPTOValue(const aValue: IROStrings);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetCODIGOPROVEEDORValue: Integer;
+ procedure SetCODIGOPROVEEDORValue(const aValue: Integer);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property VENCIMIENTO: DateTime read GetVENCIMIENTOValue write SetVENCIMIENTOValue;
+ property CONCEPTO: IROStrings read GetCONCEPTOValue write SetCONCEPTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOPROVEEDOR: Integer read GetCODIGOPROVEEDORValue write SetCODIGOPROVEEDORValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ end;
+
+ { TFacturasProveedorDataTableRules }
+ TFacturasProveedorDataTableRules = class(TDADataTableRules, IFacturasProveedor)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetVENCIMIENTOValue: DateTime; virtual;
+ procedure SetVENCIMIENTOValue(const aValue: DateTime); virtual;
+ function GetCONCEPTOValue: IROStrings; virtual;
+ procedure SetCONCEPTOValue(const aValue: IROStrings); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPROVEEDORValue: Integer; virtual;
+ procedure SetCODIGOPROVEEDORValue(const aValue: Integer); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAFACTURA: DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property VENCIMIENTO: DateTime read GetVENCIMIENTOValue write SetVENCIMIENTOValue;
+ property CONCEPTO: IROStrings read GetCONCEPTOValue write SetCONCEPTOValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOPROVEEDOR: Integer read GetCODIGOPROVEEDORValue write SetCODIGOPROVEEDORValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TFacturasProveedorDataTableRules }
+constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TFacturasProveedorDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFacturasProveedorDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasProveedorCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorCODIGO].AsInteger;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasProveedorCODIGO].AsInteger := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorFECHAALTA].AsDateTime;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_FacturasProveedorFECHAALTA].AsDateTime := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorUSUARIO].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorUSUARIO].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorFECHAFACTURA].AsDateTime;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_FacturasProveedorFECHAFACTURA].AsDateTime := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorREFERENCIA].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorREFERENCIA].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetVENCIMIENTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorVENCIMIENTO].AsDateTime;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetVENCIMIENTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_FacturasProveedorVENCIMIENTO].AsDateTime := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetCONCEPTOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_FacturasProveedorCONCEPTO].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCONCEPTOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_FacturasProveedorCONCEPTO].AsString := aValue.Text;
+end;
+
+function TFacturasProveedorDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasProveedorBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorDESCUENTO].AsFloat;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FacturasProveedorDESCUENTO].AsFloat := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasProveedorIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorIVA].AsFloat;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FacturasProveedorIVA].AsFloat := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorIMPORTEIVA].AsCurrency;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasProveedorIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_FacturasProveedorIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_FacturasProveedorFORMAPAGO].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_FacturasProveedorFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TFacturasProveedorDataTableRules.GetCODIGOPROVEEDORValue: Integer;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorCODIGOPROVEEDOR].AsInteger;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCODIGOPROVEEDORValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FacturasProveedorCODIGOPROVEEDOR].AsInteger := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorNIFCIF].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorNIFCIF].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorNOMBRE].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorNOMBRE].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorCALLE].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorCALLE].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorPROVINCIA].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorPROVINCIA].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorCODIGOPOSTAL].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TFacturasProveedorDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_FacturasProveedorPOBLACION].AsString;
+end;
+
+procedure TFacturasProveedorDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FacturasProveedorPOBLACION].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules);
+
+end.
diff --git a/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorServer_Intf.pas b/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorServer_Intf.pas
new file mode 100644
index 0000000..aec1e42
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Reglas/schFacturasProveedorServer_Intf.pas
@@ -0,0 +1,545 @@
+unit schFacturasProveedorServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schFacturasProveedorClient_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_FacturasProveedorDelta = '{F350F1F7-81A3-49B7-BD15-015F6A05A808}';
+
+type
+ { IFacturasProveedorDelta }
+ IFacturasProveedorDelta = interface(IFacturasProveedor)
+ ['{F350F1F7-81A3-49B7-BD15-015F6A05A808}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAFACTURAValue : DateTime;
+ function GetOldREFERENCIAValue : String;
+ function GetOldVENCIMIENTOValue : DateTime;
+ function GetOldCONCEPTOValue : IROStrings;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldCODIGOPROVEEDORValue : Integer;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldVENCIMIENTO : DateTime read GetOldVENCIMIENTOValue;
+ property OldCONCEPTO : IROStrings read GetOldCONCEPTOValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldCODIGOPROVEEDOR : Integer read GetOldCODIGOPROVEEDORValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ end;
+
+ { TFacturasProveedorBusinessProcessorRules }
+ TFacturasProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasProveedor, IFacturasProveedorDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAFACTURAValue: DateTime; virtual;
+ function GetOldFECHAFACTURAValue: DateTime; virtual;
+ procedure SetFECHAFACTURAValue(const aValue: DateTime); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetVENCIMIENTOValue: DateTime; virtual;
+ function GetOldVENCIMIENTOValue: DateTime; virtual;
+ procedure SetVENCIMIENTOValue(const aValue: DateTime); virtual;
+ function GetCONCEPTOValue: IROStrings; virtual;
+ function GetOldCONCEPTOValue: IROStrings; virtual;
+ procedure SetCONCEPTOValue(const aValue: IROStrings); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPROVEEDORValue: Integer; virtual;
+ function GetOldCODIGOPROVEEDORValue: Integer; virtual;
+ procedure SetCODIGOPROVEEDORValue(const aValue: Integer); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAFACTURA : DateTime read GetFECHAFACTURAValue write SetFECHAFACTURAValue;
+ property OldFECHAFACTURA : DateTime read GetOldFECHAFACTURAValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property VENCIMIENTO : DateTime read GetVENCIMIENTOValue write SetVENCIMIENTOValue;
+ property OldVENCIMIENTO : DateTime read GetOldVENCIMIENTOValue;
+ property CONCEPTO : IROStrings read GetCONCEPTOValue write SetCONCEPTOValue;
+ property OldCONCEPTO : IROStrings read GetOldCONCEPTOValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property CODIGOPROVEEDOR : Integer read GetCODIGOPROVEEDORValue write SetCODIGOPROVEEDORValue;
+ property OldCODIGOPROVEEDOR : Integer read GetOldCODIGOPROVEEDORValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TFacturasProveedorBusinessProcessorRules }
+constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TFacturasProveedorBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOEMPRESA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGOEMPRESA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOEMPRESA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGO] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHAALTA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHAALTA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHAALTA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorUSUARIO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorUSUARIO] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHAFACTURA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldFECHAFACTURAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFECHAFACTURA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetFECHAFACTURAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFECHAFACTURA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorREFERENCIA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetVENCIMIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorVENCIMIENTO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldVENCIMIENTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorVENCIMIENTO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetVENCIMIENTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorVENCIMIENTO] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCONCEPTOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCONCEPTO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCONCEPTOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCONCEPTO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCONCEPTOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCONCEPTO] := aValue.Text;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASEIMPONIBLE];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorBASEIMPONIBLE];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorBASEIMPONIBLE] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorDESCUENTO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDESCUENTO] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTEDESCUENTO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTEDESCUENTO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTEDESCUENTO] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIVA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIVA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTEIVA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTEIVA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTEIVA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTETOTAL];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorIMPORTETOTAL];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorIMPORTETOTAL] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFORMAPAGO];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorFORMAPAGO];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFORMAPAGO] := aValue.Text;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCODIGOPROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOPROVEEDOR];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCODIGOPROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGOPROVEEDOR];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCODIGOPROVEEDORValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOPROVEEDOR] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIFCIF];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNIFCIF];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNIFCIF] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNOMBRE];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNOMBRE] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCALLE];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCALLE] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPROVINCIA];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPROVINCIA] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOPOSTAL];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorCODIGOPOSTAL];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorCODIGOPOSTAL] := aValue;
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION];
+end;
+
+function TFacturasProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorPOBLACION];
+end;
+
+procedure TFacturasProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorPOBLACION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Facturas de proveedor/Reglas/uBizFacturasProveedor.pas b/Modulos/Facturas de proveedor/Reglas/uBizFacturasProveedor.pas
new file mode 100644
index 0000000..04069e7
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Reglas/uBizFacturasProveedor.pas
@@ -0,0 +1,249 @@
+unit uBizFacturasProveedor;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, Classes, uBizContacto, DB,
+ uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uDBSelectionList,
+ uExceptions, uBizInformesBase, schFacturasProveedorClient_Intf;
+
+const
+ BIZ_FACTURASPROVEEDOR = 'Client.FacturasProveedor';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_PAGADO = 'Pagado';
+
+type
+ IBizFacturasProveedor = interface(IFacturasProveedor)
+ ['{1D9E1949-8CC3-4776-BA2C-7E1F4A73A432}']
+ function GetProveedor: IBizProveedor;
+ procedure SetProveedor(Value: IBizProveedor);
+ property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
+
+ procedure Show;
+
+ procedure CopyFrom(AFacturaProveedor : IBizFacturasProveedor);
+ end;
+
+ TBizFacturasProveedor = class(TFacturasProveedorDataTableRules, IBizFacturasProveedor,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException)
+ private
+ FProveedor : IBizProveedor;
+ FSelectedRows : TSelectedRowList;
+ protected
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
+
+ function GetProveedor: IBizProveedor;
+ procedure SetProveedor(Value: IBizProveedor);
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+
+ function GetSelectedRows : TSelectedRowList;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+ public
+ procedure RecalcularImporte;
+ property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
+ procedure Show;
+ procedure CopyFrom(AFacturaProveedor : IBizFacturasProveedor); overload;
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ end;
+
+ procedure ValidarFacturaProveedor (const AFacturaProveedor : IBizFacturasProveedor);
+
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils, Variants, Math,
+ uDataModuleContactos, Controls, Forms,
+ uDataModuleBase, uDataModuleUsuarios,
+ uDataTableUtils, uDataModuleFacturasProveedor;
+
+var
+ FCancelInsert : Boolean;
+
+procedure ValidarFacturaProveedor (const AFacturaProveedor : IBizFacturasProveedor);
+begin
+ if (FloatToStr(AFacturaProveedor.FECHAFACTURA) = '0') then
+ raise Exception.Create('Debe indicar la fecha de esta factura');
+
+ if not Assigned(AFacturaProveedor.Proveedor) or
+ (AFacturaProveedor.Proveedor.DataTable.IsEmpty) then
+ raise Exception.Create('Debe indicar el proveedor de esta factura');
+end;
+
+constructor TBizFacturasProveedor.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FProveedor := NIL;
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizFacturasProveedor.Destroy;
+begin
+ FProveedor := NIL;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizFacturasProveedor.GetProveedor: IBizProveedor;
+begin
+ if not Assigned(FProveedor) or
+ (CODIGOPROVEEDOR <> FProveedor.Codigo) and
+ not (FProveedor.DataTable.State in dsEditModes) then
+ begin
+ FProveedor := dmContactos.GetProveedor(CODIGOPROVEEDOR);
+ if not FProveedor.DataTable.Active then
+ FProveedor.DataTable.Active := True;
+ if not FProveedor.DataTable.IsEmpty then // Está vacío si la factura es nueva y no tiene proveedor
+ begin
+ FProveedor.Edit;
+ FProveedor.NOMBRE := NOMBRE;
+ FProveedor.NIFCIF := NIFCIF;
+ FProveedor.CALLE := CALLE;
+ FProveedor.CODIGOPOSTAL := CODIGOPOSTAL;
+ FProveedor.PROVINCIA := PROVINCIA;
+ FProveedor.POBLACION := POBLACION;
+ FProveedor.Post;
+ end;
+ end;
+ Result := FProveedor;
+end;
+
+procedure TBizFacturasProveedor.CopyFrom(AFacturaProveedor : IBizFacturasProveedor);
+var
+ ACursor: TCursor;
+begin
+{ if not (State in dsEditModes) then
+ Edit;
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ Application.ProcessMessages;
+ try
+ CODIGOEMPRESA := APresupuesto.CODIGOEMPRESA;
+ CODIGOCONTACTO := APresupuesto.CODIGOCONTACTO;
+ BASEIMPONIBLE := APresupuesto.BASEIMPONIBLE;
+ DESCUENTO := APresupuesto.DESCUENTO;
+ IVA := APresupuesto.IVA;
+ OBSERVACIONES := APresupuesto.OBSERVACIONES;
+ FORMAPAGO := APresupuesto.FORMAPAGO;
+ CODIGOPRESUPUESTO := APresupuesto.CODIGO;
+ Proveedor := APresupuesto.Proveedor;
+ Detalles.CopyFrom(APresupuesto.Detalles);
+ RecalcularImporte;
+
+ MessageBox(0, 'Se ha copiado correctamente el presupuesto elegido en este albarán.', 'Presupuesto copiado', MB_ICONWARNING or MB_OK);
+
+ finally
+ Screen.Cursor := ACursor;
+ end;}
+end;
+
+procedure TBizFacturasProveedor.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAFACTURA := Date;
+ CODIGO := dmFacturasProveedor.GetNextAutoinc;
+end;
+
+procedure TBizFacturasProveedor.SetProveedor(Value: IBizProveedor);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FProveedor := Value;
+ if Assigned(FProveedor) then
+ begin
+ CODIGOPROVEEDOR := FProveedor.CODIGO;
+ NOMBRE := FProveedor.NOMBRE;
+ NIFCIF := FProveedor.NIFCIF;
+ CALLE := FProveedor.CALLE;
+ CODIGOPOSTAL := FProveedor.CODIGOPOSTAL;
+ PROVINCIA := FProveedor.PROVINCIA;
+ POBLACION := FProveedor.POBLACION;
+ if not bEnEdicion then
+ Post;
+ end
+end;
+
+procedure TBizFacturasProveedor.Show;
+begin
+ ShowEditor(IBizFacturasProveedor, Self, etItem);
+end;
+
+function TBizFacturasProveedor.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizFacturasProveedor.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este albarán porque tiene una factura asociada', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TBizFacturasProveedor.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmFacturasProveedor.PuedoEliminarFactura(CODIGO) then
+ raise Exception.Create('No se puede borrar esta factura porque...');
+end;
+
+procedure TBizFacturasProveedor.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el proveedor de esta factura', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ if (Pos('Fecha albarán', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de esta factura', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizFacturasProveedor.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarFacturaProveedor(Self);
+ //ctDelete :
+ end;
+end;
+
+procedure TBizFacturasProveedor.RecalcularImporte;
+begin
+ RecalcularImportesCabecera(Self.DataTable);
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_FACTURASPROVEEDOR, TBizFacturasProveedor);
+
+finalization
+
+end.
diff --git a/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.ddp b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.ddp differ
diff --git a/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm
new file mode 100644
index 0000000..f9b96ca
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm
@@ -0,0 +1,364 @@
+object srvFacturasProveedor: TsrvFacturasProveedor
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schFacturasProveedor
+ ServiceAdapter = DABINAdapter
+ Left = 477
+ Top = 382
+ Height = 392
+ Width = 369
+ object schFacturasProveedor: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FACTURASPROVEEDOR'
+ SQL =
+ 'SELECT '#10' CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, REFERENCI' +
+ 'A, '#10' FECHAFACTURA, VENCIMIENTO, CONCEPTO, BASEIMPONIBLE, '#10' ' +
+ ' DESCUENTO, IMPORTEDESCUENTO, IVA, IMPORTEIVA, IMPORTETOTAL, '#10' ' +
+ ' FORMAPAGO, CODIGOPROVEEDOR, NIFCIF, NOMBRE, CALLE, '#10' PROVIN' +
+ 'CIA, CODIGOPOSTAL, POBLACION'#10' FROM'#10' FACTURASPROVEEDOR'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'FECHAFACTURA'
+ TableField = 'FECHAFACTURA'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'VENCIMIENTO'
+ TableField = 'VENCIMIENTO'
+ end
+ item
+ DatasetField = 'CONCEPTO'
+ TableField = 'CONCEPTO'
+ end
+ item
+ DatasetField = 'CODIGOPROVEEDOR'
+ TableField = 'CODIGOPROVEEDOR'
+ end>
+ end>
+ Name = 'FacturasProveedor'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOFACTURA'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAFACTURA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VENCIMIENTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAVENCIMIENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPROVEEDOR'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NIFCIF'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NOMBRE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CALLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PROVINCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPOSTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POBLACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 48
+ Top = 24
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+end
diff --git a/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas
new file mode 100644
index 0000000..d470d8f
--- /dev/null
+++ b/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas
@@ -0,0 +1,59 @@
+unit srvFacturasProveedor_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAScriptingProvider, uDADataTable,
+ uDACDSDataTable, frxClass, DB, frxDBSet, uDAClasses, uDABINAdapter;
+
+type
+ { TsrvFacturasProveedor }
+ TsrvFacturasProveedor = class(TDARemoteService, IsrvFacturasProveedor)
+ schFacturasProveedor: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ { IsrvFacturasProveedor methods }
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer;
+
+procedure Create_srvFacturasProveedor(out anInstance : IUnknown);
+begin
+ anInstance := TsrvFacturasProveedor.Create(NIL);
+end;
+
+{ srvFacturasProveedor }
+function TsrvFacturasProveedor.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_FACTURASPROVEEDOR');
+end;
+
+function TsrvFacturasProveedor.PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+begin
+ // ?
+end;
+
+initialization
+ TROClassFactory.Create('srvFacturasProveedor', Create_srvFacturasProveedor, TsrvFacturasProveedor_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Intervalos/Cliente/Intervalos.bdsproj b/Modulos/Intervalos/Cliente/Intervalos.bdsproj
new file mode 100644
index 0000000..aa3064e
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/Intervalos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Intervalos.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+ 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
+
+
+ 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/Modulos/Intervalos/Cliente/Intervalos.cfg b/Modulos/Intervalos/Cliente/Intervalos.cfg
new file mode 100644
index 0000000..0693de8
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/Intervalos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Intervalos/Cliente/Intervalos.dcp b/Modulos/Intervalos/Cliente/Intervalos.dcp
new file mode 100644
index 0000000..95da464
Binary files /dev/null and b/Modulos/Intervalos/Cliente/Intervalos.dcp differ
diff --git a/Modulos/Intervalos/Cliente/Intervalos.dof b/Modulos/Intervalos/Cliente/Intervalos.dof
new file mode 100644
index 0000000..c3360f9
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/Intervalos.dof
@@ -0,0 +1,177 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas
+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
+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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Intervalos/Cliente/Intervalos.dpk b/Modulos/Intervalos/Cliente/Intervalos.dpk
new file mode 100644
index 0000000..b943d84
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/Intervalos.dpk
@@ -0,0 +1,41 @@
+package Intervalos;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dsnap,
+ adortl,
+ vcldb,
+ BaseD7;
+
+contains
+ uDataModuleIntervalos in 'uDataModuleIntervalos.pas' {dmIntervalos: TDAClientDataModule},
+ uBizIntervalos in '..\Reglas\uBizIntervalos.pas',
+ uListaIntervalos in 'uListaIntervalos.pas' {frListaIntervalos: TCustomView};
+
+end.
diff --git a/Modulos/Intervalos/Cliente/Intervalos.drc b/Modulos/Intervalos/Cliente/Intervalos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/Intervalos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Intervalos/Cliente/Intervalos.res b/Modulos/Intervalos/Cliente/Intervalos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Intervalos/Cliente/Intervalos.res differ
diff --git a/Modulos/Intervalos/Cliente/uDataModuleIntervalos.ddp b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.ddp differ
diff --git a/Modulos/Intervalos/Cliente/uDataModuleIntervalos.dfm b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.dfm
new file mode 100644
index 0000000..958256b
Binary files /dev/null and b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.dfm differ
diff --git a/Modulos/Intervalos/Cliente/uDataModuleIntervalos.pas b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.pas
new file mode 100644
index 0000000..d431e81
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/uDataModuleIntervalos.pas
@@ -0,0 +1,85 @@
+unit uDataModuleIntervalos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizIntervalos;
+
+type
+ TdmIntervalos = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Intervalos: TDACDSDataTable;
+ ds_Intervalos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ public
+ function GetItems: IBizIntervalos;
+ function GetItem(Codigo : Integer): IBizIntervalos;
+ end;
+
+var
+ dmIntervalos: TdmIntervalos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, schIntervalosClient_Intf, uDataModuleBase, uDBSelectionList;
+
+const
+ MAX_RECORDS = 100;
+
+
+procedure TdmIntervalos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmIntervalos.GetItems: IBizIntervalos;
+var
+ dtIntervalos: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtIntervalos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Intervalos, dtIntervalos);
+ dtIntervalos.BusinessRulesID := 'BizIntervalos';
+ Result := (dtIntervalos as IBizIntervalos);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmIntervalos.GetItem(Codigo: Integer): IBizIntervalos;
+var
+ AIntervalo: IBizIntervalos;
+begin
+ AIntervalo := GetItems;
+ with AIntervalo.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_IntervalosCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := AIntervalo;
+end;
+
+initialization
+ dmIntervalos := TdmIntervalos.Create(nil);
+
+finalization
+ FreeAndNil(dmIntervalos);
+
+end.
+
diff --git a/Modulos/Intervalos/Cliente/uIntervaloFechas.dfm b/Modulos/Intervalos/Cliente/uIntervaloFechas.dfm
new file mode 100644
index 0000000..1dac875
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/uIntervaloFechas.dfm
@@ -0,0 +1,15 @@
+inherited frViewBase1: TfrViewBase1
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 306
+ Height = 226
+ Align = alClient
+ TabOrder = 0
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ end
+ end
+end
diff --git a/Modulos/Intervalos/Cliente/uIntervaloFechas.pas b/Modulos/Intervalos/Cliente/uIntervaloFechas.pas
new file mode 100644
index 0000000..1dbdb16
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/uIntervaloFechas.pas
@@ -0,0 +1,26 @@
+unit uIntervaloFechas;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, dxLayoutControl, cxControls;
+
+type
+ TfrViewBase1 = class(TfrViewBase)
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewBase1: TfrViewBase1;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Intervalos/Cliente/uListaIntervalos.ddp b/Modulos/Intervalos/Cliente/uListaIntervalos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Intervalos/Cliente/uListaIntervalos.ddp differ
diff --git a/Modulos/Intervalos/Cliente/uListaIntervalos.dfm b/Modulos/Intervalos/Cliente/uListaIntervalos.dfm
new file mode 100644
index 0000000..a954ffc
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/uListaIntervalos.dfm
@@ -0,0 +1,40 @@
+inherited frListaIntervalos: TfrListaIntervalos
+ Width = 478
+ Height = 44
+ object Label3: TLabel
+ Left = 15
+ Top = 18
+ Width = 53
+ Height = 13
+ Caption = 'Intervalos:'
+ end
+ object cxIntervalos: TcxLookupComboBox
+ Left = 72
+ Top = 15
+ Properties.DropDownAutoSize = True
+ Properties.DropDownListStyle = lsFixedList
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.GridLines = glNone
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSource
+ Properties.OnChange = cxIntervalosPropertiesChange
+ 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 = 353
+ end
+ object DADataSource: TDADataSource
+ Left = 439
+ Top = 65533
+ end
+end
diff --git a/Modulos/Intervalos/Cliente/uListaIntervalos.pas b/Modulos/Intervalos/Cliente/uListaIntervalos.pas
new file mode 100644
index 0000000..53b05da
--- /dev/null
+++ b/Modulos/Intervalos/Cliente/uListaIntervalos.pas
@@ -0,0 +1,80 @@
+unit uListaIntervalos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizIntervalos, cxGraphics, StdCtrls, DB,
+ uDADataTable, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
+ cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox;
+
+type
+ IListaIntervalos = interface(IViewBase)
+ ['{EDFEA07F-84ED-4D37-8622-569E87824BA1}']
+ end;
+
+ TfrListaIntervalos = class(TfrViewBase, IListaIntervalos)
+ DADataSource: TDADataSource;
+ Label3: TLabel;
+ cxIntervalos: TcxLookupComboBox;
+ procedure cxIntervalosPropertiesChange(Sender: TObject);
+ private
+ FIntervalo: IBizIntervalos;
+// FOnIntervaloChanged : TNotifyEvent;
+ function GetIntervalo: IBizIntervalos;
+// function GetOnIntervaloChanged : TNotifyEvent;
+// procedure SetOnIntervaloChanged (const Value : TNotifyEvent);
+ public
+ property Intervalo: IBizIntervalos read GetIntervalo;
+// property OnIntervaloChanged : TNotifyEvent read GetOnIntervaloChanged write SetOnIntervaloChanged;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ frListaIntervalos: TfrListaIntervalos;
+
+implementation
+
+{$R *.dfm}
+{ TfrViewIntervalos }
+
+uses uDataModuleIntervalos;
+
+constructor TfrListaIntervalos.Create(AOwner: TComponent);
+begin
+ inherited;
+ FIntervalo := dmIntervalos.GetItems;
+ DADataSource.DataTable := FIntervalo.DataTable;
+ FIntervalo.DataTable.Active := True;
+ cxIntervalos.ItemIndex := 0;
+end;
+
+destructor TfrListaIntervalos.Destroy;
+begin
+ FIntervalo := Nil;
+ inherited;
+end;
+
+function TfrListaIntervalos.GetIntervalo: IBizIntervalos;
+begin
+ Result := FIntervalo;
+end;
+
+procedure TfrListaIntervalos.cxIntervalosPropertiesChange(Sender: TObject);
+begin
+ inherited;
+ Intervalo.LocalizarIntervalo(cxIntervalos.Text);
+end;
+{
+function TfrListaIntervalos.GetOnIntervaloChanged: TNotifyEvent;
+begin
+ Result := FOnIntervaloChanged;
+end;
+
+procedure TfrListaIntervalos.SetOnIntervaloChanged(const Value: TNotifyEvent);
+begin
+ FOnIntervaloChanged := Value;
+end;
+}
+end.
diff --git a/Modulos/Intervalos/Reglas/schIntervalosClient_Intf.pas b/Modulos/Intervalos/Reglas/schIntervalosClient_Intf.pas
new file mode 100644
index 0000000..1663e42
--- /dev/null
+++ b/Modulos/Intervalos/Reglas/schIntervalosClient_Intf.pas
@@ -0,0 +1,154 @@
+unit schIntervalosClient_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_Intervalos = '{52D19107-1090-40B1-8819-96B88AB560ED}';
+
+ { Data table names }
+ nme_Intervalos = 'Intervalos';
+
+ { Intervalos fields }
+ fld_IntervalosCODIGO = 'CODIGO';
+ fld_IntervalosNOMBRE = 'NOMBRE';
+ fld_IntervalosDIAS = 'DIAS';
+ fld_IntervalosMESES = 'MESES';
+ fld_IntervalosANOS = 'ANOS';
+
+ { Intervalos field indexes }
+ idx_IntervalosCODIGO = 0;
+ idx_IntervalosNOMBRE = 1;
+ idx_IntervalosDIAS = 2;
+ idx_IntervalosMESES = 3;
+ idx_IntervalosANOS = 4;
+
+type
+ { IIntervalos }
+ IIntervalos = interface(IDAStronglyTypedDataTable)
+ ['{FEF7AB7C-76CC-42F2-B97A-556495EE2EA1}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetDIASValue: Integer;
+ procedure SetDIASValue(const aValue: Integer);
+ function GetMESESValue: Integer;
+ procedure SetMESESValue(const aValue: Integer);
+ function GetANOSValue: Integer;
+ procedure SetANOSValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property DIAS: Integer read GetDIASValue write SetDIASValue;
+ property MESES: Integer read GetMESESValue write SetMESESValue;
+ property ANOS: Integer read GetANOSValue write SetANOSValue;
+ end;
+
+ { TIntervalosDataTableRules }
+ TIntervalosDataTableRules = class(TDADataTableRules, IIntervalos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetDIASValue: Integer; virtual;
+ procedure SetDIASValue(const aValue: Integer); virtual;
+ function GetMESESValue: Integer; virtual;
+ procedure SetMESESValue(const aValue: Integer); virtual;
+ function GetANOSValue: Integer; virtual;
+ procedure SetANOSValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property DIAS: Integer read GetDIASValue write SetDIASValue;
+ property MESES: Integer read GetMESESValue write SetMESESValue;
+ property ANOS: Integer read GetANOSValue write SetANOSValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TIntervalosDataTableRules }
+constructor TIntervalosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TIntervalosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TIntervalosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_IntervalosCODIGO].AsInteger;
+end;
+
+procedure TIntervalosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_IntervalosCODIGO].AsInteger := aValue;
+end;
+
+function TIntervalosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_IntervalosNOMBRE].AsString;
+end;
+
+procedure TIntervalosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_IntervalosNOMBRE].AsString := aValue;
+end;
+
+function TIntervalosDataTableRules.GetDIASValue: Integer;
+begin
+ result := DataTable.Fields[idx_IntervalosDIAS].AsInteger;
+end;
+
+procedure TIntervalosDataTableRules.SetDIASValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_IntervalosDIAS].AsInteger := aValue;
+end;
+
+function TIntervalosDataTableRules.GetMESESValue: Integer;
+begin
+ result := DataTable.Fields[idx_IntervalosMESES].AsInteger;
+end;
+
+procedure TIntervalosDataTableRules.SetMESESValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_IntervalosMESES].AsInteger := aValue;
+end;
+
+function TIntervalosDataTableRules.GetANOSValue: Integer;
+begin
+ result := DataTable.Fields[idx_IntervalosANOS].AsInteger;
+end;
+
+procedure TIntervalosDataTableRules.SetANOSValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_IntervalosANOS].AsInteger := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Intervalos, TIntervalosDataTableRules);
+
+end.
diff --git a/Modulos/Intervalos/Reglas/schIntervalosServer_Intf.pas b/Modulos/Intervalos/Reglas/schIntervalosServer_Intf.pas
new file mode 100644
index 0000000..4cdfda5
--- /dev/null
+++ b/Modulos/Intervalos/Reglas/schIntervalosServer_Intf.pas
@@ -0,0 +1,167 @@
+unit schIntervalosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schIntervalosClient_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_IntervalosDelta = '{F0E5C34F-94F5-4D82-B94C-E6D04402B872}';
+
+type
+ { IIntervalosDelta }
+ IIntervalosDelta = interface(IIntervalos)
+ ['{F0E5C34F-94F5-4D82-B94C-E6D04402B872}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldDIASValue : Integer;
+ function GetOldMESESValue : Integer;
+ function GetOldANOSValue : Integer;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldDIAS : Integer read GetOldDIASValue;
+ property OldMESES : Integer read GetOldMESESValue;
+ property OldANOS : Integer read GetOldANOSValue;
+ end;
+
+ { TIntervalosBusinessProcessorRules }
+ TIntervalosBusinessProcessorRules = class(TDABusinessProcessorRules, IIntervalos, IIntervalosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetDIASValue: Integer; virtual;
+ function GetOldDIASValue: Integer; virtual;
+ procedure SetDIASValue(const aValue: Integer); virtual;
+ function GetMESESValue: Integer; virtual;
+ function GetOldMESESValue: Integer; virtual;
+ procedure SetMESESValue(const aValue: Integer); virtual;
+ function GetANOSValue: Integer; virtual;
+ function GetOldANOSValue: Integer; virtual;
+ procedure SetANOSValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property DIAS : Integer read GetDIASValue write SetDIASValue;
+ property OldDIAS : Integer read GetOldDIASValue;
+ property MESES : Integer read GetMESESValue write SetMESESValue;
+ property OldMESES : Integer read GetOldMESESValue;
+ property ANOS : Integer read GetANOSValue write SetANOSValue;
+ property OldANOS : Integer read GetOldANOSValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TIntervalosBusinessProcessorRules }
+constructor TIntervalosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TIntervalosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TIntervalosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosCODIGO];
+end;
+
+function TIntervalosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_IntervalosCODIGO];
+end;
+
+procedure TIntervalosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosCODIGO] := aValue;
+end;
+
+function TIntervalosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosNOMBRE];
+end;
+
+function TIntervalosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_IntervalosNOMBRE];
+end;
+
+procedure TIntervalosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosNOMBRE] := aValue;
+end;
+
+function TIntervalosBusinessProcessorRules.GetDIASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosDIAS];
+end;
+
+function TIntervalosBusinessProcessorRules.GetOldDIASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_IntervalosDIAS];
+end;
+
+procedure TIntervalosBusinessProcessorRules.SetDIASValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosDIAS] := aValue;
+end;
+
+function TIntervalosBusinessProcessorRules.GetMESESValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosMESES];
+end;
+
+function TIntervalosBusinessProcessorRules.GetOldMESESValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_IntervalosMESES];
+end;
+
+procedure TIntervalosBusinessProcessorRules.SetMESESValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosMESES] := aValue;
+end;
+
+function TIntervalosBusinessProcessorRules.GetANOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosANOS];
+end;
+
+function TIntervalosBusinessProcessorRules.GetOldANOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_IntervalosANOS];
+end;
+
+procedure TIntervalosBusinessProcessorRules.SetANOSValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_IntervalosANOS] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_IntervalosDelta, TIntervalosBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Intervalos/Reglas/uBizIntervalos.pas b/Modulos/Intervalos/Reglas/uBizIntervalos.pas
new file mode 100644
index 0000000..0115525
--- /dev/null
+++ b/Modulos/Intervalos/Reglas/uBizIntervalos.pas
@@ -0,0 +1,77 @@
+unit uBizIntervalos;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schIntervalosClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls;
+
+type
+
+ IBizIntervalos = interface(IIntervalos)
+ ['{534B5822-BD1C-4E40-B291-ECCEA5D18E5D}']
+
+ function GetOnIntervaloChanged : TNotifyEvent;
+ procedure SetOnIntervaloChanged (const Value : TNotifyEvent);
+ property OnIntervaloChanged : TNotifyEvent read GetOnIntervaloChanged
+ write SetOnIntervaloChanged;
+
+ procedure LocalizarIntervalo(const Nombre: String);
+ end;
+
+ TBizIntervalosDataTableRules = class(TIntervalosDataTableRules, IBizIntervalos)
+ private
+ FOnIntervaloChanged : TNotifyEvent;
+ function GetOnIntervaloChanged : TNotifyEvent;
+ procedure SetOnIntervaloChanged (const Value : TNotifyEvent);
+ protected
+ public
+ property OnIntervaloChanged : TNotifyEvent read GetOnIntervaloChanged write SetOnIntervaloChanged;
+ procedure LocalizarIntervalo(const Nombre: String);
+ end;
+
+ procedure ValidarIntervalo (const AIntervalo : IBizIntervalos);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase,
+ uEditorUtils, uDataModuleIntervalos, Variants;
+
+
+procedure ValidarIntervalo (const AIntervalo : IBizIntervalos);
+begin
+//
+end;
+
+
+{ TBizIntervalosDataTableRules }
+
+{
+************************** TBizIntervalosDataTableRules **************************
+}
+
+function TBizIntervalosDataTableRules.GetOnIntervaloChanged: TNotifyEvent;
+begin
+ Result := FOnIntervaloChanged;
+end;
+
+procedure TBizIntervalosDataTableRules.LocalizarIntervalo(const Nombre: String);
+begin
+ Locate(fld_IntervalosNOMBRE, Nombre);
+
+ if Assigned(FOnIntervaloChanged) then
+ FOnIntervaloChanged(Self);
+end;
+
+procedure TBizIntervalosDataTableRules.SetOnIntervaloChanged(const Value: TNotifyEvent);
+begin
+ FOnIntervaloChanged := Value;
+end;
+
+initialization
+ RegisterDataTableRules('BizIntervalos', TBizIntervalosDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Intervalos/Servidor/srvIntervalos_Impl.ddp b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.ddp differ
diff --git a/Modulos/Intervalos/Servidor/srvIntervalos_Impl.dfm b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.dfm
new file mode 100644
index 0000000..7127f06
--- /dev/null
+++ b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.dfm
@@ -0,0 +1,120 @@
+object srvIntervalos: TsrvIntervalos
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schIntervalos
+ ServiceAdapter = DABINAdapter
+ Left = 444
+ Top = 205
+ Height = 300
+ Width = 300
+ object schIntervalos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'INTERVALOS'
+ SQL =
+ 'SELECT '#10' CODIGO, NOMBRE, DIAS, MESES, ANOS'#10' FROM'#10' INTERVA' +
+ 'LOS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'DIAS'
+ TableField = 'DIAS'
+ end
+ item
+ DatasetField = 'MESES'
+ TableField = 'MESES'
+ end
+ item
+ DatasetField = 'ANOS'
+ TableField = 'ANOS'
+ end>
+ end>
+ Name = 'Intervalos'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DIAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MESES'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ANOS'
+ DataType = datInteger
+ 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 = 24
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 24
+ Top = 72
+ end
+end
diff --git a/Modulos/Intervalos/Servidor/srvIntervalos_Impl.pas b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.pas
new file mode 100644
index 0000000..c274bbd
--- /dev/null
+++ b/Modulos/Intervalos/Servidor/srvIntervalos_Impl.pas
@@ -0,0 +1,46 @@
+unit srvIntervalos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvIntervalos }
+ TsrvIntervalos = class(TDARemoteService, IsrvIntervalos)
+ schIntervalos: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ { IsrvIntervalos methods }
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer;
+
+procedure Create_srvIntervalos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvIntervalos.Create(NIL);
+end;
+
+{ srvIntervalos }
+initialization
+ TROClassFactory.Create('srvIntervalos', Create_srvIntervalos, TsrvIntervalos_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Montajes/Cliente/ArticulosMontaje.bdsproj b/Modulos/Montajes/Cliente/ArticulosMontaje.bdsproj
new file mode 100644
index 0000000..771d3d6
--- /dev/null
+++ b/Modulos/Montajes/Cliente/ArticulosMontaje.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ ArticulosMontaje.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ 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/Modulos/Montajes/Cliente/ArticulosMontaje.cfg b/Modulos/Montajes/Cliente/ArticulosMontaje.cfg
new file mode 100644
index 0000000..4b9711f
--- /dev/null
+++ b/Modulos/Montajes/Cliente/ArticulosMontaje.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Montajes/Cliente/ArticulosMontaje.dcp b/Modulos/Montajes/Cliente/ArticulosMontaje.dcp
new file mode 100644
index 0000000..dc1043d
Binary files /dev/null and b/Modulos/Montajes/Cliente/ArticulosMontaje.dcp differ
diff --git a/Modulos/Montajes/Cliente/ArticulosMontaje.dof b/Modulos/Montajes/Cliente/ArticulosMontaje.dof
new file mode 100644
index 0000000..bbb02f7
--- /dev/null
+++ b/Modulos/Montajes/Cliente/ArticulosMontaje.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Articulos\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\Documentos asociados
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Montajes/Cliente/ArticulosMontaje.dpk b/Modulos/Montajes/Cliente/ArticulosMontaje.dpk
new file mode 100644
index 0000000..6418660
--- /dev/null
+++ b/Modulos/Montajes/Cliente/ArticulosMontaje.dpk
@@ -0,0 +1,71 @@
+package ArticulosMontaje;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dsnap,
+ adortl,
+ BaseD7,
+ Articulos,
+ Almacenes,
+ Contactos,
+ Presupuestos,
+ PedidosProveedor,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ dxPSCoreD7,
+ dxComnD7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ cxDataD7,
+ cxEditorsVCLD7,
+ vcldb,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ designide,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7;
+
+contains
+ uBizArticulosMontaje in '..\Reglas\uBizArticulosMontaje.pas',
+ uViewArticulosMontaje in 'uViewArticulosMontaje.pas' {frViewArticulosMontaje: TCustomView};
+
+end.
diff --git a/Modulos/Montajes/Cliente/ArticulosMontaje.drc b/Modulos/Montajes/Cliente/ArticulosMontaje.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Montajes/Cliente/ArticulosMontaje.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Montajes/Cliente/ArticulosMontaje.res b/Modulos/Montajes/Cliente/ArticulosMontaje.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Montajes/Cliente/ArticulosMontaje.res differ
diff --git a/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.dfm b/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.dfm
new file mode 100644
index 0000000..7a875b6
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.dfm
@@ -0,0 +1,110 @@
+inherited frViewPedidosMontaje: TfrViewPedidosMontaje
+ inherited cxGrid: TcxGrid
+ Top = 25
+ Height = 245
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Kind = skCount
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewFECHACONFIRMACION: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHACONFIRMACION'
+ end
+ object cxGridViewFECHAENTREGA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAENTREGA'
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ end
+ object ToolBar1: TToolBar [1]
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 25
+ ButtonHeight = 19
+ ButtonWidth = 90
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ List = True
+ ShowCaptions = True
+ TabOrder = 1
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ end
+ object ToolButton2: TToolButton
+ Left = 90
+ Top = 0
+ Action = actModificar
+ end
+ object ToolButton4: TToolButton
+ Left = 180
+ Top = 0
+ Action = actEliminar
+ end
+ end
+ inherited ActionList1: TActionList
+ Left = 8
+ Top = 32
+ object actAnadir: TAction
+ Caption = 'A'#241'adir pedido'
+ OnExecute = actAnadirExecute
+ end
+ object actModificar: TAction
+ Caption = 'Modificar pedido'
+ OnExecute = actModificarExecute
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar pedido'
+ OnExecute = actEliminarExecute
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <>
+ Left = 40
+ Top = 32
+ end
+end
diff --git a/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.pas b/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.pas
new file mode 100644
index 0000000..e23f7fe
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Copia de uViewPedidosMontaje.pas
@@ -0,0 +1,126 @@
+unit uViewPedidosMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, uBizPedidosMontaje, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ ComCtrls, ToolWin;
+
+type
+ IViewPedidosMontaje = interface(IViewGrid)
+ ['{E6A3B3B7-7663-46D6-9B84-7B689D9B2461}']
+ function GetMontajes: IBizPedidosMontaje;
+ procedure SetMontajes(const Value: IBizPedidosMontaje);
+ property Montajes: IBizPedidosMontaje read GetMontajes write SetMontajes;
+ end;
+
+ TfrViewPedidosMontaje = class(TfrViewGrid, IViewPedidosMontaje)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOEMPRESA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewFECHACONFIRMACION: TcxGridDBColumn;
+ cxGridViewFECHAENTREGA: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton2: TToolButton;
+ ToolButton4: TToolButton;
+ actAnadir: TAction;
+ actModificar: TAction;
+ actEliminar: TAction;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure actAnadirExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ protected
+ FMontajes: IBizPedidosMontaje;
+ function GetMontajes: IBizPedidosMontaje;
+ procedure SetMontajes(const Value: IBizPedidosMontaje);
+ public
+ property Montajes: IBizPedidosMontaje read GetMontajes write SetMontajes;
+ end;
+
+var
+ frViewPedidosMontaje: TfrViewPedidosMontaje;
+
+implementation
+
+uses uDataModuleMontajes;
+
+
+{$R *.dfm}
+
+{ TfrViewPedidosMontaje }
+
+{
+******************************* TfrViewPedidosMontaje *******************************
+}
+function TfrViewPedidosMontaje.GetMontajes: IBizPedidosMontaje;
+begin
+ Result := FMontajes;
+end;
+
+procedure TfrViewPedidosMontaje.SetMontajes(const Value: IBizPedidosMontaje);
+begin
+ FMontajes := Value;
+ if Assigned(FMontajes) then
+ DADataSource.DataTable := FMontajes.DataTable;
+end;
+
+
+procedure TfrViewPedidosMontaje.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewPedidosMontaje.actAnadirExecute(Sender: TObject);
+begin
+ FMontajes.AnadirPedido;
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfrViewPedidosMontaje.actModificarExecute(Sender: TObject);
+begin
+ Self.SyncFocusedRecordsFromGrid;
+ FMontajes.Show;
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfrViewPedidosMontaje.actEliminarExecute(Sender: TObject);
+begin
+ Self.SyncFocusedRecordsFromGrid;
+ try
+ FMontajes.Delete;
+ FMontajes.DataTable.ApplyUpdates;
+ finally
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/Montajes_Impl.bdsproj b/Modulos/Montajes/Cliente/Montajes_Impl.bdsproj
new file mode 100644
index 0000000..90dbb71
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Impl.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Montajes_Impl.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ 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/Modulos/Montajes/Cliente/Montajes_Impl.cfg b/Modulos/Montajes/Cliente/Montajes_Impl.cfg
new file mode 100644
index 0000000..1d28829
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Impl.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Montajes/Cliente/Montajes_Impl.dcp b/Modulos/Montajes/Cliente/Montajes_Impl.dcp
new file mode 100644
index 0000000..02aef2f
Binary files /dev/null and b/Modulos/Montajes/Cliente/Montajes_Impl.dcp differ
diff --git a/Modulos/Montajes/Cliente/Montajes_Impl.dof b/Modulos/Montajes/Cliente/Montajes_Impl.dof
new file mode 100644
index 0000000..6e49027
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Impl.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Almacenes\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Articulos\Cliente;..\..\Documentos asociados
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Montajes/Cliente/Montajes_Impl.dpk b/Modulos/Montajes/Cliente/Montajes_Impl.dpk
new file mode 100644
index 0000000..18be8b7
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Impl.dpk
@@ -0,0 +1,75 @@
+package Montajes_Impl;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ ccpack70,
+ designide,
+ vclactnband,
+ vclx,
+ cfpack,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ vcljpg,
+ JvCoreD7R,
+ JvSystemD7R,
+ PngComponentsD7,
+ PNG_D7,
+ dbrtl,
+ vcldb,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ dsnap,
+ adortl,
+ Montajes_Intf,
+ PedidosMontaje,
+ Almacenes,
+ Contactos,
+ Presupuestos,
+ PedidosProveedor,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxExtEditorsVCLD7,
+ cxDataD7,
+ cxEditorsVCLD7,
+ cxExportVCLD7,
+ ArticulosMontaje,
+ Articulos,
+ JvWizardD7R;
+
+contains
+ uPluginControllerMontajes in 'uPluginControllerMontajes.pas' {ModuleMontajes: TModuleController},
+ uEditorMontajes in 'uEditorMontajes.pas' {fEditorMontajes: TCustomEditor},
+ uEditorMontaje in 'uEditorMontaje.pas' {fEditorMontaje: TCustomEditor},
+ uAsistenteEtiquetasMontajes in 'uAsistenteEtiquetasMontajes.pas' {fAsistenteEtiquetasMontajes};
+
+end.
diff --git a/Modulos/Montajes/Cliente/Montajes_Impl.drc b/Modulos/Montajes/Cliente/Montajes_Impl.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Impl.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Montajes/Cliente/Montajes_Impl.res b/Modulos/Montajes/Cliente/Montajes_Impl.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Montajes/Cliente/Montajes_Impl.res differ
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.bdsproj b/Modulos/Montajes/Cliente/Montajes_Intf.bdsproj
new file mode 100644
index 0000000..f98295f
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Intf.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Montajes_Intf.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados
+ 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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.cfg b/Modulos/Montajes/Cliente/Montajes_Intf.cfg
new file mode 100644
index 0000000..f3639e9
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Intf.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.dcp b/Modulos/Montajes/Cliente/Montajes_Intf.dcp
new file mode 100644
index 0000000..b02bc7f
Binary files /dev/null and b/Modulos/Montajes/Cliente/Montajes_Intf.dcp differ
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.dof b/Modulos/Montajes/Cliente/Montajes_Intf.dof
new file mode 100644
index 0000000..90eed51
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Intf.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;.\;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados
+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;dxPScxSchedulerLnkD7;dxPScxTLLnkD7;dxPSDBTeeChartD7;dxPsPrVwAdvD7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.dpk b/Modulos/Montajes/Cliente/Montajes_Intf.dpk
new file mode 100644
index 0000000..439ac04
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Intf.dpk
@@ -0,0 +1,85 @@
+package Montajes_Intf;
+
+{$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 OFF}
+
+requires
+ vcl,
+ rtl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PNG_D7,
+ PngComponentsD7,
+ dbrtl,
+ vcldb,
+ dsnap,
+ adortl,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ vclactnband,
+ designide,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ BaseD7,
+ Usuarios,
+ dxPSCoreD7,
+ dxComnD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ frx7,
+ fs7,
+ tee,
+ fqb70,
+ bdertl,
+ Contactos,
+ Almacenes,
+ Presupuestos_Intf;
+
+contains
+ uDataModuleMontajes in 'uDataModuleMontajes.pas' {dmMontajes: TDAClientDataModule},
+ uBizMontajes in '..\Reglas\uBizMontajes.pas',
+ uViewMontaje in 'uViewMontaje.pas' {frViewMontaje: TFrame},
+ uViewMontajes in 'uViewMontajes.pas' {frViewMontajes: TFrame},
+ uViewMontajeRelacionado in 'uViewMontajeRelacionado.pas' {frViewMontajeRelacionado: TCustomView},
+ uViewFichaBeneficiosMontaje in 'uViewFichaBeneficiosMontaje.pas' {frViewFichaBeneficiosMontaje: TCustomView},
+ uViewPresupuestoMontaje in 'uViewPresupuestoMontaje.pas' {frViewPresupuestoMontaje: TCustomView};
+
+end.
diff --git a/Modulos/Montajes/Cliente/Montajes_Intf.drc b/Modulos/Montajes/Cliente/Montajes_Intf.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Montajes/Cliente/Montajes_Intf.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Montajes/Cliente/Montajes_Intf.res b/Modulos/Montajes/Cliente/Montajes_Intf.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Montajes/Cliente/Montajes_Intf.res differ
diff --git a/Modulos/Montajes/Cliente/PedidosMontaje.bdsproj b/Modulos/Montajes/Cliente/PedidosMontaje.bdsproj
new file mode 100644
index 0000000..648cf0e
--- /dev/null
+++ b/Modulos/Montajes/Cliente/PedidosMontaje.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ PedidosMontaje.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados
+ 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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxPSCoreD7;PluginSDK_D7R
+
+
+ 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/Modulos/Montajes/Cliente/PedidosMontaje.cfg b/Modulos/Montajes/Cliente/PedidosMontaje.cfg
new file mode 100644
index 0000000..5fba46c
--- /dev/null
+++ b/Modulos/Montajes/Cliente/PedidosMontaje.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Montajes/Cliente/PedidosMontaje.dcp b/Modulos/Montajes/Cliente/PedidosMontaje.dcp
new file mode 100644
index 0000000..3eebe67
Binary files /dev/null and b/Modulos/Montajes/Cliente/PedidosMontaje.dcp differ
diff --git a/Modulos/Montajes/Cliente/PedidosMontaje.dof b/Modulos/Montajes/Cliente/PedidosMontaje.dof
new file mode 100644
index 0000000..e117ae2
--- /dev/null
+++ b/Modulos/Montajes/Cliente/PedidosMontaje.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\Reglas;..\..\..\Modulos\Presupuestos\Cliente;..\..\..\Modulos\Contactos\Cliente;..\..\..\Modulos\Pedidos a proveedor\Cliente;..\..\..\Modulos\Almacenes\Cliente;..\..\Documentos asociados
+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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;dxPSCoreD7;PluginSDK_D7R
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Montajes/Cliente/PedidosMontaje.dpk b/Modulos/Montajes/Cliente/PedidosMontaje.dpk
new file mode 100644
index 0000000..cff0a46
--- /dev/null
+++ b/Modulos/Montajes/Cliente/PedidosMontaje.dpk
@@ -0,0 +1,71 @@
+package PedidosMontaje;
+
+{$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 OFF}
+
+requires
+ rtl,
+ PedidosProveedor,
+ BaseD7,
+ Contactos,
+ Usuarios,
+ Presupuestos,
+ Almacenes,
+ vcl,
+ dbrtl,
+ JvCoreD7R,
+ vclx,
+ vcljpg,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ dxPSCoreD7,
+ dxComnD7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ cxDataD7,
+ cxEditorsVCLD7,
+ vcldb,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ designide,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ dsnap,
+ adortl;
+
+contains
+ uBizPedidosMontaje in '..\Reglas\uBizPedidosMontaje.pas',
+ uViewPedidosMontaje in 'uViewPedidosMontaje.pas' {frViewPedidosMontaje: TCustomView};
+
+end.
diff --git a/Modulos/Montajes/Cliente/PedidosMontaje.drc b/Modulos/Montajes/Cliente/PedidosMontaje.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Montajes/Cliente/PedidosMontaje.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Montajes/Cliente/PedidosMontaje.res b/Modulos/Montajes/Cliente/PedidosMontaje.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Montajes/Cliente/PedidosMontaje.res differ
diff --git a/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.ddp b/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.ddp differ
diff --git a/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.dfm b/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.dfm
new file mode 100644
index 0000000..cd43bed
--- /dev/null
+++ b/Modulos/Montajes/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/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.pas b/Modulos/Montajes/Cliente/uAsistenteEtiquetasMontajes.pas
new file mode 100644
index 0000000..cdd1671
--- /dev/null
+++ b/Modulos/Montajes/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/Modulos/Montajes/Cliente/uDataModuleMontajes.ddp b/Modulos/Montajes/Cliente/uDataModuleMontajes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uDataModuleMontajes.ddp differ
diff --git a/Modulos/Montajes/Cliente/uDataModuleMontajes.dfm b/Modulos/Montajes/Cliente/uDataModuleMontajes.dfm
new file mode 100644
index 0000000..79bf094
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uDataModuleMontajes.dfm
@@ -0,0 +1,619 @@
+object dmMontajes: TdmMontajes
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 564
+ Top = 347
+ Height = 335
+ Width = 343
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvMontajes'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Montajes: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. montaje'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOMONTAJE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Inicio'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Finalizaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAFIN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'SITUACIONMONTAJE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Montajes'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Montajes'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Montajes'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Montajes'
+ IndexDefs = <>
+ Left = 128
+ Top = 32
+ end
+ object ds_Montajes: TDADataSource
+ DataTable = tbl_Montajes
+ Left = 240
+ Top = 32
+ end
+ object tbl_FichaBeneficios: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. montaje'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOMONTAJE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MODELO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVEEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMPRA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VENTA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = 77
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOMONTAJE=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ MasterSource = ds_Montajes
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOMONTAJE'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'FichaBeneficios'
+ IndexDefs = <>
+ Left = 128
+ Top = 120
+ end
+ object ds_FichaBeneficios: TDADataSource
+ DataTable = tbl_FichaBeneficios
+ Left = 240
+ Top = 120
+ end
+ object tbl_FichaBeneficios_Aux: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios_Aux'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios_Aux'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'FichaBeneficios_Aux'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'FichaBeneficios_Aux'
+ IndexDefs = <>
+ Left = 128
+ Top = 200
+ end
+ object ds_FichaBeneficios_Aux: TDADataSource
+ DataTable = tbl_FichaBeneficios_Aux
+ Left = 240
+ Top = 200
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uDataModuleMontajes.pas b/Modulos/Montajes/Cliente/uDataModuleMontajes.pas
new file mode 100644
index 0000000..bdd04b4
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uDataModuleMontajes.pas
@@ -0,0 +1,374 @@
+unit uDataModuleMontajes;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizMontajes, uBizPresupuestosCliente, schMontajesClient_Intf;
+
+type
+ TdmMontajes = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Montajes: TDACDSDataTable;
+ ds_Montajes: TDADataSource;
+ tbl_FichaBeneficios: TDACDSDataTable;
+ ds_FichaBeneficios: TDADataSource;
+ tbl_FichaBeneficios_Aux: TDACDSDataTable;
+ ds_FichaBeneficios_Aux: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ public
+ function GetItems: IBizMontaje; overload;
+ function GetItemsPendientes(Situacion: TEnumSituacion): IBizMontaje;
+ function GetItemsSeleccionados(ASource : IBizMontaje): IBizMontaje;
+ function GetItem(Codigo : Integer): IBizMontaje;
+ function GetItems(CodigoPresupuesto : Integer): IBizMontaje; overload;
+ function GetNextAutoinc(const Generador: String): integer;
+ procedure PreviewFicha(const Codigo:Integer);
+ procedure PrintFicha(const Codigo:Integer);
+ procedure PreviewEtiquetas(const Codigo : Integer; const NumEtiquetas : Integer);
+ procedure PrintEtiquetas(const Codigo : Integer; const NumEtiquetas : Integer);
+ function PuedoEliminarMontaje(Codigo : Integer) : Boolean;
+ function darFichaBeneficiosAux: IFichaBeneficios_Aux;
+ procedure NuevoMontaje(AMontaje: IBizMontaje; APresupuesto: IBizPresupuestos);
+ function CambiarSituacion(CodigoPresupuesto: Integer; Situacion: TEnumSituacion): String;
+ function DarNuevaReferencia (TipoMontaje : String) : String;
+ end;
+
+var
+ dmMontajes: TdmMontajes;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview,
+ Dialogs, uDataModuleBase, uDBSelectionList,
+ uDataModuleContactos, uDataModulePresupuestos;
+
+const
+ MAX_RECORDS = 100;
+
+
+procedure TdmMontajes.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmMontajes.GetItems: IBizMontaje;
+var
+ dtMontajes: TDACDSDataTable;
+ dtFichaBeneficiosMontaje: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtMontajes := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Montajes, dtMontajes);
+ dtMontajes.BusinessRulesID := 'BizMontaje';
+
+ dtFichaBeneficiosMontaje := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_FichaBeneficios, dtFichaBeneficiosMontaje);
+ with dtFichaBeneficiosMontaje do
+ begin
+ BusinessRulesID := 'BizFichaBeneficiosMontaje';
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+ end;
+ (dtMontajes as IBizMontaje).FichaBeneficios := (dtFichaBeneficiosMontaje as IBizFichaBeneficiosMontaje);
+
+ Result := (dtMontajes as IBizMontaje);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+function TdmMontajes.GetItem(Codigo: Integer): IBizMontaje;
+var
+ AMontaje: IBizMontaje;
+begin
+ AMontaje := GetItems;
+ with AMontaje.DataTable do
+ begin
+ if Active then
+ Active := False;
+ Where.Clear;
+ Where.OpenBraket;
+ Where.AddText('MON.' + fld_MONTAJESCODIGO + ' = ' + IntToStr(Codigo), False);
+ Where.CloseBraket;
+ end;
+ Result := AMontaje;
+end;
+
+function TdmMontajes.GetNextAutoinc(const Generador: String): integer;
+begin
+ Result := (RORemoteService as IsrvMontajes).GetNextAutoinc(Generador);
+end;
+
+function TdmMontajes.GetItemsSeleccionados(ASource: IBizMontaje): IBizMontaje;
+var
+ aObj : ISelectedRowList;
+ dtMontaje : IBizMontaje;
+ i : integer;
+begin
+ if Supports(ASource, ISelectedRowList, aObj) then
+ begin
+ if (aObj.SelectedRows.Count = 1) then
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
+ Result := GetItem(ASource.CODIGO);
+ Exit;
+ end
+ else
+ dtMontaje := GetItems;
+ end
+ else
+ raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
+
+ if dtMontaje.DataTable.Active then
+ dtMontaje.DataTable.Active := False;
+ with dtMontaje.DataTable.Where do
+ begin
+ Clear;
+ for i := 0 to aObj.SelectedRows.Count - 1 do
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
+ if i > 0 then
+ AddOperator(opAND);
+ AddCondition(fld_MontajesCODIGO, cEqual, ASource.CODIGO);
+ end;
+ end;
+
+ Result := dtMontaje;
+end;
+
+function TdmMontajes.GetItemsPendientes(Situacion: TEnumSituacion): IBizMontaje;
+var
+ dsMontajes : IBizMontaje;
+begin
+ dsMontajes := GetItems;
+ with dsMontajes.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ case Situacion of
+ sitPendientes: begin
+ AddText('MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTERECEPCION + '''', False);
+ AddText('OR MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTEMONTAJE + '''', False);
+ AddText('OR MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTEPAGO + '''', False);
+ end;
+ sitPendienteRecepcion: AddText('MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTERECEPCION + '''', False);
+ sitPendienteMontaje: AddText('MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTEMONTAJE + '''', False);
+ sitPendientePago: AddText('MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PENDIENTEPAGO + '''', False);
+ sitPagado: AddText('MONTAJES.' + fld_MontajesSITUACION + '=' + '''' + SITUACION_PAGADO + '''', False);
+ end;
+ CloseBraket;
+ end;
+ Result := dsMontajes;
+end;
+
+function TdmMontajes.PuedoEliminarMontaje(Codigo: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvMontajes).PuedoEliminarMontaje(Codigo);
+end;
+
+procedure TdmMontajes.PreviewFicha(Const Codigo:Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvMontajes).GenerateReportFicha(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmMontajes.PrintFicha(Const Codigo:Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvMontajes).GenerateReportFicha(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmMontajes.PreviewEtiquetas(const Codigo : Integer;
+ const NumEtiquetas : Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvMontajes).GenerateReportEtiquetas(Codigo, NumEtiquetas);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmMontajes.PrintEtiquetas(const Codigo : Integer;
+ const NumEtiquetas : Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvMontajes).GenerateReportEtiquetas(Codigo, NumEtiquetas);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmMontajes.NuevoMontaje(AMontaje: IBizMontaje; APresupuesto: IBizPresupuestos);
+begin
+ if not Assigned(AMontaje) then
+ begin
+ AMontaje := getItem(-1);
+ AMontaje.DataTable.Active := True;
+ end;
+
+ AMontaje.Insert;
+ AMontaje.Presupuesto := APresupuesto;
+ AMontaje.Post;
+ AMontaje.DataTable.ApplyUpdates;
+
+// if not AnadirFichaBeneficios(AMontaje.CODIGO) then
+// raise Exception.Create('Error al crear ficha de beneficios');
+end;
+
+function TdmMontajes.darFichaBeneficiosAux: IFichaBeneficios_Aux;
+var
+ dtFichaBeneficiosAux: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtFichaBeneficiosAux := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_FichaBeneficios_Aux, dtFichaBeneficiosAux);
+ dtFichaBeneficiosAux.BusinessRulesID := 'BizFichaBeneficiosAux';
+ Result := (dtFichaBeneficiosAux as IFichaBeneficios_Aux);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmMontajes.CambiarSituacion(CodigoPresupuesto: Integer; Situacion: TEnumSituacion): String;
+var
+ AMontaje: IBizMontaje;
+begin
+ Result := '';
+ AMontaje := GetItems(CodigoPresupuesto);
+ AMontaje.DataTable.Active := True;
+
+ AMontaje.DataTable.First;
+ while not AMontaje.DataTable.EOF do
+ begin
+ AMontaje.DataTable.Edit;
+ Case Situacion of
+ sitPendientes: AMontaje.SITUACION := SITUACION_PENDIENTE;
+ sitPendienteRecepcion: AMontaje.SITUACION := SITUACION_PENDIENTERECEPCION;
+ sitPendienteMontaje: AMontaje.SITUACION := SITUACION_PENDIENTEMONTAJE;
+ sitPendientePago: AMontaje.SITUACION := SITUACION_PENDIENTEPAGO;
+ sitPagado: AMontaje.SITUACION := SITUACION_PAGADO;
+ end;
+
+ if (Length(Result) > 0) then
+ Result := Result + ', ';
+ Result := Result + AMontaje.REFERENCIA;
+
+ AMontaje.DataTable.Post;
+ AMontaje.DataTable.Next;
+ end;
+
+ //Solo si se han hecho cambios
+ if (Length(Result) > 0) then
+ AMontaje.DataTable.ApplyUpdates;
+end;
+
+function TdmMontajes.GetItems(CodigoPresupuesto: Integer): IBizMontaje;
+var
+ AMontaje: IBizMontaje;
+begin
+ AMontaje := GetItems;
+ with AMontaje.DataTable do
+ begin
+ if Active then
+ Active := False;
+ Where.Clear;
+ Where.OpenBraket;
+ Where.AddText('MON.' + fld_MONTAJESCODIGOPRESUPUESTO + ' = ' + IntToStr(CodigoPresupuesto), False);
+ Where.CloseBraket;
+ end;
+ Result := AMontaje;
+end;
+
+function TdmMontajes.DarNuevaReferencia(TipoMontaje: String): String;
+begin
+ Result := (RORemoteService as IsrvMontajes).DarNuevaReferencia(TipoMontaje);
+end;
+
+initialization
+ dmMontajes := TdmMontajes.Create(nil);
+
+finalization
+ FreeAndNil(dmMontajes);
+
+end.
+
diff --git a/Modulos/Montajes/Cliente/uEditorMontaje.ddp b/Modulos/Montajes/Cliente/uEditorMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uEditorMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uEditorMontaje.dfm b/Modulos/Montajes/Cliente/uEditorMontaje.dfm
new file mode 100644
index 0000000..9f8b961
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uEditorMontaje.dfm
@@ -0,0 +1,1551 @@
+inherited fEditorMontaje: TfEditorMontaje
+ Left = 337
+ Top = 203
+ Width = 766
+ Height = 497
+ HorzScrollBar.Visible = False
+ VertScrollBar.Visible = False
+ Caption = 'Ficha de montaje'
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 758
+ Caption = 'Montaje'
+ inherited Image1: TImage
+ Left = 731
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 758
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ object TBXSeparatorItem14: TTBXSeparatorItem [15]
+ end
+ object TBXItem7: TTBXItem [16]
+ Action = actEtiquetas
+ DisplayMode = nbdmImageAndText
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 758
+ Height = 368
+ inherited pagGeneral: TTabSheet
+ inline frViewMontaje1: TfrViewMontaje
+ Left = 0
+ Top = 0
+ Width = 750
+ Height = 340
+ Align = alClient
+ Anchors = []
+ Constraints.MinHeight = 300
+ Constraints.MinWidth = 750
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 313
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewDatosYSeleccionContactoedtlNombrePropertiesChange
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ Width = 182
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ Width = 105
+ end
+ end
+ end
+ end
+ object pagPedidos: TTabSheet
+ Caption = 'Pedidos'
+ ImageIndex = 1
+ inline frViewPedidosMontaje: TfrViewPedidosMontaje
+ Left = 0
+ Top = 0
+ Width = 750
+ Height = 340
+ 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 = 750
+ Height = 315
+ TabOrder = 1
+ inherited cxGridView: TcxGridDBTableView
+ inherited cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ inherited cxGridViewSITUACION: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 750
+ TabOrder = 0
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter [3]
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ Active = False
+ Component = nil
+ ReportDocument.CreationDate = 38749.410466388890000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited dxPSEngineController1: TdxPSEngineController [4]
+ end
+ inherited cxStyleRepository1: TcxStyleRepository [5]
+ end
+ inherited PngImageList: TPngImageList [6]
+ end
+ inherited PngImageList2: TPngImageList [7]
+ end
+ inherited ActionList1: TActionList [8]
+ inherited actRecibirPedido: TAction
+ OnExecute = frViewPedidosMontajeactRecibirPedidoExecute
+ OnUpdate = frViewPedidosMontajeactRecibirPedidoUpdate
+ end
+ end
+ end
+ end
+ object pagArticulos: TTabSheet
+ Caption = 'Art'#237'culos'
+ ImageIndex = 2
+ inline frViewArticulosMontaje: TfrViewArticulosMontaje
+ Left = 0
+ Top = 0
+ Width = 750
+ Height = 340
+ 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 = 750
+ Height = 315
+ end
+ inherited ToolBar1: TToolBar
+ Width = 750
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38751.760538553240000000
+ BuiltInReportLink = True
+ end
+ end
+ end
+ end
+ object pagFichaBeneficios: TTabSheet
+ Caption = 'Ficha de beneficios'
+ ImageIndex = 3
+ inline frViewFichaBeneficiosMontaje: TfrViewFichaBeneficiosMontaje
+ Left = 0
+ Top = 0
+ Width = 750
+ Height = 340
+ 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 = 750
+ Height = 315
+ TabOrder = 1
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 MONTAJES'
+ Kind = skCount
+ Column = frViewFichaBeneficiosMontaje.cxGridViewDESCRIPCION
+ end
+ item
+ Format = '0'
+ Kind = skSum
+ Column = frViewFichaBeneficiosMontaje.cxGridViewCOMPRA
+ end
+ item
+ Format = '0'
+ Kind = skSum
+ Column = frViewFichaBeneficiosMontaje.cxGridViewVENTA
+ end>
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ IsCaptionAssigned = True
+ end
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 750
+ TabOrder = 0
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ Active = False
+ Component = nil
+ ReportDocument.CreationDate = 38752.598733356490000000
+ BuiltInReportLink = True
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 444
+ Width = 758
+ end
+ inherited EditorActionList: TActionList
+ Left = 264
+ Top = 32
+ object actEtiquetas: TAction
+ Category = 'Archivo'
+ Caption = 'Etiquetas...'
+ ImageIndex = 20
+ OnExecute = actEtiquetasExecute
+ 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
+ 610000000970485973000017120000171201679FD2520000008D4944415478DA
+ 63FCFFFF3F03084C59BC03C22001E4C47A3032221B6066A0C570EDF63D14455A
+ AA4A58C5324A3B18CEED98866A000F3707434290035CE1A9CB8FC09A6162203E
+ 0880C426CD5A85DF0090E26FDF7F313C78F2042C06E38300480CAB01A35E18F5
+ 025DBDE064A9CF1090588D69809F8B39C3D5DB2F188801D56D93310D98B77413
+ 519A6100640000C16C35F0D0FF08AC0000000049454E44AE426082}
+ Name = 'PngImage20'
+ Background = clWindow
+ end>
+ Top = 112
+ Bitmap = {}
+ end
+ inherited dsDataTable: TDADataSource [6]
+ Left = 216
+ Top = 32
+ 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
+ F80000000970485973000017120000171201679FD252000001D24944415478DA
+ B5956B4BC2501CC6FF7E8F8AA27B9888B64A142F195D28858C40A8177D833E49
+ EFA2975174854834334A2CCD4B6933D310428AF0859FA0B034746BE7D44A5D4E
+ 9BED81C360CFD9F383FFB39D49689A06312529056C1F45FE8D363F3D24F915C0
+ 187F0E2B162966D1F88AA49E5982D8C9EAFF004AC30B14051B362FAC6D1FD606
+ ACDB7C9CB0458BBEAA373BAEC2902DC7456D000A60C372F90264DFF2907D7D87
+ F370A20C54E9990C04EC1E05EA0358A734DF0FBF64F3F09CCD41EA298DF755F3
+ 26754AD83F0ED507308D106501F9F702A43319BCAF9A37AA9683DD1D16DEC182
+ 590B0566CE7BAE20C743E1A803E7D9B5781DE8887E70F948F13AD028A570E28F
+ 8AD7C1B0BC0F3CA198F00ECCC6413C67972FCAF15038F2BCE1B8781D28FABAC0
+ 4FDEF103AC93046C3AFC823A90F574C0E54D921F303736003BCCD728A483DE8E
+ 362013F7FC008B51810FAD83D32BCE9CF543323CE74034C9F15038F262C9143F
+ C06C90E370211DB4B73443E2FE811F30A59581DD1311D4416B531324538FFC80
+ 09B5149C5E525007750146559FEFB33B78CB99B352DA8DBD3833864AA170A49A
+ 001DF11942A1BF1445E3C3ADF8B528FAE7CFC5DE437B4A5513A05174E213B111
+ F1029657361A0A67C5023E005FB10AFEE73DE6CD0000000049454E44AE426082}
+ Name = 'PngImage20'
+ Background = clWindow
+ end>
+ Top = 112
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ Top = 152
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ Top = 152
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uEditorMontaje.pas b/Modulos/Montajes/Cliente/uEditorMontaje.pas
new file mode 100644
index 0000000..a7dddb7
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uEditorMontaje.pas
@@ -0,0 +1,235 @@
+unit uEditorMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ uViewMontaje, uBizMontajes, JvNavigationPane, ActnList,
+ uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
+ TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
+ TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+ uViewMontajes, Grids, DBGrids, uViewGrid,
+ uBizPedidosMontaje, uViewPedidosMontaje,
+ uBizArticulosMontaje, uViewArticulosMontaje, uViewFichaBeneficiosMontaje,
+ JvComponentBase;
+
+type
+ IEditorMontaje = interface(IEditorDBItem)
+ ['{FDE5A2F2-8C68-49CA-917B-C97E618CF9E9}']
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ end;
+
+ TfEditorMontaje = class(TfEditorDBItem, IEditorMontaje)
+ pagPedidos: TTabSheet;
+ frViewPedidosMontaje: TfrViewPedidosMontaje;
+ pagArticulos: TTabSheet;
+ frViewArticulosMontaje: TfrViewArticulosMontaje;
+ pagFichaBeneficios: TTabSheet;
+ frViewFichaBeneficiosMontaje: TfrViewFichaBeneficiosMontaje;
+ frViewMontaje1: TfrViewMontaje;
+ TBXSeparatorItem14: TTBXSeparatorItem;
+ TBXItem7: TTBXItem;
+ actEtiquetas: TAction;
+ procedure FormShow(Sender: TObject);
+ procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+ procedure frViewPedidosMontajeactRecibirPedidoExecute(Sender: TObject);
+ procedure frViewPedidosMontajeactRecibirPedidoUpdate(Sender: TObject);
+ procedure actEtiquetasExecute(Sender: TObject);
+ private
+ FMontaje: IBizMontaje;
+ FViewMontaje : IViewMontaje;
+ FPedidosMontaje : IBizPedidosMontaje;
+ FArticulosMontaje : IBizArticulosMontaje;
+ FFichaBeneficiosMontaje : IBizFichaBeneficiosMontaje;
+ protected
+ function GetModified: Boolean; override;
+ function GetMontaje: IBizMontaje; virtual;
+ procedure SetMontaje(const Value: IBizMontaje); virtual;
+
+ function GetViewMontaje: IViewMontaje;
+ procedure SetViewMontaje(const Value: IViewMontaje);
+ property ViewMontaje: IViewMontaje read GetViewMontaje write
+ SetViewMontaje;
+ public
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uCustomEditor, uDataModuleMontajes, uDataModuleBase, uEditorUtils,
+ uBizPedidosProveedor, uDataTableUtils, uAsistenteEtiquetasMontajes;
+
+function ShowEditorMontaje (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorMontaje;
+begin
+ AEditor := TfEditorMontaje.Create(Application);
+ try
+ AEditor.Montaje := (ABizObject as IBizMontaje);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+******************************* TfEditorMontaje *******************************
+}
+function TfEditorMontaje.GetMontaje: IBizMontaje;
+begin
+ Result := FMontaje;
+end;
+
+function TfEditorMontaje.GetViewMontaje: IViewMontaje;
+begin
+ Result := FViewMontaje;
+end;
+
+procedure TfEditorMontaje.SetMontaje(const Value: IBizMontaje);
+begin
+ FMontaje := Value;
+ dsDataTable.DataTable := FMontaje.DataTable;
+
+ if Assigned(FViewMontaje) and Assigned(Montaje) then
+ begin
+ FViewMontaje.Montaje := Montaje;
+ frViewFichaBeneficiosMontaje.FichaBeneficiosMontaje := Montaje.FichaBeneficios;
+ end;
+
+ FPedidosMontaje := DarPedidosMontaje(FMontaje.CODIGO);
+ FPedidosMontaje.DataTable.Active := True;
+ frViewPedidosMontaje.CodigoMontaje := FMontaje.CODIGO;
+ frViewPedidosMontaje.PedidosMontaje := FPedidosMontaje;
+
+ FArticulosMontaje := DarArticulosMontaje(FMontaje.CODIGO);
+ FArticulosMontaje.DataTable.Active := True;
+ frViewArticulosMontaje.CodigoMontaje := FMontaje.CODIGO;
+ frViewArticulosMontaje.ArticulosMontaje := FArticulosMontaje;
+
+// FFichaBeneficiosMontaje := dmMontajes.GetFichaBeneficios(FMontaje.CODIGO);
+// FFichaBeneficiosMontaje.DataTable.Active := True;
+// frViewFichaBeneficiosMontaje.FichaBeneficiosMontaje := FFichaBeneficiosMontaje;
+end;
+
+procedure TfEditorMontaje.SetViewMontaje(const Value: IViewMontaje);
+begin
+ FViewMontaje := Value;
+
+ if Assigned(FViewMontaje) and Assigned(Montaje) then
+ FViewMontaje.Montaje := Montaje;
+end;
+
+procedure TfEditorMontaje.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewMontaje) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Montaje) then
+ raise Exception.Create('No hay ningún almacén asignado');
+
+ Montaje.DataTable.Active := True;
+{ FViewMontaje.ShowEmbedded(pagGeneral);
+ FViewMontaje.SetFocus;}
+end;
+
+destructor TfEditorMontaje.Destroy;
+begin
+ FViewMontaje := NIL;
+ FMontaje := NIL;
+
+ FPedidosMontaje := NIL;
+ FArticulosMontaje := NIL;
+// FFichaBeneficiosMontaje := NIL;
+
+ inherited;
+end;
+
+constructor TfEditorMontaje.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewMontaje := CreateView(TfrViewMontaje) as IViewMontaje;
+ ViewMontaje := frViewMontaje1;
+end;
+
+procedure TfEditorMontaje.frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewMontaje1.frViewDatosYSeleccionContacto.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo montaje'
+ else
+ JvNavPanelHeader.Caption := 'Montaje para ' +
+ frViewMontaje1.frViewDatosYSeleccionContacto.edtlNombre.Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+procedure TfEditorMontaje.frViewPedidosMontajeactRecibirPedidoExecute(Sender: TObject);
+var
+ APedido: IBizPedidosMontaje;
+begin
+ inherited;
+
+ (frViewPedidosMontaje as IViewPedidosMontaje).SyncFocusedRecordsFromGrid;
+
+ if FPedidosMontaje.SITUACION = SITUACION_RECIBIDO then
+ begin
+ showmessage('El pedido seleccionado ya esta totalmente recibido');
+ exit;
+ end;
+
+ try
+ FArticulosMontaje.RecibirArticulos(FPedidosMontaje, 0);
+ finally
+ (frViewPedidosMontaje as IViewPedidosMontaje).RefreshGrid;
+ (frViewPedidosMontaje as IViewPedidosMontaje).SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+procedure TfEditorMontaje.frViewPedidosMontajeactRecibirPedidoUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(FPedidosMontaje.DataTable) then
+ (Sender as TAction).Enabled := (not FPedidosMontaje.DataTable.IsEmpty)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+function TfEditorMontaje.GetModified: Boolean;
+var
+ bCambiado : Boolean;
+begin
+ bCambiado := inherited GetModified;
+
+ if not bCambiado then
+ begin
+ bCambiado := (frViewFichaBeneficiosMontaje.DADataSource.DataTable.State = dsEdit) or
+ DeltaValuesAreDifferent(frViewFichaBeneficiosMontaje.DADataSource.DataTable.Delta);
+ end;
+
+ Result := bCambiado;
+end;
+
+procedure TfEditorMontaje.actEtiquetasExecute(Sender: TObject);
+begin
+ inherited;
+ VerAsistenteEtiquetasMontajes(FMontaje);
+end;
+
+initialization
+ RegisterEditor(IBizMontaje, ShowEditorMontaje, etItem);
+
+end.
+
diff --git a/Modulos/Montajes/Cliente/uEditorMontajes.ddp b/Modulos/Montajes/Cliente/uEditorMontajes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uEditorMontajes.ddp differ
diff --git a/Modulos/Montajes/Cliente/uEditorMontajes.dfm b/Modulos/Montajes/Cliente/uEditorMontajes.dfm
new file mode 100644
index 0000000..428eb4e
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uEditorMontajes.dfm
@@ -0,0 +1,1402 @@
+inherited fEditorMontajes: TfEditorMontajes
+ Left = 309
+ Top = 226
+ Width = 750
+ Height = 500
+ Caption = 'Lista de montajes'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 742
+ Caption = 'Lista de montajes'
+ inherited Image1: TImage
+ Left = 715
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF8000000097048597300000B3A00000B3A01647F57
+ 0D0000000467414D410000B18E7CFB5193000002874944415478DAB5944D6813
+ 4114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD154F06CA56
+ 5452A1A224E736F4165088F45222480881DE6C901EA4274F122FC90A3DE45068
+ 4C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFBE63F334455
+ 5538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB15DE760C08
+ 04246349F18101A53438A83CE6790EC6C62E82D339C4268B451962B1644B5053
+ C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC629FF690831
+ 7E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DABCDF3F6102
+ 944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736B21ADC58E5
+ E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C033C7BFE44
+ 1DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC66EB856834
+ A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F345914439B
+ 3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11F2E7EEC395
+ D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE7E8196DACF
+ 8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83000C141704
+ C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E35027471F4
+ A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A811548DB9B
+ 6C14770922A43312843E8B5D43483BF14A4E82047D05A44A7795904EC47543AD
+ 7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047FE0EF6BE72
+ 47E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91E314306732
+ 79EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F00FADE10E2
+ 8785B5A40000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 742
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ inherited tbxEditFiltro: TTBXEditItem
+ EditOptions = [tboUseEditWhenVertical]
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 447
+ Width = 742
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 410
+ Width = 742
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 742
+ inherited bSeleccionar: TButton
+ Left = 581
+ end
+ inherited bCancelar: TButton
+ Left = 660
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ end
+ inherited actDuplicar: TAction
+ Visible = False
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 61000000097048597300000B1300000B1301009A9C18000001604944415478DA
+ A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C
+ 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8
+ E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6
+ 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025
+ CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060
+ D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE
+ A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E
+ CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD
+ 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE
+ 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE
+ 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99
+ 4F200000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ F80000000970485973000017120000171201679FD2520000033B4944415478DA
+ DD957F68565518C73F77EF0FDFBDB9B94DC1214D5BB2FD61A3B0399236D66424
+ 96A32874A1329D2D322C7F24686C0D539318FE964419E29F6AFF5810D982821C
+ BA0D57292846A4AD36B7D770BEEFF6FEBA7BEF3DF7DEB773A72EDFDE3BD71FEE
+ 1F0F3CDC7378CEF97E9EE73CE79CAB24934926B3298F07E0EB73BF4E0AE5B5AA
+ 79CA18400EC61C86162270F93043033D986692E9454B99337F459A80695AA37E
+ FB6B58D6BDF1DDFE2BAB3EE2D277479D01033FED440FFC4E389C60381263C474
+ 31B7BC9EE205B5FF4BDCFED6AC6E7406F47535A1057AE5242FD1689C585C9516
+ 27AA06A9ACFB9C278B5F1A136F3A2D1CB766D3E2115E5FFB713A203E78893F2F
+ 1C401D1A91C571CBA9493C2E055DE80C066F93F55429E5CB0F3D34F251B392BC
+ D9D09C0E08F67C457FF7492CCD853FD38FCFEB41C142681AAAAA72FD763F351F
+ 768E8A08C364D797CEC57DAF2A46EDBAEDCE80E16B67F0E1C7E3F64821032104
+ 42D7D125E47AD8A2BAE1F4B8D15B7666327A43F657AEDF910E880C7413BAF205
+ 198961321419BB5C681806868444E30922D32B295DBC7E42717B5CB761977391
+ FBBB5AD16E76CAED37B17DA66167A13310715358BD8D1905CF4C286E5BFDE6DD
+ CE806B7D17E8ED68656622814716591882802AB893534259453D3373674F286E
+ FBDED9F2593AE07C7F072DDDFBE9BBF51BCBF4222AF29F261009D13674836EF3
+ 0ED5854B787FE106F29E98312AD47CF01BC7226F5C5DC5BAAD2DA980E7E64F65
+ 5FE711DA035DA8DE30B9A129AC29A9E5AFE19B7C1B6C079F0F821994E79552B7
+ E06D0AB2E7A4446E9FAA0733FBA0716F2A80593DECF9F118514610D3E2E8468C
+ BC58169A5710F70B7C46164AC84B70B097A5C5AFB2B5E2133E3DDAE698C1BB6F
+ 95B3A9797F2A2090DDC1DE1F5AC9F6E5626427107E699ABC702E175E251377DC
+ 872BECE3EF500F453905B4BE71EAA1176DCBF603A90033FF0F769FDD879600F7
+ 340F56A620E936E569525074372ED5432C1C269618A4A6A4868D658DEC39FEBD
+ 63060DCB5F4C07BCFC4211576F5DE5F8C513FC7CE3171991B0B5EDD7027999A5
+ 2964E678D95CD6C4B3F9A5E3467EBFA5011695CD1D77D1442FE77FC51D0195CF
+ 173E327147C08E96238FFA87F62F6032DBA403FE011B7940FEE55D65A3000000
+ 0049454E44AE426082}
+ Name = 'PngImage20'
+ Background = clWindow
+ end>
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uEditorMontajes.pas b/Modulos/Montajes/Cliente/uEditorMontajes.pas
new file mode 100644
index 0000000..7055204
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uEditorMontajes.pas
@@ -0,0 +1,199 @@
+unit uEditorMontajes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uViewMontajes, uBizMontajes, ActnList, DBActns, uViewGrid,
+ Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
+ TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
+ JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
+ uViewBarraSeleccion, JvComponentBase, pngimage;
+
+type
+ IEditorMontajes = interface(IEditorGrid)
+ ['{607F821D-E790-4F80-B095-CE1C34B42E3A}']
+ function GetMontajes: IBizMontaje;
+ procedure SetMontajes(const Value: IBizMontaje);
+ property Montajes: IBizMontaje read GetMontajes write SetMontajes;
+
+ function GetSelectionBarVisible: Boolean;
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+ TfEditorMontajes = class(TfEditorGrid, IEditorMontajes)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ private
+ FMontajes: IBizMontaje;
+ protected
+ function GetMontajes: IBizMontaje; virtual;
+ procedure SetMontajes(const Value: IBizMontaje); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ function GetSelectionBarVisible: Boolean; virtual;
+ procedure SetSelectionBarVisible(const Value: Boolean); virtual;
+ public
+ property SelectionBarVisible : Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ property Montajes: IBizMontaje read GetMontajes write SetMontajes;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uCustomEditor, uDataModuleMontajes,
+ uEditorMontaje, uEditorDBBase, uEditorUtils,
+ cxGrid, cxGridCustomTableView, uDBSelectionList, uBizPresupuestosCliente,
+ uDataModulePresupuestos;
+
+{$R *.dfm}
+
+function ShowEditorMontajes (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorMontajes;
+begin
+ AEditor := TfEditorMontajes.Create(Application);
+ try
+ AEditor.Montajes := (ABizObject as IBizMontaje);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorMontajes (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorMontajes;
+begin
+ AEditor := TfEditorMontajes.Create(Application);
+ try
+ AEditor.Montajes := (ABizObject as IBizMontaje);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+****************************** TfEditorMontajes *******************************
+}
+procedure TfEditorMontajes.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Montajes) then
+ raise Exception.Create('No hay ningún Montaje asignado');
+
+ Montajes.DataTable.Active := True;
+end;
+
+function TfEditorMontajes.GetMontajes: IBizMontaje;
+begin
+ Result := FMontajes;
+end;
+
+procedure TfEditorMontajes.SetMontajes(const Value: IBizMontaje);
+begin
+ FMontajes := Value;
+ dsDataTable.DataTable := FMontajes.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewMontajes).Montajes := Montajes;
+end;
+
+procedure TfEditorMontajes.actNuevoExecute(Sender: TObject);
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ inherited;
+
+ APresupuesto := dmPresupuestos.GetPresupuestosSinMontaje;
+ try
+ if APresupuesto.ShowForSelect = mrOK then
+ begin
+ APresupuesto := dmPresupuestos.GetItemsSeleccionados(APresupuesto);
+ APresupuesto.DataTable.Active := True;
+ dmMontajes.NuevoMontaje(Montajes, APresupuesto);
+ Montajes.Show;
+ end;
+ finally
+ APresupuesto := NIL;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+procedure TfEditorMontajes.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Montajes.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorMontajes.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Montajes) then
+ (ViewGrid as IViewMontajes).Montajes := Montajes;
+end;
+
+destructor TfEditorMontajes.Destroy;
+begin
+ FMontajes := NIL;
+ inherited;
+end;
+
+function TfEditorMontajes.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorMontajes.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorMontajes.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+constructor TfEditorMontajes.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewMontajes) as IViewMontajes;
+end;
+
+procedure TfEditorMontajes.actEliminarExecute(Sender: TObject);
+begin
+ if (MessageDlg('¿Desea borrar este montaje?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizMontaje, ShowEditorMontajes, etItems);
+ RegisterEditor(IBizMontaje, ShowSelectEditorMontajes, etSelectItems);
+
+end.
+
diff --git a/Modulos/Montajes/Cliente/uPluginControllerMontajes.dfm b/Modulos/Montajes/Cliente/uPluginControllerMontajes.dfm
new file mode 100644
index 0000000..acd6345
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uPluginControllerMontajes.dfm
@@ -0,0 +1,141 @@
+object ModuleMontajes: TModuleMontajes
+ OldCreateOrder = True
+ Description = 'Montajes'
+ ModuleMenu = MainMenu
+ ModuleName = 'Montajes'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 691
+ Top = 507
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F8000000097048597300000B3A00000B3A01647F570D000002874944415478DA
+ B5944D68134114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD
+ 154F06CA565452A1A224E736F4165088F45222480881DE6C901EA4274F122FC9
+ 0A3DE450684C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFB
+ E63F3344555538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB
+ 15DE760C0804246349F18101A53438A83CE6790EC6C62E82D339C4268B451962
+ B1644B5053C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC6
+ 29FF6908317E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DA
+ BCDF3F6102944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736
+ B21ADC58E5E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C
+ 033C7BFE441DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC
+ 66EB856834A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F
+ 345914439B3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11
+ F2E7EEC395D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE
+ 7E8196DACF8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83
+ 000C141704C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E
+ 35027471F4A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A
+ 811548DB9B6C14770922A43312843E8B5D43483BF14A4E82047D05A44A779590
+ 4EC47543AD7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047
+ FE0EF6BE7247E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91
+ E31430673279EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F
+ 00FADE10E28785B5A40000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actMontajes: TAction
+ Category = 'Montajes'
+ Caption = 'Montajes'
+ ImageIndex = 0
+ OnExecute = actMontajesExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 300
+ Caption = '&Montajes'
+ GroupIndex = 1
+ ImageIndex = 0
+ OnClick = actMontajesExecute
+ object Almacenes1: TMenuItem
+ Tag = 1000
+ Action = actMontajes
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B1300000B1301009A9C18000001604944415478DA
+ A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C
+ 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8
+ E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6
+ 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025
+ CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060
+ D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE
+ A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E
+ CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD
+ 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE
+ 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE
+ 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99
+ 4F200000000049454E44AE426082}
+ 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
+ 94000000097048597300004E2000004E2001167D99DE000002C04944415478DA
+ E5D54D6813411400E0B788D816B1A5150CA99404AA2CF5E02AFE2C82503DA5B7
+ 14BD054A2A6A130F5549CE6DDA9BD0424A2F69041B42A517B1417A909E3C497A
+ 3129F49043A131BD8422129BE6A7CDCF3A6F935932C96E9AB0928B0F1E43B233
+ FBCD4CDE4C384992A093C1FD1F20C7712D0FF0F9C22ED2882487490AD5AFA324
+ F748861D0E71516BAC6CB50356B1059E37C2D0D025309B7B99E72B2BDB4D6155
+ D0E389D6EE7188E4278F47F85805A564B20BE2F16F4A879919BB0C67320525B7
+ B662F8C85D8F6A82B3B33795CF73733B0C5A1BA4AF8D346B6EF7080366B34588
+ 447E36A00A485E2A555E2070F425881E1F17209D3E05BF7F2F449E8DAB6D334E
+ D0E9BCC660B95CA54D240E81809C2A88C0E4E41204026F10955CAE1119C35C5F
+ 4FC893A9C75EBC7C260D1AA76162C2D48061EEEE66C160C82BAB6C0031105D5E
+ 7EA560989B9BC906D0EB00E957F10694061EC185EEE730367685C18AC532A452
+ 2966825353F739062C14CA70725262B0FEFE2E0806E30C8898C803947A78D8F8
+ 9E81D4F9C77075F02D534C26D3A8BC722CA8FDFD3F303F1F80D5D5D71590AC6A
+ C3E5B2598DC68B0A8430627400452926887652186BC09D14E1DD17235C1EB6C0
+ 7BFF078E1E1F52CD0B086220268AA29BAC7091AED04666F714D1A3A353B9D3C1
+ 419AEC7F8F72DE286AE913642C168F423E1985303901C16D1E7E4462CC96631D
+ 204831FC1D996381D58928E96BA5832C168B2A6AE5ED4D310AE216534CF31CD6
+ 86DDEE95B4D0BEA4A08969454B575B3354EDA8E8026981F8A25EF8176853B0B6
+ 1AB140BC5FEDBA514DB01EA30512CDEB5BA92AA885D102D1F39B368067617A0B
+ 89015BC5F4A00AB8E4E4DAC2CE42F176C17F1D4D70FAC98034FAE03A9C2BEC80
+ A13BD712D60C2577738880E39A206EE9ED5BBCF490FF0DE6DEC3B66F905A3410
+ F8AC8AA916CD9D7B77A57221DD16568B92461363C04E46C7C1BF0E73BFE74CCD
+ 6AD20000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uPluginControllerMontajes.pas b/Modulos/Montajes/Cliente/uPluginControllerMontajes.pas
new file mode 100644
index 0000000..063d72e
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uPluginControllerMontajes.pas
@@ -0,0 +1,71 @@
+unit uPluginControllerMontajes;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCMontajes = interface(IInterface)
+ ['{A0E73296-EAE8-4528-93EB-953484D484EB}']
+ end;
+
+ TModuleMontajes = class(TModuleController, IMCMontajes)
+ actMontajes: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ procedure actMontajesExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModuleMontajes,
+ uBizMontajes, uEditorMontajes;
+
+function GetModule : TModuleController;
+begin
+ Result := TModuleMontajes.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModuleMontajes.actMontajesExecute(Sender: TObject);
+var
+ aObj: IEditorMontajes;
+ AMontajes : IBizMontaje;
+begin
+ AMontajes := dmMontajes.GetItems;
+ aObj := TfEditorMontajes.Create(Application);
+ try
+ with aObj do
+ begin
+ Montajes := AMontajes;
+ ShowEmbedded;
+ end;
+ finally
+ AMontajes := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModuleMontajes);
+
+finalization
+ UnRegisterModuleClass(TModuleMontajes);
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewArticulosMontaje.ddp b/Modulos/Montajes/Cliente/uViewArticulosMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewArticulosMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewArticulosMontaje.dfm b/Modulos/Montajes/Cliente/uViewArticulosMontaje.dfm
new file mode 100644
index 0000000..ca00372
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewArticulosMontaje.dfm
@@ -0,0 +1,135 @@
+inherited frViewArticulosMontaje: TfrViewArticulosMontaje
+ inherited cxGrid: TcxGrid
+ Top = 25
+ Height = 245
+ inherited cxGridView: TcxGridDBTableView
+ OnSelectionChanged = cxGridViewSelectionChanged
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Kind = skCount
+ end>
+ OptionsBehavior.PullFocusing = True
+ OptionsSelection.MultiSelect = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewCODIGOALMACEN: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOALMACEN'
+ Visible = False
+ end
+ object cxGridViewCODIGOPEDIDO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPEDIDO'
+ Visible = False
+ end
+ object cxGridViewCODIGOMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOMONTAJE'
+ Visible = False
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ end
+ object cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIAMONTAJE'
+ Visible = False
+ end
+ object cxGridViewALMACEN: TcxGridDBColumn
+ DataBinding.FieldName = 'ALMACEN'
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ end
+ object ToolBar1: TToolBar [1]
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 25
+ ButtonWidth = 96
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ShowCaptions = True
+ TabOrder = 1
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ end
+ object ToolButton4: TToolButton
+ Left = 96
+ Top = 0
+ Action = actQuitar
+ end
+ end
+ inherited ActionList1: TActionList
+ Images = PngImageList
+ Left = 8
+ Top = 32
+ object actAnadir: TAction
+ Caption = 'Añadir artículo'
+ ImageIndex = 0
+ OnExecute = actAnadirExecute
+ end
+ object actQuitar: TAction
+ Caption = 'Quitar artículo'
+ ImageIndex = 1
+ OnExecute = actQuitarExecute
+ OnUpdate = actQuitarUpdate
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F54944415478DA
+ 6364C002AE56C8FC67201230E23240B9A106C2F9F18381E1C11D86799D1B1892
+ E6638AE13700AA70F6256F06E6EDA91003D0C4701B50510256C870E32AC3EC5F
+ 651003A6638AE1362022006C0B0C800D28C714C369C0C1871404222901CB88AE
+ 089B66ED8E278CB8029691185BB296430DA82014880633FEFF38C180610BDC80
+ 080281689C7EFDFFD99307197E2CB882620BCC006C01CB08D204E3E4C5AA30BC
+ FBF88DA1B07A39C3E42279B82D200370C602C8009046100069BEF7E42D985EBA
+ EC08C334CD16B038410340CE0681DC4C3786BB8FDF306CDB728E81E142065151
+ 8C1188609A48CDD80D20413308000018D5C3DDD8008BA70000000049454E44AE
+ 426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F64944415478DA
+ 63BC5A21F39F8148A0DDF184115D8C11648072430D84F7E30703C3833B0CF33A
+ 373024CDC714CB5A8ECF00A8C2D997BC1998B7A7420C4013C36D4045095821C3
+ 8DAB0CB37F95410C988E2986DB808800B02D300036A01C530CA701071F121788
+ F8C3808800C306700622C8005C518C1C9D380311660021D7E10C441403905C97
+ DB070CB00B19A806600B44B80168AE5B705481E1ECC9837043F00614CC75D6D3
+ B3E16279B12A0CEF3E7E6328AC5E0E3684A00120D7CDE5DB0DD6080220CDF79E
+ BC05D34B971D61202AAA8CD3AFFF073B1B087233DD18EE3E7EC3B06DCB39C22E
+ C00A0C6640A2969830C06900522C0000AF7FD7D8678509020000000049454E44
+ AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 40
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewArticulosMontaje.pas b/Modulos/Montajes/Cliente/uViewArticulosMontaje.pas
new file mode 100644
index 0000000..52704a8
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewArticulosMontaje.pas
@@ -0,0 +1,178 @@
+unit uViewArticulosMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, uBizArticulosMontaje, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ ComCtrls, ToolWin;
+
+type
+ IViewArticulosMontaje = interface(IViewGrid)
+ ['{64DE44DE-2F59-43E5-88D6-C958F3997A45}']
+ function GetCodigoMontaje: Integer;
+ procedure SetCodigoMontaje(const Value: Integer);
+ property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
+
+ function GetArticulosMontaje: IBizArticulosMontaje;
+ procedure SetArticulosMontaje(const Value: IBizArticulosMontaje);
+ property ArticulosMontaje: IBizArticulosMontaje read GetArticulosMontaje write SetArticulosMontaje;
+ end;
+
+ TfrViewArticulosMontaje = class(TfrViewGrid, IViewArticulosMontaje)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn;
+ cxGridViewALMACEN: TcxGridDBColumn;
+ cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
+ cxGridViewCODIGOPEDIDO: TcxGridDBColumn;
+ cxGridViewCODIGOALMACEN: TcxGridDBColumn;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton4: TToolButton;
+ actAnadir: TAction;
+ actQuitar: TAction;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure actAnadirExecute(Sender: TObject);
+ procedure actQuitarExecute(Sender: TObject);
+ procedure cxGridViewSelectionChanged(Sender: TcxCustomGridTableView);
+ procedure actQuitarUpdate(Sender: TObject);
+ protected
+ FCodigoMontaje: Integer;
+ FArticulosMontaje: IBizArticulosMontaje;
+ function GetCodigoMontaje: Integer;
+ procedure SetCodigoMontaje(const Value: Integer);
+ function GetArticulosMontaje: IBizArticulosMontaje;
+ procedure SetArticulosMontaje(const Value: IBizArticulosMontaje);
+ public
+ property ArticulosMontaje: IBizArticulosMontaje read GetArticulosMontaje write SetArticulosMontaje;
+ property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
+ end;
+
+var
+ frViewArticulosMontaje: TfrViewArticulosMontaje;
+
+implementation
+
+uses uBizArticulos, uDataModuleArticulos, uDBSelectionList;
+
+
+{$R *.dfm}
+
+{ TfrViewArticulosMontaje }
+
+{
+******************************* TfrViewArticulosMontaje *******************************
+}
+function TfrViewArticulosMontaje.GetArticulosMontaje: IBizArticulosMontaje;
+begin
+ Result := FArticulosMontaje;
+end;
+
+procedure TfrViewArticulosMontaje.SetArticulosMontaje(const Value: IBizArticulosMontaje);
+begin
+ FArticulosMontaje := Value;
+ if Assigned(FArticulosMontaje) then
+ DADataSource.DataTable := FArticulosMontaje.DataTable;
+end;
+
+procedure TfrViewArticulosMontaje.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewArticulosMontaje.actAnadirExecute(Sender: TObject);
+var
+ AArticulos: IBizArticulosAlmacen;
+begin
+ try
+ AArticulos:= dmArticulos.GetItemsLibres;
+ if AArticulos.ShowForSelect = mrOK then
+ begin
+ AArticulos.Reservar(CodigoMontaje);
+ FArticulosMontaje.DataTable.Refresh;
+ end;
+ finally
+ AArticulos := Nil;
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+procedure TfrViewArticulosMontaje.actQuitarExecute(Sender: TObject);
+begin
+ Self.SyncFocusedRecordsFromGrid;
+ try
+ FArticulosMontaje.Liberar;
+ FArticulosMontaje.DataTable.Refresh;
+ finally
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+procedure TfrViewArticulosMontaje.cxGridViewSelectionChanged(Sender: TcxCustomGridTableView);
+var
+ ABookmark : Pointer;
+ i, pos: Integer;
+
+begin
+ inherited;
+
+ pos := (Sender as TcxGridDBTableView).GetColumnByFieldName('CODIGO').Index;
+ if FArticulosMontaje <> NIL then
+ begin
+ FArticulosMontaje.DataTable.DisableControls;
+ ABookmark := FArticulosMontaje.DataTable.GetBookMark;
+ (FArticulosMontaje as ISelectedRowList).SelectedRows.Clear;
+ for i:=0 to Sender.Controller.SelectedRecordCount-1 do
+ begin
+ FArticulosMontaje.DataTable.Locate('CODIGO', Sender.Controller.SelectedRecords[i].Values[pos],[]);
+ (FArticulosMontaje as ISelectedRowList).SelectedRows.CurrentRowSelected := True;
+ end;
+ (FArticulosMontaje as ISelectedRowList).SelectedRows.Count;
+ FArticulosMontaje.DataTable.GotoBookmark(ABookmark);
+ FArticulosMontaje.DataTable.FreeBookmark(ABookmark);
+ FArticulosMontaje.DataTable.EnableControls;
+ end;
+end;
+
+function TfrViewArticulosMontaje.GetCodigoMontaje: Integer;
+begin
+ Result := FCodigoMontaje;
+end;
+
+procedure TfrViewArticulosMontaje.SetCodigoMontaje(const Value: Integer);
+begin
+ FCodigoMontaje := Value;
+end;
+
+procedure TfrViewArticulosMontaje.actQuitarUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.ddp b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.dfm b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.dfm
new file mode 100644
index 0000000..c5c34cd
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.dfm
@@ -0,0 +1,192 @@
+inherited frViewFichaBeneficiosMontaje: TfrViewFichaBeneficiosMontaje
+ Width = 582
+ Height = 437
+ inherited cxGrid: TcxGrid
+ Top = 25
+ Width = 582
+ Height = 412
+ inherited cxGridView: TcxGridDBTableView
+ DataController.DataModeController.SmartRefresh = False
+ DataController.DataModeController.SyncMode = True
+ DataController.KeyFieldNames = 'RecID'
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost]
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 Apartados'
+ Kind = skCount
+ Column = cxGridViewDESCRIPCION
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewCOMPRA
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewVENTA
+ end>
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsData.Appending = True
+ OptionsData.CancelOnExit = False
+ OptionsData.Deleting = True
+ OptionsData.Editing = True
+ OptionsData.Inserting = True
+ OptionsSelection.CellSelect = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGOMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOMONTAJE'
+ Visible = False
+ end
+ object cxGridViewNUMCONCEPTO: TcxGridDBColumn
+ DataBinding.FieldName = 'NUMCONCEPTO'
+ Visible = False
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ Styles.Content = cxStyleOdd
+ Width = 98
+ IsCaptionAssigned = True
+ end
+ object cxGridViewMODELO: TcxGridDBColumn
+ Caption = 'Modelo'
+ DataBinding.FieldName = 'MODELO'
+ Width = 98
+ end
+ object cxGridViewPROVEEDOR: TcxGridDBColumn
+ Caption = 'Proveedor'
+ DataBinding.FieldName = 'PROVEEDOR'
+ Width = 90
+ end
+ object cxGridViewCOMPRA: TcxGridDBColumn
+ Caption = 'Compra'
+ DataBinding.FieldName = 'COMPRA'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 78
+ end
+ object cxGridViewVENTA: TcxGridDBColumn
+ Caption = 'Venta'
+ DataBinding.FieldName = 'VENTA'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 77
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ end
+ object ToolBar1: TToolBar [1]
+ Left = 0
+ Top = 0
+ Width = 582
+ Height = 25
+ ButtonWidth = 63
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ShowCaptions = True
+ TabOrder = 1
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ end
+ object ToolButton2: TToolButton
+ Left = 63
+ Top = 0
+ Action = actEliminar
+ end
+ object ToolButton7: TToolButton
+ Left = 126
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton7'
+ ImageIndex = 5
+ Style = tbsSeparator
+ end
+ end
+ inherited ActionList1: TActionList
+ Images = PngImageList
+ Left = 8
+ Top = 32
+ object actAnadir: TAction
+ Caption = 'A'#241'adir'
+ ImageIndex = 0
+ OnExecute = actAnadirExecute
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar'
+ ImageIndex = 1
+ OnExecute = actEliminarExecute
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000D04944415478DA
+ 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
+ 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
+ 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
+ FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
+ 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
+ F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
+ 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
+ Name = 'PngImage0'
+ 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 = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 40
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.pas b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.pas
new file mode 100644
index 0000000..9d5daf1
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewFichaBeneficiosMontaje.pas
@@ -0,0 +1,125 @@
+unit uViewFichaBeneficiosMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, uBizMontajes, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ ComCtrls, ToolWin, cxCurrencyEdit, Grids, DBGrids;
+
+type
+ IViewFichaBeneficiosMontaje = interface(IViewGrid)
+ ['{1395A065-A16D-485A-98A9-C27F19290F64}']
+ function GetFichaBeneficiosMontaje: IBizFichaBeneficiosMontaje;
+ procedure SetFichaBeneficiosMontaje(const Value: IBizFichaBeneficiosMontaje);
+ property FichaBeneficiosMontaje: IBizFichaBeneficiosMontaje read GetFichaBeneficiosMontaje write SetFichaBeneficiosMontaje;
+ end;
+
+ TfrViewFichaBeneficiosMontaje = class(TfrViewGrid, IViewFichaBeneficiosMontaje)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
+ cxGridViewNUMCONCEPTO: TcxGridDBColumn;
+ cxGridViewVENTA: TcxGridDBColumn;
+ cxGridViewCOMPRA: TcxGridDBColumn;
+ cxGridViewMODELO: TcxGridDBColumn;
+ cxGridViewPROVEEDOR: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton2: TToolButton;
+ ToolButton7: TToolButton;
+ actAnadir: TAction;
+ actEliminar: TAction;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure cxGridViewTcxGridDBDataControllerTcxDataSummaryFooterSummaryItems0GetText(
+ Sender: TcxDataSummaryItem; const AValue: Variant;
+ AIsFooter: Boolean; var AText: String);
+
+ procedure actAnadirExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ protected
+ FFichaBeneficiosMontaje: IBizFichaBeneficiosMontaje;
+ function GetFichaBeneficiosMontaje: IBizFichaBeneficiosMontaje;
+ procedure SetFichaBeneficiosMontaje(const Value: IBizFichaBeneficiosMontaje);
+ public
+ property FichaBeneficiosMontaje: IBizFichaBeneficiosMontaje read GetFichaBeneficiosMontaje write SetFichaBeneficiosMontaje;
+ end;
+
+var
+ frViewFichaBeneficiosMontaje: TfrViewFichaBeneficiosMontaje;
+
+implementation
+
+uses uBizInformesBase;
+
+
+{$R *.dfm}
+
+{ TfrViewFichaBeneficiosMontaje }
+
+{
+******************************* TfrViewFichaBeneficiosMontaje *******************************
+}
+function TfrViewFichaBeneficiosMontaje.GetFichaBeneficiosMontaje: IBizFichaBeneficiosMontaje;
+begin
+ Result := FFichaBeneficiosMontaje;
+end;
+
+procedure TfrViewFichaBeneficiosMontaje.SetFichaBeneficiosMontaje(const Value: IBizFichaBeneficiosMontaje);
+begin
+ FFichaBeneficiosMontaje := Value;
+ if Assigned(FFichaBeneficiosMontaje) then
+ DADataSource.DataTable := FFichaBeneficiosMontaje.DataTable;
+end;
+
+procedure TfrViewFichaBeneficiosMontaje.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewFichaBeneficiosMontaje.cxGridViewTcxGridDBDataControllerTcxDataSummaryFooterSummaryItems0GetText(
+ Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean;
+ var AText: String);
+begin
+ inherited;
+ AText := 'Beneficio total = ';
+end;
+
+procedure TfrViewFichaBeneficiosMontaje.actAnadirExecute(Sender: TObject);
+begin
+ inherited;
+ if Assigned(FichaBeneficiosMontaje) then
+ begin
+ if FichaBeneficiosMontaje.DataTable.Editing then
+ FichaBeneficiosMontaje.DataTable.Post;
+ FichaBeneficiosMontaje.Append;
+ end;
+end;
+
+procedure TfrViewFichaBeneficiosMontaje.actEliminarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ if Assigned(FichaBeneficiosMontaje) then
+ FichaBeneficiosMontaje.Delete;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewMontaje.ddp b/Modulos/Montajes/Cliente/uViewMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewMontaje.dfm b/Modulos/Montajes/Cliente/uViewMontaje.dfm
new file mode 100644
index 0000000..3f87175
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontaje.dfm
@@ -0,0 +1,242 @@
+inherited frViewMontaje: TfrViewMontaje
+ Width = 750
+ Height = 300
+ Align = alClient
+ Anchors = []
+ Constraints.MinHeight = 300
+ Constraints.MinWidth = 750
+ object pnlGeneral: TPanel
+ Left = 0
+ Top = 0
+ Width = 345
+ Height = 105
+ BevelOuter = bvNone
+ Constraints.MinWidth = 300
+ ParentBackground = True
+ ParentColor = True
+ TabOrder = 0
+ DesignSize = (
+ 345
+ 105)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 103
+ Height = 13
+ Caption = 'Datos del montaje'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 120
+ Top = 8
+ Width = 215
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 55
+ Width = 59
+ Height = 13
+ Caption = 'Fecha inicio:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 30
+ Width = 47
+ Height = 13
+ Caption = 'Situaci'#243'n:'
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 80
+ Width = 88
+ Height = 13
+ Caption = 'Fecha finalizaci'#243'n:'
+ end
+ object cbSituacion: TcxDBImageComboBox
+ Left = 111
+ Top = 27
+ DataBinding.DataField = 'SITUACION'
+ DataBinding.DataSource = DADataSource
+ Properties.ImmediatePost = True
+ Properties.Items = <
+ item
+ Description = 'Pendiente recepci'#243'n'
+ Value = 'Pendiente recepci'#243'n'
+ end
+ item
+ Description = 'Pendiente montaje'
+ ImageIndex = 0
+ Value = 'Pendiente montaje'
+ end
+ item
+ Description = 'Pendiente pago'
+ ImageIndex = 1
+ Value = 'Pendiente pago'
+ end
+ item
+ Description = 'Pagado y terminado'
+ Value = 'Pagado y terminado'
+ end>
+ Style.Color = clInfoBk
+ Style.LookAndFeel.Kind = lfUltraFlat
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfUltraFlat
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfUltraFlat
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfUltraFlat
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 225
+ end
+ object edtFechaIni: TcxDBDateEdit
+ Left = 111
+ Top = 51
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAINICIO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 225
+ end
+ object edtFechaFin: TcxDBDateEdit
+ Left = 111
+ Top = 75
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAFIN'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 225
+ end
+ end
+ inline frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto
+ Left = 356
+ Top = 2
+ Width = 391
+ Height = 202
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 251
+ end
+ inherited lblNombre: TLabel
+ Top = 33
+ end
+ inherited lblNIFCIF: TLabel
+ Top = 59
+ end
+ inherited lblCalle: TLabel
+ Top = 85
+ end
+ inherited lblPoblacion: TLabel
+ Top = 111
+ end
+ inherited lblProvincia: TLabel
+ Top = 138
+ end
+ inherited lblCodigoPostal: TLabel
+ Top = 138
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ Visible = False
+ inherited ToolButton1: TToolButton
+ Caption = 'Elegir un cliente'
+ end
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ Caption = 'Dar de alta un cliente'
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Top = 29
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ Top = 107
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ Top = 134
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ Top = 55
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited edtCalle: TcxDBTextEdit
+ Top = 81
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited ToolBar2: TToolBar
+ Left = 187
+ Top = 161
+ Width = 182
+ ButtonWidth = 178
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ Top = 134
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited DADataSource: TDADataSource
+ Left = 72
+ Top = 40
+ end
+ end
+ inline frViewPresupuestoMontaje: TfrViewPresupuestoMontaje
+ Left = 0
+ Top = 105
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ end
+ object DADataSource: TDADataSource
+ Left = 64
+ Top = 8
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewMontaje.pas b/Modulos/Montajes/Cliente/uViewMontaje.pas
new file mode 100644
index 0000000..20fa088
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontaje.pas
@@ -0,0 +1,99 @@
+unit uViewMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
+ DBCtrls, Grids, DBGrids, uBizMontajes, Mask, ComCtrls, uCustomView,
+ uViewDireccion, uViewTelefonos, uViewInternet, uViewCategorias,
+ JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxDBEdit, cxGraphics, uViewDatosYSeleccionContacto, cxMaskEdit,
+ cxDropDownEdit, cxImageComboBox, cxCalendar, uViewPresupuestoRelacionado,
+ uViewPresupuestoMontaje;
+
+type
+ IViewMontaje = interface(IViewBase)
+ ['{A9189F38-9832-4919-9B98-56F345C2AACA}']
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ end;
+
+ TfrViewMontaje = class(TfrViewBase, IViewMontaje)
+ Bevel1: TBevel;
+ DADataSource: TDADataSource;
+ Label5: TLabel;
+ pnlGeneral: TPanel;
+ Label3: TLabel;
+ Label4: TLabel;
+ frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto;
+ cbSituacion: TcxDBImageComboBox;
+ edtFechaIni: TcxDBDateEdit;
+ edtFechaFin: TcxDBDateEdit;
+ frViewPresupuestoMontaje: TfrViewPresupuestoMontaje;
+ private
+ FMontaje: IBizMontaje;
+ protected
+ procedure OnPresupuestoChanged(Sender : TObject);
+ procedure OnContactoChanged (Sender : TObject);
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ public
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ end;
+
+implementation
+
+uses uDataModuleMontajes, uBizContacto, uDataModuleContactos, uDataModulePresupuestos,
+ uBizPresupuestosCliente;
+
+{$R *.dfm}
+{ TfrViewMontajes }
+
+{
+******************************* TfrViewMontajes ********************************
+}
+
+function TfrViewMontaje.GetMontaje: IBizMontaje;
+begin
+ Result := FMontaje;
+end;
+
+procedure TfrViewMontaje.OnContactoChanged(Sender: TObject);
+begin
+ FMontaje.Cliente := (frViewDatosYSeleccionContacto.Contacto as IBizCliente);
+end;
+
+procedure TfrViewMontaje.OnPresupuestoChanged(Sender: TObject);
+begin
+ if not (FMontaje.DataTable.State in dsEditModes) then
+ FMontaje.Edit;
+
+ FMontaje.Presupuesto := frViewPresupuestoMontaje.Presupuesto;
+ frViewDatosYSeleccionContacto.Contacto := Montaje.Cliente;
+end;
+
+procedure TfrViewMontaje.SetMontaje(const Value: IBizMontaje);
+begin
+ FMontaje := Value;
+ if Assigned(FMontaje) then
+ DADataSource.DataTable := FMontaje.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosYSeleccionContacto.Contacto := FMontaje.Cliente;
+ frViewDatosYSeleccionContacto.OnContactoChanged := OnContactoChanged;
+
+ frViewPresupuestoMontaje.Presupuesto := FMontaje.Presupuesto;
+ frViewPresupuestoMontaje.OnPresupuestoChanged := OnPresupuestoChanged;
+end;
+
+initialization
+ RegisterClass(TfrViewMontaje);
+
+finalization
+ UnRegisterClass(TfrViewMontaje);
+
+end.
+
diff --git a/Modulos/Montajes/Cliente/uViewMontajeRelacionado.ddp b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewMontajeRelacionado.dfm b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.dfm
new file mode 100644
index 0000000..16ad505
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.dfm
@@ -0,0 +1,163 @@
+inherited frViewMontajeRelacionado: TfrViewMontajeRelacionado
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 116
+ Height = 13
+ Caption = 'Montaje relacionado'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 128
+ Top = 8
+ Width = 221
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object edtlReferencia: TcxDBTextEdit
+ Left = 101
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 110
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirMontaje
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 114
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 122
+ Top = 0
+ Action = actVerMontaje
+ end
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirMontaje: TAction
+ Caption = 'Elegir un montaje'
+ ImageIndex = 1
+ end
+ object actVerMontaje: TAction
+ Caption = 'Ver el montaje...'
+ ImageIndex = 1
+ OnExecute = actVerMontajeExecute
+ OnUpdate = actVerMontajeUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+ object DADataSource: TDADataSource
+ Left = 320
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewMontajeRelacionado.pas b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.pas
new file mode 100644
index 0000000..db4f7bb
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontajeRelacionado.pas
@@ -0,0 +1,105 @@
+unit uViewMontajeRelacionado;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizMontajes;
+
+type
+ IViewMontajeRelacionado = interface(IViewBase)
+ ['{202B0654-733C-403B-8795-4E8CF61A428E}']
+
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+
+ function GetOnMontajeChanged : TNotifyEvent;
+ procedure SetOnMontajeChanged (const Value : TNotifyEvent);
+ property OnMontajeChanged : TNotifyEvent read GetOnMontajeChanged
+ write SetOnMontajeChanged;
+ end;
+
+ TfrViewMontajeRelacionado = class(TfrViewBase, IViewMontajeRelacionado)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirMontaje: TAction;
+ actVerMontaje: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ DADataSource: TDADataSource;
+ edtlReferencia: TcxDBTextEdit;
+ procedure actVerMontajeExecute(Sender: TObject);
+ procedure actVerMontajeUpdate(Sender: TObject);
+ private
+ FMontaje : IBizMontaje;
+ FOnMontajeChanged : TNotifyEvent;
+ protected
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ function GetOnMontajeChanged : TNotifyEvent;
+ procedure SetOnMontajeChanged (const Value : TNotifyEvent);
+ public
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ property OnMontajeChanged : TNotifyEvent read GetOnMontajeChanged
+ write SetOnMontajeChanged;
+ end;
+
+var
+ frViewMontajeRelacionado: TfrViewMontajeRelacionado;
+
+implementation
+
+uses
+ uDataModuleMontajes, schMontajesClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewMontajeAlbaran }
+
+procedure TfrViewMontajeRelacionado.actVerMontajeExecute(
+ Sender: TObject);
+begin
+ FMontaje.Show;
+end;
+
+procedure TfrViewMontajeRelacionado.actVerMontajeUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := (Length(edtlReferencia.Text) > 0);
+end;
+
+function TfrViewMontajeRelacionado.GetMontaje: IBizMontaje;
+begin
+ Result := FMontaje;
+end;
+
+procedure TfrViewMontajeRelacionado.SetMontaje(const Value: IBizMontaje);
+begin
+ FMontaje := Value;
+ DADataSource.DataTable := FMontaje.DataTable;
+
+ if Assigned(FOnMontajeChanged) then
+ FOnMontajeChanged(Self);
+end;
+
+function TfrViewMontajeRelacionado.GetOnMontajeChanged: TNotifyEvent;
+begin
+ Result := FOnMontajeChanged;
+end;
+
+procedure TfrViewMontajeRelacionado.SetOnMontajeChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnMontajeChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewMontajes.ddp b/Modulos/Montajes/Cliente/uViewMontajes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewMontajes.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewMontajes.dfm b/Modulos/Montajes/Cliente/uViewMontajes.dfm
new file mode 100644
index 0000000..374fc5b
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontajes.dfm
@@ -0,0 +1,105 @@
+inherited frViewMontajes: TfrViewMontajes
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Kind = skCount
+ end
+ item
+ Format = '0 Montajes'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ end
+ object cxGridViewFECHAINICIO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAINICIO'
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ end
+ object cxGridViewOPCION: TcxGridDBColumn
+ Caption = 'Opci'#243'n'
+ DataBinding.FieldName = 'OPCION'
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewFECHAFIN: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAFIN'
+ end
+ object cxGridViewOBSERVACIONES: TcxGridDBColumn
+ DataBinding.FieldName = 'OBSERVACIONES'
+ Visible = False
+ end
+ object cxGridViewCODIGOPRESUPUESTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPRESUPUESTO'
+ Visible = False
+ end
+ object cxGridViewCODIGOCONTACTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCONTACTO'
+ Visible = False
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ object cxGridLevel1: TcxGridLevel
+ Caption = 'Pendientes'
+ end
+ object cxGridLevel2: TcxGridLevel
+ Caption = 'Finalizados'
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited dxLayoutControl1Group_Root: TdxLayoutGroup
+ inherited dxLayoutControl1Group1: TdxLayoutGroup
+ inherited dxLayoutControl1Item2: TdxLayoutItem
+ Caption = 'Inicio entre la fecha:'
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <>
+ Left = 160
+ Top = 32
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewMontajes.pas b/Modulos/Montajes/Cliente/uViewMontajes.pas
new file mode 100644
index 0000000..b6326d0
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewMontajes.pas
@@ -0,0 +1,156 @@
+unit uViewMontajes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, uBizMontajes, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ uViewFiltroBase;
+
+type
+ IViewMontajes = interface(IViewGrid)
+ ['{78CB7E94-7AE3-4445-9A9C-C4CE27A8A21F}']
+ function GetMontajes: IBizMontaje;
+ procedure SetMontajes(const Value: IBizMontaje);
+ property Montajes: IBizMontaje read GetMontajes write SetMontajes;
+ end;
+
+ TfrViewMontajes = class(TfrViewGrid, IViewMontajes)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOEMPRESA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewFECHAINICIO: TcxGridDBColumn;
+ cxGridViewFECHAFIN: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewOBSERVACIONES: TcxGridDBColumn;
+ cxGridViewCODIGOPRESUPUESTO: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewCODIGOCONTACTO: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridLevel1: TcxGridLevel;
+ cxGridLevel2: TcxGridLevel;
+ cxGridViewOPCION: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroSituaciones;
+ procedure AnadirFiltroFechas;
+
+ protected
+ FMontajes: IBizMontaje;
+ function GetMontajes: IBizMontaje; virtual;
+ procedure SetMontajes(const Value: IBizMontaje); virtual;
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ property DataSet: IBizMontaje read GetMontajes write SetMontajes;
+ end;
+
+var
+ frViewMontajes: TfrViewMontajes;
+
+implementation
+
+uses uDataModuleMontajes;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewMontajes *******************************
+}
+function TfrViewMontajes.GetMontajes: IBizMontaje;
+begin
+ Result := FMontajes;
+end;
+
+procedure TfrViewMontajes.SetMontajes(const Value: IBizMontaje);
+begin
+ FMontajes := Value;
+ if Assigned(FMontajes) then
+ DADataSource.DataTable := FMontajes.DataTable;
+end;
+
+
+procedure TfrViewMontajes.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewMontajes.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+begin
+ inherited;
+ RefrescarFiltro;
+end;
+
+procedure TfrViewMontajes.AnadirFiltroSituaciones;
+var
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ FFiltro := AddFilterGrid(fboAnd);
+
+ case cxGrid.ActiveLevel.Index of
+ 1 : FFiltro.AddItem(cxGridViewSITUACION, foNotEqual, SITUACION_PAGADO, SITUACION_PAGADO);
+ 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PAGADO, SITUACION_PAGADO);
+ end;
+end;
+
+procedure TfrViewMontajes.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroSituaciones;
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+procedure TfrViewMontajes.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+
+ FFiltro := AddFilterGrid(fboAnd);
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAINICIO');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewPedidosMontaje.ddp b/Modulos/Montajes/Cliente/uViewPedidosMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewPedidosMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewPedidosMontaje.dfm b/Modulos/Montajes/Cliente/uViewPedidosMontaje.dfm
new file mode 100644
index 0000000..fee2a14
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewPedidosMontaje.dfm
@@ -0,0 +1,345 @@
+inherited frViewPedidosMontaje: TfrViewPedidosMontaje
+ Width = 605
+ inherited cxGrid: TcxGrid
+ Top = 25
+ Width = 605
+ Height = 245
+ inherited cxGridView: TcxGridDBTableView
+ OnDblClick = actModificarExecute
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Kind = skCount
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewCODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn
+ DataBinding.FieldName = 'INCIDENCIASACTIVAS'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList2
+ Properties.Items = <
+ item
+ Description = 'Sin incidencias'
+ Value = 0
+ end
+ item
+ Description = 'Con incidencias'
+ ImageIndex = 3
+ Value = 1
+ end>
+ Properties.ShowDescriptions = False
+ Width = 30
+ IsCaptionAssigned = True
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ Visible = False
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList2
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ ImageIndex = 0
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Parcialmente recibido'
+ ImageIndex = 1
+ Tag = 1
+ Value = 'Parcialmente recibido'
+ end
+ item
+ Description = 'Recibido'
+ ImageIndex = 2
+ Tag = 2
+ Value = 'Recibido'
+ end>
+ Properties.ShowDescriptions = False
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Nombre proveedor'
+ DataBinding.FieldName = 'NOMBRE'
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewFECHACONFIRMACION: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHACONFIRMACION'
+ end
+ object cxGridViewFECHAENTREGA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAENTREGA'
+ end
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ end
+ object ToolBar1: TToolBar [1]
+ Left = 0
+ Top = 0
+ Width = 605
+ Height = 25
+ ButtonWidth = 129
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ShowCaptions = True
+ TabOrder = 1
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ end
+ object ToolButton2: TToolButton
+ Left = 129
+ Top = 0
+ Action = actModificar
+ end
+ object ToolButton4: TToolButton
+ Left = 258
+ Top = 0
+ Action = actEliminar
+ end
+ object ToolButton3: TToolButton
+ Left = 387
+ Top = 0
+ Action = actRecibirPedido
+ end
+ end
+ inherited ActionList1: TActionList
+ Images = PngImageList
+ Left = 8
+ Top = 32
+ object actAnadir: TAction
+ Caption = 'Nuevo pedido'
+ ImageIndex = 0
+ OnExecute = actAnadirExecute
+ end
+ object actModificar: TAction
+ Caption = 'Modificar este pedido'
+ ImageIndex = 1
+ OnExecute = actModificarExecute
+ OnUpdate = actModificarUpdate
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar este pedido'
+ ImageIndex = 2
+ OnExecute = actEliminarExecute
+ OnUpdate = actEliminarUpdate
+ end
+ object actRecibirPedido: TAction
+ Caption = 'Recibir pedido'
+ ImageIndex = 3
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001864944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218
+ 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6
+ 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E
+ 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D
+ 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054
+ 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19
+ 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438
+ BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00
+ 45135E518E0B4E380000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000015D4944415478DA
+ 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0
+ 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060
+ 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298
+ E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0
+ 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161
+ 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319
+ 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5
+ BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068
+ 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2
+ E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41
+ 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500
+ 00000049454E44AE426082}
+ Name = 'PngImage1'
+ 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 = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B3A00000B3A01647F570D000001BD4944415478DA
+ 63FCFFFF3F03258011D980BE9612BCA615D5F43012342037D71F43E3D7774F18
+ 0C6D0B18EE3F7989DD80E9FD4DC140F69AEF5F3F31A01B00D27C6A511543FAEC
+ 6F0C0F9EBEC269C0FFA4747E86A97D8FE106FCFEFE89E117107F7DF384E1EAB6
+ 69A41900D2FCF5ED53207ECCF0FBDB6786FB2737820D282BCE866BCC2AAA67C4
+ 6A40468A235C3388FEF6EE1983D9443FB8C61F277E33CC9BF911B701B1816A0C
+ 171FBC63B87DEB17C4A6F9220C160EEA0C2FD6453148042D633871E026C3B4C4
+ 3760F15707E2310DD033146160F8FE9EC1D6E02D0323D00E75FBCD70DB2F6C30
+ 61F05854043604047AF4B37FA018F0E9E33F861D5BFF337898DE62E0E7F9C3F0
+ FFDF5F867FBF7E32FCF9FD83E1DF1F20FEFD9341283D98A1AED48FA1A97B13C8
+ 002714030EEFFF0EB6DDCEF02DC3FFFFFF18FEFDFC01D5FC13A8F90758330AB8
+ 9CCD0837202482176E3B2FC70F86FF7F7F31FCF985B01966C89FAF9F1996ADBA
+ F503A8DDAB6409C37EB801AA6A6C60DB6D749F8335FCFDF38BE12FD480FF6003
+ 7E01BDF38BE1F1F51B0C07CFFFBE03D4AC8A120BDA4A9F19D8DEEC6160F97815
+ 6FE6016A86DB8E62C0B773F5C4643E14CD1899891C000039F251E625517D8200
+ 00000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ Left = 40
+ Top = 32
+ Bitmap = {}
+ end
+ object PngImageList2: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000014B4944415478DA
+ 6364C007F47A8C9999FE9F6162FCCFF0FB2F9309C3A592B31CC61DFF7F9CAD60
+ 0449F398B6FF67C4A79FD9A0FBFFDF0BA56035EC469DFF7F9E2B87AB0769FE72
+ BA9211AF01AC865DFF7F9F2F03AB41B719A419C4C66B001BD0805F5003B84C3A
+ FE7F3B53C188AC59D0A20DBF17909DCD6DD2FEFFEB994A0CF5780D00052217DB
+ 9F338C0CFF19BEFE620507226906100118B327BDFCFFE7EF6F86BF7F20F80F8C
+ FEFB07C14762FFF9FD0B48FF82D2BF1918D3FB9FFCB734944631F5CFDF7F0CBF
+ 7EFF65F809C67FE0EC5F403688FEF1EB0F185F3AB2938131A5FBFE7F1B530592
+ 35FFF8F597E1DAB16D0C8C89EDB7FEDB5BAA92AC1944DF3ABE858131B6F9EA7F
+ 675B2D923583F0BD139B1918A3EA2FFC77B2D32559F3AF3F7F191E9CD8C0C018
+ 5673E6BF838D1EC99A41006C4070C5F1FF84A2EA3732FFF76F301B9E0EFEFFFF
+ 4F514202003F5091819E0016AB0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000010E4944415478DA
+ 63648001BD9EFF0CC8E052092350CC18C83A031531018A9D05AB03C941F530A2
+ 180093C026862E0FE5230B10B40D1B1BD546749BB16922CA0BF80C400384BC80
+ 2986D300320163F0AC3BFFFFFEFECBF0E70F100369301BCA87B1FFFE81F2FFFC
+ 63F8FDEB0FC31F20FE0D9203D28C01536FFE6F705663F80033F20784FA00657F
+ 4016FB815003129F367B3503A3CFC46BFF4BDC3549D208634F9CB79C81D1A3E7
+ F2FF4375E638FDD8B6EE2B8646984573672C6660746DBFF0FF68B3154E03CA96
+ 7DC56A3B08CC98BD8081D1B1E9ECFF783B23BC4E45D7080353A6CE6160B4AD3B
+ F53FD8CA94248D303061C24C0646ABCAE3FF0945D59F5F7F816C3431200D4E07
+ FFFFFF67A00400007E51EECD81D1728E0000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F54944415478DA
+ 6364D0EBF9CF70A98411481B3330309C61800013A0D8591C6210F52000643322
+ 19802281530C06A07CF20C4062936E00D5BC00058C24072286011402C6EC492F
+ FFFFF9FB9BE1EF1F08FE03A3FFFE41F091D87F7EFF02D2BFA0F46F06C6F4FE27
+ FF2D0DA5514CFDF3F71FC3AFDF7F197E82F11F38FB17900DA27FFCFA03C6978E
+ EC64604CE9BEFFDFC6548164CD3F7EFD65B8766C1B036362FBADFF2B9B0DC8F2
+ BF9C7D2303636CF3D5FF6BDB4DC93240CAAA868131AAFEC27F273B5DA29D0D63
+ FFFAF397E1C1890D0C8C613567FE3BD8E891AC1904C00604571CFF4F28AA7E23
+ F37FFF06B3E1E9E0FFFFFF1425240089FD645E7C3F344D0000000049454E44AE
+ 426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA
+ 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440
+ A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450
+ 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3
+ C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE
+ FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78
+ 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D
+ BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB
+ 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF
+ D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E
+ 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A
+ C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611
+ E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF
+ 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5
+ D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0
+ 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68
+ 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075
+ 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346
+ 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462
+ 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54
+ 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51
+ CF0000000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ Left = 40
+ Top = 64
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewPedidosMontaje.pas b/Modulos/Montajes/Cliente/uViewPedidosMontaje.pas
new file mode 100644
index 0000000..41e0b48
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewPedidosMontaje.pas
@@ -0,0 +1,168 @@
+unit uViewPedidosMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, uBizPedidosMontaje, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ ComCtrls, ToolWin, cxImageComboBox;
+
+type
+ IViewPedidosMontaje = interface(IViewGrid)
+ ['{E6A3B3B7-7663-46D6-9B84-7B689D9B2461}']
+ function GetCodigoMontaje: Integer;
+ procedure SetCodigoMontaje(const Value: Integer);
+ property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
+
+ function GetPedidosMontaje: IBizPedidosMontaje;
+ procedure SetPedidosMontaje(const Value: IBizPedidosMontaje);
+ property PedidosMontaje: IBizPedidosMontaje read GetPedidosMontaje write SetPedidosMontaje;
+ end;
+
+ TfrViewPedidosMontaje = class(TfrViewGrid, IViewPedidosMontaje)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOEMPRESA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewFECHACONFIRMACION: TcxGridDBColumn;
+ cxGridViewFECHAENTREGA: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton2: TToolButton;
+ ToolButton4: TToolButton;
+ actAnadir: TAction;
+ actModificar: TAction;
+ actEliminar: TAction;
+ actRecibirPedido: TAction;
+ ToolButton3: TToolButton;
+ PngImageList2: TPngImageList;
+ cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
+ procedure cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ procedure actAnadirExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actEliminarUpdate(Sender: TObject);
+ procedure actModificarUpdate(Sender: TObject);
+ protected
+ FCodigoMontaje: Integer;
+ FPedidosMontaje: IBizPedidosMontaje;
+ function GetCodigoMontaje: Integer;
+ procedure SetCodigoMontaje(const Value: Integer);
+ function GetPedidosMontaje: IBizPedidosMontaje;
+ procedure SetPedidosMontaje(const Value: IBizPedidosMontaje);
+ public
+ property PedidosMontaje: IBizPedidosMontaje read GetPedidosMontaje write SetPedidosMontaje;
+ property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
+ end;
+
+var
+ frViewPedidosMontaje: TfrViewPedidosMontaje;
+
+implementation
+
+uses uDataModuleMontajes;
+
+
+{$R *.dfm}
+
+{ TfrViewPedidosMontaje }
+
+{
+******************************* TfrViewPedidosMontaje *******************************
+}
+function TfrViewPedidosMontaje.GetPedidosMontaje: IBizPedidosMontaje;
+begin
+ Result := FPedidosMontaje;
+end;
+
+procedure TfrViewPedidosMontaje.SetPedidosMontaje(const Value: IBizPedidosMontaje);
+begin
+ FPedidosMontaje := Value;
+ if Assigned(FPedidosMontaje) then
+ DADataSource.DataTable := FPedidosMontaje.DataTable;
+end;
+
+
+procedure TfrViewPedidosMontaje.cxGridViewCODIGOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewPedidosMontaje.actAnadirExecute(Sender: TObject);
+begin
+ FPedidosMontaje.AnadirPedido(CodigoMontaje);
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfrViewPedidosMontaje.actModificarExecute(Sender: TObject);
+begin
+ Self.SyncFocusedRecordsFromGrid;
+ FPedidosMontaje.Show;
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfrViewPedidosMontaje.actEliminarExecute(Sender: TObject);
+begin
+ Self.SyncFocusedRecordsFromGrid;
+ try
+ FPedidosMontaje.Delete;
+ FPedidosMontaje.DataTable.ApplyUpdates;
+ finally
+ Self.RefreshGrid;
+ Self.SyncFocusedRecordsFromDataSet;
+ end;
+end;
+
+function TfrViewPedidosMontaje.GetCodigoMontaje: Integer;
+begin
+ Result := FCodigoMontaje;
+end;
+
+procedure TfrViewPedidosMontaje.SetCodigoMontaje(const Value: Integer);
+begin
+ FCodigoMontaje := Value;
+end;
+
+procedure TfrViewPedidosMontaje.actEliminarUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfrViewPedidosMontaje.actModificarUpdate(Sender: TObject);
+begin
+ inherited;
+ if Assigned(DADataSource.DataTable) then
+ (Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+end.
diff --git a/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.ddp b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.ddp differ
diff --git a/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.dfm b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.dfm
new file mode 100644
index 0000000..a9438a7
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.dfm
@@ -0,0 +1,7 @@
+inherited frViewPresupuestoMontaje: TfrViewPresupuestoMontaje
+ inherited ActionList1: TActionList
+ inherited actElegirPresupuesto: TAction
+ OnExecute = actElegirPresupuestoExecute
+ end
+ end
+end
diff --git a/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.pas b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.pas
new file mode 100644
index 0000000..ec721c8
--- /dev/null
+++ b/Modulos/Montajes/Cliente/uViewPresupuestoMontaje.pas
@@ -0,0 +1,53 @@
+unit uViewPresupuestoMontaje;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPresupuestoRelacionado, ImgList, PngImageList, ActnList,
+ cxControls, cxContainer, cxEdit, cxTextEdit, ComCtrls, ToolWin, ExtCtrls,
+ StdCtrls, cxDBEdit, DB, uDADataTable;
+
+type
+ TfrViewPresupuestoMontaje = class(TfrViewPresupuestoRelacionado)
+ procedure actElegirPresupuestoExecute(Sender: TObject);
+ private
+ public
+ end;
+
+var
+ frViewPresupuestoMontaje: TfrViewPresupuestoMontaje;
+
+implementation
+{$R *.dfm}
+
+uses
+ uBizPresupuestosCliente, uDataModulePresupuestos;
+
+procedure TfrViewPresupuestoMontaje.actElegirPresupuestoExecute(Sender: TObject);
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ inherited;
+
+ if Length(edtlReferencia.Text) > 0 then
+ if (MessageBox(0, 'Este montaje ya tiene asociado un presupuesto. '+#13+#10+
+ 'Si elige otro presupuesto, se cambiará en este montaje el cliente para '+
+ 'hacerlo coincidir con el presupuesto elegido. '+#13+#10+
+ '¿Desea continuar?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idNo) then
+ Exit;
+
+ APresupuesto := dmPresupuestos.GetPresupuestosSinMontaje;
+ try
+ if APresupuesto.ShowForSelect = mrOK then
+ begin
+ APresupuesto := dmPresupuestos.GetItemsSeleccionados(APresupuesto);
+ APresupuesto.DataTable.Active := True;
+ Self.Presupuesto := APresupuesto;
+ end;
+ finally
+ APresupuesto := NIL;
+ end;
+end;
+
+end.
diff --git a/Modulos/Montajes/Reglas/schMontajesClient_Intf.pas b/Modulos/Montajes/Reglas/schMontajesClient_Intf.pas
new file mode 100644
index 0000000..52c6c65
--- /dev/null
+++ b/Modulos/Montajes/Reglas/schMontajesClient_Intf.pas
@@ -0,0 +1,1327 @@
+unit schMontajesClient_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_darNuevaReferencia = '{6547ACA4-805B-4EE7-9499-2D0196BEFC6F}';
+ RID_InformeCabeceraFicha = '{F09A7509-40A9-480E-8E43-F05EF537125E}';
+ RID_Montajes = '{C70762DB-3285-4C26-888D-63B20160927C}';
+ RID_Refresh_Montajes = '{40108B41-7E49-4883-9528-3FBD57B56703}';
+ RID_FichaBeneficios = '{573182C2-5168-428D-99A9-5BFBA9E74705}';
+ RID_InformeDetallesFicha = '{BA1E0ABA-559C-4A1A-B028-32382BB3111A}';
+ RID_FichaBeneficios_Aux = '{706C0AC4-9532-4640-AAF4-BFA1DCD52D26}';
+
+ { Data table names }
+ nme_darNuevaReferencia = 'darNuevaReferencia';
+ nme_InformeCabeceraFicha = 'InformeCabeceraFicha';
+ nme_Montajes = 'Montajes';
+ nme_Refresh_Montajes = 'Refresh_Montajes';
+ nme_FichaBeneficios = 'FichaBeneficios';
+ nme_InformeDetallesFicha = 'InformeDetallesFicha';
+ nme_FichaBeneficios_Aux = 'FichaBeneficios_Aux';
+
+ { darNuevaReferencia fields }
+ fld_darNuevaReferenciaREFERENCIA = 'REFERENCIA';
+
+ { darNuevaReferencia field indexes }
+ idx_darNuevaReferenciaREFERENCIA = 0;
+
+ { InformeCabeceraFicha fields }
+ fld_InformeCabeceraFichaREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraFichaFECHAINICIO = 'FECHAINICIO';
+ fld_InformeCabeceraFichaFECHAFIN = 'FECHAFIN';
+ fld_InformeCabeceraFichaSITUACION = 'SITUACION';
+ fld_InformeCabeceraFichaOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraFichaCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraFichaNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraFichaNIFCIF = 'NIFCIF';
+ fld_InformeCabeceraFichaCALLE = 'CALLE';
+ fld_InformeCabeceraFichaCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraFichaPOBLACION = 'POBLACION';
+ fld_InformeCabeceraFichaPROVINCIA = 'PROVINCIA';
+ fld_InformeCabeceraFichaTELEFONO1 = 'TELEFONO1';
+ fld_InformeCabeceraFichaTELEFONO2 = 'TELEFONO2';
+ fld_InformeCabeceraFichaMOVIL = 'MOVIL';
+
+ { InformeCabeceraFicha field indexes }
+ idx_InformeCabeceraFichaREFERENCIA = 0;
+ idx_InformeCabeceraFichaFECHAINICIO = 1;
+ idx_InformeCabeceraFichaFECHAFIN = 2;
+ idx_InformeCabeceraFichaSITUACION = 3;
+ idx_InformeCabeceraFichaOBSERVACIONES = 4;
+ idx_InformeCabeceraFichaCODIGOCONTACTO = 5;
+ idx_InformeCabeceraFichaNOMBRE = 6;
+ idx_InformeCabeceraFichaNIFCIF = 7;
+ idx_InformeCabeceraFichaCALLE = 8;
+ idx_InformeCabeceraFichaCODIGOPOSTAL = 9;
+ idx_InformeCabeceraFichaPOBLACION = 10;
+ idx_InformeCabeceraFichaPROVINCIA = 11;
+ idx_InformeCabeceraFichaTELEFONO1 = 12;
+ idx_InformeCabeceraFichaTELEFONO2 = 13;
+ idx_InformeCabeceraFichaMOVIL = 14;
+
+ { Montajes fields }
+ fld_MontajesCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_MontajesCODIGO = 'CODIGO';
+ fld_MontajesFECHAALTA = 'FECHAALTA';
+ fld_MontajesUSUARIO = 'USUARIO';
+ fld_MontajesFECHAINICIO = 'FECHAINICIO';
+ fld_MontajesFECHAFIN = 'FECHAFIN';
+ fld_MontajesSITUACION = 'SITUACION';
+ fld_MontajesOBSERVACIONES = 'OBSERVACIONES';
+ fld_MontajesCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_MontajesREFERENCIA = 'REFERENCIA';
+ fld_MontajesCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_MontajesNOMBRE = 'NOMBRE';
+ fld_MontajesOPCION = 'OPCION';
+
+ { Montajes field indexes }
+ idx_MontajesCODIGOEMPRESA = 0;
+ idx_MontajesCODIGO = 1;
+ idx_MontajesFECHAALTA = 2;
+ idx_MontajesUSUARIO = 3;
+ idx_MontajesFECHAINICIO = 4;
+ idx_MontajesFECHAFIN = 5;
+ idx_MontajesSITUACION = 6;
+ idx_MontajesOBSERVACIONES = 7;
+ idx_MontajesCODIGOPRESUPUESTO = 8;
+ idx_MontajesREFERENCIA = 9;
+ idx_MontajesCODIGOCONTACTO = 10;
+ idx_MontajesNOMBRE = 11;
+ idx_MontajesOPCION = 12;
+
+ { Refresh_Montajes fields }
+ fld_Refresh_MontajesCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_Refresh_MontajesCODIGO = 'CODIGO';
+ fld_Refresh_MontajesFECHAALTA = 'FECHAALTA';
+ fld_Refresh_MontajesUSUARIO = 'USUARIO';
+ fld_Refresh_MontajesFECHAINICIO = 'FECHAINICIO';
+ fld_Refresh_MontajesFECHAFIN = 'FECHAFIN';
+ fld_Refresh_MontajesSITUACION = 'SITUACION';
+ fld_Refresh_MontajesOBSERVACIONES = 'OBSERVACIONES';
+ fld_Refresh_MontajesCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_Refresh_MontajesREFERENCIA = 'REFERENCIA';
+ fld_Refresh_MontajesCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_Refresh_MontajesNOMBRE = 'NOMBRE';
+ fld_Refresh_MontajesOPCION = 'OPCION';
+
+ { Refresh_Montajes field indexes }
+ idx_Refresh_MontajesCODIGOEMPRESA = 0;
+ idx_Refresh_MontajesCODIGO = 1;
+ idx_Refresh_MontajesFECHAALTA = 2;
+ idx_Refresh_MontajesUSUARIO = 3;
+ idx_Refresh_MontajesFECHAINICIO = 4;
+ idx_Refresh_MontajesFECHAFIN = 5;
+ idx_Refresh_MontajesSITUACION = 6;
+ idx_Refresh_MontajesOBSERVACIONES = 7;
+ idx_Refresh_MontajesCODIGOPRESUPUESTO = 8;
+ idx_Refresh_MontajesREFERENCIA = 9;
+ idx_Refresh_MontajesCODIGOCONTACTO = 10;
+ idx_Refresh_MontajesNOMBRE = 11;
+ idx_Refresh_MontajesOPCION = 12;
+
+ { FichaBeneficios fields }
+ fld_FichaBeneficiosCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_FichaBeneficiosNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_FichaBeneficiosDESCRIPCION = 'DESCRIPCION';
+ fld_FichaBeneficiosMODELO = 'MODELO';
+ fld_FichaBeneficiosPROVEEDOR = 'PROVEEDOR';
+ fld_FichaBeneficiosCOMPRA = 'COMPRA';
+ fld_FichaBeneficiosVENTA = 'VENTA';
+
+ { FichaBeneficios field indexes }
+ idx_FichaBeneficiosCODIGOMONTAJE = 0;
+ idx_FichaBeneficiosNUMCONCEPTO = 1;
+ idx_FichaBeneficiosDESCRIPCION = 2;
+ idx_FichaBeneficiosMODELO = 3;
+ idx_FichaBeneficiosPROVEEDOR = 4;
+ idx_FichaBeneficiosCOMPRA = 5;
+ idx_FichaBeneficiosVENTA = 6;
+
+ { InformeDetallesFicha fields }
+ fld_InformeDetallesFichaDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesFichaMODELO = 'MODELO';
+ fld_InformeDetallesFichaPROVEEDOR = 'PROVEEDOR';
+ fld_InformeDetallesFichaCOMPRA = 'COMPRA';
+ fld_InformeDetallesFichaVENTA = 'VENTA';
+
+ { InformeDetallesFicha field indexes }
+ idx_InformeDetallesFichaDESCRIPCION = 0;
+ idx_InformeDetallesFichaMODELO = 1;
+ idx_InformeDetallesFichaPROVEEDOR = 2;
+ idx_InformeDetallesFichaCOMPRA = 3;
+ idx_InformeDetallesFichaVENTA = 4;
+
+ { FichaBeneficios_Aux fields }
+ fld_FichaBeneficios_AuxNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_FichaBeneficios_AuxDESCRIPCION = 'DESCRIPCION';
+
+ { FichaBeneficios_Aux field indexes }
+ idx_FichaBeneficios_AuxNUMCONCEPTO = 0;
+ idx_FichaBeneficios_AuxDESCRIPCION = 1;
+
+type
+ { IdarNuevaReferencia }
+ IdarNuevaReferencia = interface(IDAStronglyTypedDataTable)
+ ['{1D96C64B-6FB2-4AAF-8444-A92600498486}']
+ { Property getters and setters }
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ end;
+
+ { TdarNuevaReferenciaDataTableRules }
+ TdarNuevaReferenciaDataTableRules = class(TDADataTableRules, IdarNuevaReferencia)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraFicha }
+ IInformeCabeceraFicha = interface(IDAStronglyTypedDataTable)
+ ['{72D2A87F-6179-41A5-84D9-22060DEE9727}']
+ { Property getters and setters }
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetFECHAINICIOValue: DateTime;
+ procedure SetFECHAINICIOValue(const aValue: DateTime);
+ function GetFECHAFINValue: DateTime;
+ procedure SetFECHAFINValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ end;
+
+ { TInformeCabeceraFichaDataTableRules }
+ TInformeCabeceraFichaDataTableRules = class(TDADataTableRules, IInformeCabeceraFicha)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IMontajes }
+ IMontajes = interface(IDAStronglyTypedDataTable)
+ ['{ECCCC9FA-E3EF-4F98-9B46-795A66D964DB}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAINICIOValue: DateTime;
+ procedure SetFECHAINICIOValue(const aValue: DateTime);
+ function GetFECHAFINValue: DateTime;
+ procedure SetFECHAFINValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetOPCIONValue: String;
+ procedure SetOPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+ end;
+
+ { TMontajesDataTableRules }
+ TMontajesDataTableRules = class(TDADataTableRules, IMontajes)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_Montajes }
+ IRefresh_Montajes = interface(IDAStronglyTypedDataTable)
+ ['{FAB2B839-6970-4AB2-A8BC-088A8B74FDCC}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetFECHAINICIOValue: DateTime;
+ procedure SetFECHAINICIOValue(const aValue: DateTime);
+ function GetFECHAFINValue: DateTime;
+ procedure SetFECHAFINValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetOPCIONValue: String;
+ procedure SetOPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+ end;
+
+ { TRefresh_MontajesDataTableRules }
+ TRefresh_MontajesDataTableRules = class(TDADataTableRules, IRefresh_Montajes)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property FECHAINICIO: DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property FECHAFIN: DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFichaBeneficios }
+ IFichaBeneficios = interface(IDAStronglyTypedDataTable)
+ ['{7C92B973-791A-477D-8DE0-BF61AF95236A}']
+ { Property getters and setters }
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetMODELOValue: String;
+ procedure SetMODELOValue(const aValue: String);
+ function GetPROVEEDORValue: String;
+ procedure SetPROVEEDORValue(const aValue: String);
+ function GetCOMPRAValue: Float;
+ procedure SetCOMPRAValue(const aValue: Float);
+ function GetVENTAValue: Float;
+ procedure SetVENTAValue(const aValue: Float);
+
+
+ { Properties }
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property MODELO: String read GetMODELOValue write SetMODELOValue;
+ property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property COMPRA: Float read GetCOMPRAValue write SetCOMPRAValue;
+ property VENTA: Float read GetVENTAValue write SetVENTAValue;
+ end;
+
+ { TFichaBeneficiosDataTableRules }
+ TFichaBeneficiosDataTableRules = class(TDADataTableRules, IFichaBeneficios)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetMODELOValue: String; virtual;
+ procedure SetMODELOValue(const aValue: String); virtual;
+ function GetPROVEEDORValue: String; virtual;
+ procedure SetPROVEEDORValue(const aValue: String); virtual;
+ function GetCOMPRAValue: Float; virtual;
+ procedure SetCOMPRAValue(const aValue: Float); virtual;
+ function GetVENTAValue: Float; virtual;
+ procedure SetVENTAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property MODELO: String read GetMODELOValue write SetMODELOValue;
+ property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property COMPRA: Float read GetCOMPRAValue write SetCOMPRAValue;
+ property VENTA: Float read GetVENTAValue write SetVENTAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesFicha }
+ IInformeDetallesFicha = interface(IDAStronglyTypedDataTable)
+ ['{16284B23-DBDE-405F-9307-CAFDDB913576}']
+ { Property getters and setters }
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetMODELOValue: String;
+ procedure SetMODELOValue(const aValue: String);
+ function GetPROVEEDORValue: String;
+ procedure SetPROVEEDORValue(const aValue: String);
+ function GetCOMPRAValue: Float;
+ procedure SetCOMPRAValue(const aValue: Float);
+ function GetVENTAValue: Float;
+ procedure SetVENTAValue(const aValue: Float);
+
+
+ { Properties }
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property MODELO: String read GetMODELOValue write SetMODELOValue;
+ property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property COMPRA: Float read GetCOMPRAValue write SetCOMPRAValue;
+ property VENTA: Float read GetVENTAValue write SetVENTAValue;
+ end;
+
+ { TInformeDetallesFichaDataTableRules }
+ TInformeDetallesFichaDataTableRules = class(TDADataTableRules, IInformeDetallesFicha)
+ private
+ protected
+ { Property getters and setters }
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetMODELOValue: String; virtual;
+ procedure SetMODELOValue(const aValue: String); virtual;
+ function GetPROVEEDORValue: String; virtual;
+ procedure SetPROVEEDORValue(const aValue: String); virtual;
+ function GetCOMPRAValue: Float; virtual;
+ procedure SetCOMPRAValue(const aValue: Float); virtual;
+ function GetVENTAValue: Float; virtual;
+ procedure SetVENTAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property MODELO: String read GetMODELOValue write SetMODELOValue;
+ property PROVEEDOR: String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property COMPRA: Float read GetCOMPRAValue write SetCOMPRAValue;
+ property VENTA: Float read GetVENTAValue write SetVENTAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFichaBeneficios_Aux }
+ IFichaBeneficios_Aux = interface(IDAStronglyTypedDataTable)
+ ['{C14BE74A-4651-4387-A6E3-048197F0CAC9}']
+ { Property getters and setters }
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ end;
+
+ { TFichaBeneficios_AuxDataTableRules }
+ TFichaBeneficios_AuxDataTableRules = class(TDADataTableRules, IFichaBeneficios_Aux)
+ private
+ protected
+ { Property getters and setters }
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TdarNuevaReferenciaDataTableRules }
+constructor TdarNuevaReferenciaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TdarNuevaReferenciaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarNuevaReferenciaDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_darNuevaReferenciaREFERENCIA].AsString;
+end;
+
+procedure TdarNuevaReferenciaDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_darNuevaReferenciaREFERENCIA].AsString := aValue;
+end;
+
+
+{ TInformeCabeceraFichaDataTableRules }
+constructor TInformeCabeceraFichaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraFichaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaFECHAINICIO].AsDateTime;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaFECHAINICIO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetFECHAFINValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaFECHAFIN].AsDateTime;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaFECHAFIN].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaSITUACION].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaSITUACION].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraFichaOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaNIFCIF].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaNIFCIF].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaCALLE].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaPROVINCIA].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaPROVINCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaTELEFONO1].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaTELEFONO1].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaTELEFONO2].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaTELEFONO2].AsString := aValue;
+end;
+
+function TInformeCabeceraFichaDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraFichaMOVIL].AsString;
+end;
+
+procedure TInformeCabeceraFichaDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraFichaMOVIL].AsString := aValue;
+end;
+
+
+{ TMontajesDataTableRules }
+constructor TMontajesDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TMontajesDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TMontajesDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_MontajesCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TMontajesDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_MontajesCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TMontajesDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_MontajesCODIGO].AsInteger;
+end;
+
+procedure TMontajesDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_MontajesCODIGO].AsInteger := aValue;
+end;
+
+function TMontajesDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_MontajesFECHAALTA].AsDateTime;
+end;
+
+procedure TMontajesDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_MontajesFECHAALTA].AsDateTime := aValue;
+end;
+
+function TMontajesDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_MontajesUSUARIO].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_MontajesUSUARIO].AsString := aValue;
+end;
+
+function TMontajesDataTableRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_MontajesFECHAINICIO].AsDateTime;
+end;
+
+procedure TMontajesDataTableRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_MontajesFECHAINICIO].AsDateTime := aValue;
+end;
+
+function TMontajesDataTableRules.GetFECHAFINValue: DateTime;
+begin
+ result := DataTable.Fields[idx_MontajesFECHAFIN].AsDateTime;
+end;
+
+procedure TMontajesDataTableRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_MontajesFECHAFIN].AsDateTime := aValue;
+end;
+
+function TMontajesDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_MontajesSITUACION].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_MontajesSITUACION].AsString := aValue;
+end;
+
+function TMontajesDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_MontajesOBSERVACIONES].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_MontajesOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TMontajesDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_MontajesCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TMontajesDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_MontajesCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TMontajesDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_MontajesREFERENCIA].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_MontajesREFERENCIA].AsString := aValue;
+end;
+
+function TMontajesDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_MontajesCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TMontajesDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_MontajesCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TMontajesDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_MontajesNOMBRE].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_MontajesNOMBRE].AsString := aValue;
+end;
+
+function TMontajesDataTableRules.GetOPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_MontajesOPCION].AsString;
+end;
+
+procedure TMontajesDataTableRules.SetOPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_MontajesOPCION].AsString := aValue;
+end;
+
+
+{ TRefresh_MontajesDataTableRules }
+constructor TRefresh_MontajesDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TRefresh_MontajesDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_MontajesDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_MontajesCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesCODIGO].AsInteger;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_MontajesCODIGO].AsInteger := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesFECHAALTA].AsDateTime;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_MontajesFECHAALTA].AsDateTime := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesUSUARIO].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_MontajesUSUARIO].AsString := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesFECHAINICIO].AsDateTime;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_MontajesFECHAINICIO].AsDateTime := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetFECHAFINValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesFECHAFIN].AsDateTime;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_MontajesFECHAFIN].AsDateTime := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesSITUACION].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_MontajesSITUACION].AsString := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_Refresh_MontajesOBSERVACIONES].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_Refresh_MontajesOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TRefresh_MontajesDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_MontajesCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesREFERENCIA].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_MontajesREFERENCIA].AsString := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_MontajesCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesNOMBRE].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_MontajesNOMBRE].AsString := aValue;
+end;
+
+function TRefresh_MontajesDataTableRules.GetOPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_MontajesOPCION].AsString;
+end;
+
+procedure TRefresh_MontajesDataTableRules.SetOPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_MontajesOPCION].AsString := aValue;
+end;
+
+
+{ TFichaBeneficiosDataTableRules }
+constructor TFichaBeneficiosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TFichaBeneficiosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFichaBeneficiosDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FichaBeneficiosCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosNUMCONCEPTO].AsInteger;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FichaBeneficiosNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosDESCRIPCION].AsString;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FichaBeneficiosDESCRIPCION].AsString := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetMODELOValue: String;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosMODELO].AsString;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetMODELOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FichaBeneficiosMODELO].AsString := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetPROVEEDORValue: String;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosPROVEEDOR].AsString;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetPROVEEDORValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FichaBeneficiosPROVEEDOR].AsString := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetCOMPRAValue: Float;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosCOMPRA].AsFloat;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetCOMPRAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FichaBeneficiosCOMPRA].AsFloat := aValue;
+end;
+
+function TFichaBeneficiosDataTableRules.GetVENTAValue: Float;
+begin
+ result := DataTable.Fields[idx_FichaBeneficiosVENTA].AsFloat;
+end;
+
+procedure TFichaBeneficiosDataTableRules.SetVENTAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_FichaBeneficiosVENTA].AsFloat := aValue;
+end;
+
+
+{ TInformeDetallesFichaDataTableRules }
+constructor TInformeDetallesFichaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesFichaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesFichaDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFichaDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesFichaDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesFichaDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesFichaDataTableRules.GetMODELOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFichaMODELO].AsString;
+end;
+
+procedure TInformeDetallesFichaDataTableRules.SetMODELOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesFichaMODELO].AsString := aValue;
+end;
+
+function TInformeDetallesFichaDataTableRules.GetPROVEEDORValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFichaPROVEEDOR].AsString;
+end;
+
+procedure TInformeDetallesFichaDataTableRules.SetPROVEEDORValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesFichaPROVEEDOR].AsString := aValue;
+end;
+
+function TInformeDetallesFichaDataTableRules.GetCOMPRAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFichaCOMPRA].AsFloat;
+end;
+
+procedure TInformeDetallesFichaDataTableRules.SetCOMPRAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeDetallesFichaCOMPRA].AsFloat := aValue;
+end;
+
+function TInformeDetallesFichaDataTableRules.GetVENTAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeDetallesFichaVENTA].AsFloat;
+end;
+
+procedure TInformeDetallesFichaDataTableRules.SetVENTAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeDetallesFichaVENTA].AsFloat := aValue;
+end;
+
+
+{ TFichaBeneficios_AuxDataTableRules }
+constructor TFichaBeneficios_AuxDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TFichaBeneficios_AuxDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFichaBeneficios_AuxDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_FichaBeneficios_AuxNUMCONCEPTO].AsInteger;
+end;
+
+procedure TFichaBeneficios_AuxDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FichaBeneficios_AuxNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TFichaBeneficios_AuxDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_FichaBeneficios_AuxDESCRIPCION].AsString;
+end;
+
+procedure TFichaBeneficios_AuxDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FichaBeneficios_AuxDESCRIPCION].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_darNuevaReferencia, TdarNuevaReferenciaDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraFicha, TInformeCabeceraFichaDataTableRules);
+ RegisterDataTableRules(RID_Montajes, TMontajesDataTableRules);
+ RegisterDataTableRules(RID_Refresh_Montajes, TRefresh_MontajesDataTableRules);
+ RegisterDataTableRules(RID_FichaBeneficios, TFichaBeneficiosDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesFicha, TInformeDetallesFichaDataTableRules);
+ RegisterDataTableRules(RID_FichaBeneficios_Aux, TFichaBeneficios_AuxDataTableRules);
+
+end.
diff --git a/Modulos/Montajes/Reglas/schMontajesServer_Intf.pas b/Modulos/Montajes/Reglas/schMontajesServer_Intf.pas
new file mode 100644
index 0000000..409bb36
--- /dev/null
+++ b/Modulos/Montajes/Reglas/schMontajesServer_Intf.pas
@@ -0,0 +1,1511 @@
+unit schMontajesServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schMontajesClient_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_darNuevaReferenciaDelta = '{5C9B1530-2031-47B8-A401-B55FE08E3EB7}';
+ RID_InformeCabeceraFichaDelta = '{F5A62AC1-DF4E-4510-942E-3595C5BC5137}';
+ RID_MontajesDelta = '{939D89F0-AEBE-4E5F-9F1C-05829C1C9AD4}';
+ RID_Refresh_MontajesDelta = '{A7E3BF24-EC68-403B-9732-11DA2807356E}';
+ RID_FichaBeneficiosDelta = '{E6D1DA2C-DE89-4F62-B1C1-8DE78BBF1F76}';
+ RID_InformeDetallesFichaDelta = '{FAC578F4-482B-4E46-8C07-D7C521604FCA}';
+ RID_FichaBeneficios_AuxDelta = '{3E015966-D349-4153-B8F8-4F083CD724F5}';
+
+type
+ { IdarNuevaReferenciaDelta }
+ IdarNuevaReferenciaDelta = interface(IdarNuevaReferencia)
+ ['{5C9B1530-2031-47B8-A401-B55FE08E3EB7}']
+ { Property getters and setters }
+ function GetOldREFERENCIAValue : String;
+
+ { Properties }
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ end;
+
+ { TdarNuevaReferenciaBusinessProcessorRules }
+ TdarNuevaReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarNuevaReferencia, IdarNuevaReferenciaDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraFichaDelta }
+ IInformeCabeceraFichaDelta = interface(IInformeCabeceraFicha)
+ ['{F5A62AC1-DF4E-4510-942E-3595C5BC5137}']
+ { Property getters and setters }
+ function GetOldREFERENCIAValue : String;
+ function GetOldFECHAINICIOValue : DateTime;
+ function GetOldFECHAFINValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldNIFCIFValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+
+ { Properties }
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ end;
+
+ { TInformeCabeceraFichaBusinessProcessorRules }
+ TInformeCabeceraFichaBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraFicha, IInformeCabeceraFichaDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ function GetOldFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ function GetOldFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property FECHAINICIO : DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property FECHAFIN : DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IMontajesDelta }
+ IMontajesDelta = interface(IMontajes)
+ ['{939D89F0-AEBE-4E5F-9F1C-05829C1C9AD4}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAINICIOValue : DateTime;
+ function GetOldFECHAFINValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldOPCIONValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+ end;
+
+ { TMontajesBusinessProcessorRules }
+ TMontajesBusinessProcessorRules = class(TDABusinessProcessorRules, IMontajes, IMontajesDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ function GetOldFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ function GetOldFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ function GetOldOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAINICIO : DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property FECHAFIN : DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OPCION : String read GetOPCIONValue write SetOPCIONValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_MontajesDelta }
+ IRefresh_MontajesDelta = interface(IRefresh_Montajes)
+ ['{A7E3BF24-EC68-403B-9732-11DA2807356E}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldFECHAINICIOValue : DateTime;
+ function GetOldFECHAFINValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldOPCIONValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+ end;
+
+ { TRefresh_MontajesBusinessProcessorRules }
+ TRefresh_MontajesBusinessProcessorRules = class(TDABusinessProcessorRules, IRefresh_Montajes, IRefresh_MontajesDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetFECHAINICIOValue: DateTime; virtual;
+ function GetOldFECHAINICIOValue: DateTime; virtual;
+ procedure SetFECHAINICIOValue(const aValue: DateTime); virtual;
+ function GetFECHAFINValue: DateTime; virtual;
+ function GetOldFECHAFINValue: DateTime; virtual;
+ procedure SetFECHAFINValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ function GetOldOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property FECHAINICIO : DateTime read GetFECHAINICIOValue write SetFECHAINICIOValue;
+ property OldFECHAINICIO : DateTime read GetOldFECHAINICIOValue;
+ property FECHAFIN : DateTime read GetFECHAFINValue write SetFECHAFINValue;
+ property OldFECHAFIN : DateTime read GetOldFECHAFINValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OPCION : String read GetOPCIONValue write SetOPCIONValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFichaBeneficiosDelta }
+ IFichaBeneficiosDelta = interface(IFichaBeneficios)
+ ['{E6D1DA2C-DE89-4F62-B1C1-8DE78BBF1F76}']
+ { Property getters and setters }
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldMODELOValue : String;
+ function GetOldPROVEEDORValue : String;
+ function GetOldCOMPRAValue : Float;
+ function GetOldVENTAValue : Float;
+
+ { Properties }
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldMODELO : String read GetOldMODELOValue;
+ property OldPROVEEDOR : String read GetOldPROVEEDORValue;
+ property OldCOMPRA : Float read GetOldCOMPRAValue;
+ property OldVENTA : Float read GetOldVENTAValue;
+ end;
+
+ { TFichaBeneficiosBusinessProcessorRules }
+ TFichaBeneficiosBusinessProcessorRules = class(TDABusinessProcessorRules, IFichaBeneficios, IFichaBeneficiosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetMODELOValue: String; virtual;
+ function GetOldMODELOValue: String; virtual;
+ procedure SetMODELOValue(const aValue: String); virtual;
+ function GetPROVEEDORValue: String; virtual;
+ function GetOldPROVEEDORValue: String; virtual;
+ procedure SetPROVEEDORValue(const aValue: String); virtual;
+ function GetCOMPRAValue: Float; virtual;
+ function GetOldCOMPRAValue: Float; virtual;
+ procedure SetCOMPRAValue(const aValue: Float); virtual;
+ function GetVENTAValue: Float; virtual;
+ function GetOldVENTAValue: Float; virtual;
+ procedure SetVENTAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property MODELO : String read GetMODELOValue write SetMODELOValue;
+ property OldMODELO : String read GetOldMODELOValue;
+ property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property OldPROVEEDOR : String read GetOldPROVEEDORValue;
+ property COMPRA : Float read GetCOMPRAValue write SetCOMPRAValue;
+ property OldCOMPRA : Float read GetOldCOMPRAValue;
+ property VENTA : Float read GetVENTAValue write SetVENTAValue;
+ property OldVENTA : Float read GetOldVENTAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesFichaDelta }
+ IInformeDetallesFichaDelta = interface(IInformeDetallesFicha)
+ ['{FAC578F4-482B-4E46-8C07-D7C521604FCA}']
+ { Property getters and setters }
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldMODELOValue : String;
+ function GetOldPROVEEDORValue : String;
+ function GetOldCOMPRAValue : Float;
+ function GetOldVENTAValue : Float;
+
+ { Properties }
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldMODELO : String read GetOldMODELOValue;
+ property OldPROVEEDOR : String read GetOldPROVEEDORValue;
+ property OldCOMPRA : Float read GetOldCOMPRAValue;
+ property OldVENTA : Float read GetOldVENTAValue;
+ end;
+
+ { TInformeDetallesFichaBusinessProcessorRules }
+ TInformeDetallesFichaBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesFicha, IInformeDetallesFichaDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetMODELOValue: String; virtual;
+ function GetOldMODELOValue: String; virtual;
+ procedure SetMODELOValue(const aValue: String); virtual;
+ function GetPROVEEDORValue: String; virtual;
+ function GetOldPROVEEDORValue: String; virtual;
+ procedure SetPROVEEDORValue(const aValue: String); virtual;
+ function GetCOMPRAValue: Float; virtual;
+ function GetOldCOMPRAValue: Float; virtual;
+ procedure SetCOMPRAValue(const aValue: Float); virtual;
+ function GetVENTAValue: Float; virtual;
+ function GetOldVENTAValue: Float; virtual;
+ procedure SetVENTAValue(const aValue: Float); virtual;
+
+ { Properties }
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property MODELO : String read GetMODELOValue write SetMODELOValue;
+ property OldMODELO : String read GetOldMODELOValue;
+ property PROVEEDOR : String read GetPROVEEDORValue write SetPROVEEDORValue;
+ property OldPROVEEDOR : String read GetOldPROVEEDORValue;
+ property COMPRA : Float read GetCOMPRAValue write SetCOMPRAValue;
+ property OldCOMPRA : Float read GetOldCOMPRAValue;
+ property VENTA : Float read GetVENTAValue write SetVENTAValue;
+ property OldVENTA : Float read GetOldVENTAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IFichaBeneficios_AuxDelta }
+ IFichaBeneficios_AuxDelta = interface(IFichaBeneficios_Aux)
+ ['{3E015966-D349-4153-B8F8-4F083CD724F5}']
+ { Property getters and setters }
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+
+ { Properties }
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ end;
+
+ { TFichaBeneficios_AuxBusinessProcessorRules }
+ TFichaBeneficios_AuxBusinessProcessorRules = class(TDABusinessProcessorRules, IFichaBeneficios_Aux, IFichaBeneficios_AuxDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TdarNuevaReferenciaBusinessProcessorRules }
+constructor TdarNuevaReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TdarNuevaReferenciaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TdarNuevaReferenciaBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_darNuevaReferenciaREFERENCIA];
+end;
+
+function TdarNuevaReferenciaBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_darNuevaReferenciaREFERENCIA];
+end;
+
+procedure TdarNuevaReferenciaBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_darNuevaReferenciaREFERENCIA] := aValue;
+end;
+
+
+{ TInformeCabeceraFichaBusinessProcessorRules }
+constructor TInformeCabeceraFichaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraFichaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaREFERENCIA];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaREFERENCIA];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaFECHAINICIO];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaFECHAINICIO];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaFECHAINICIO] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaFECHAFIN];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaFECHAFIN];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaFECHAFIN] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaSITUACION];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaSITUACION];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaSITUACION] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaOBSERVACIONES];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaNOMBRE];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaNOMBRE];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaNIFCIF];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaNIFCIF];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaNIFCIF] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCALLE];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaCALLE];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCALLE] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaPOBLACION];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaPOBLACION];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaPROVINCIA];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaPROVINCIA];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaPROVINCIA] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaTELEFONO1];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaTELEFONO1];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaTELEFONO1] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaTELEFONO2];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaTELEFONO2];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaTELEFONO2] := aValue;
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaMOVIL];
+end;
+
+function TInformeCabeceraFichaBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraFichaMOVIL];
+end;
+
+procedure TInformeCabeceraFichaBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraFichaMOVIL] := aValue;
+end;
+
+
+{ TMontajesBusinessProcessorRules }
+constructor TMontajesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TMontajesBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TMontajesBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOEMPRESA];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesCODIGOEMPRESA];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOEMPRESA] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGO];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesCODIGO];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGO] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAALTA];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesFECHAALTA];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAALTA] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesUSUARIO];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesUSUARIO];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesUSUARIO] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAINICIO];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesFECHAINICIO];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAINICIO] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAFIN];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesFECHAFIN];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesFECHAFIN] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesSITUACION];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesSITUACION];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesSITUACION] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesOBSERVACIONES];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesOBSERVACIONES];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesOBSERVACIONES] := aValue.Text;
+end;
+
+function TMontajesBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOPRESUPUESTO];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesCODIGOPRESUPUESTO];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesREFERENCIA];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesREFERENCIA];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesREFERENCIA] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOCONTACTO];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesCODIGOCONTACTO];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesCODIGOCONTACTO] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesNOMBRE];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesNOMBRE];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesNOMBRE] := aValue;
+end;
+
+function TMontajesBusinessProcessorRules.GetOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesOPCION];
+end;
+
+function TMontajesBusinessProcessorRules.GetOldOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_MontajesOPCION];
+end;
+
+procedure TMontajesBusinessProcessorRules.SetOPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_MontajesOPCION] := aValue;
+end;
+
+
+{ TRefresh_MontajesBusinessProcessorRules }
+constructor TRefresh_MontajesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TRefresh_MontajesBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOEMPRESA];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesCODIGOEMPRESA];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOEMPRESA] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGO];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesCODIGO];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGO] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAALTA];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesFECHAALTA];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAALTA] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesUSUARIO];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesUSUARIO];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesUSUARIO] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAINICIO];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldFECHAINICIOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesFECHAINICIO];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetFECHAINICIOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAINICIO] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAFIN];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldFECHAFINValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesFECHAFIN];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetFECHAFINValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesFECHAFIN] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesSITUACION];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesSITUACION];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesSITUACION] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesOBSERVACIONES];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesOBSERVACIONES];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesOBSERVACIONES] := aValue.Text;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOPRESUPUESTO];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesCODIGOPRESUPUESTO];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesREFERENCIA];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesREFERENCIA];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesREFERENCIA] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOCONTACTO];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesCODIGOCONTACTO];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesCODIGOCONTACTO] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesNOMBRE];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesNOMBRE];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesNOMBRE] := aValue;
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesOPCION];
+end;
+
+function TRefresh_MontajesBusinessProcessorRules.GetOldOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_MontajesOPCION];
+end;
+
+procedure TRefresh_MontajesBusinessProcessorRules.SetOPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_MontajesOPCION] := aValue;
+end;
+
+
+{ TFichaBeneficiosBusinessProcessorRules }
+constructor TFichaBeneficiosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TFichaBeneficiosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosCODIGOMONTAJE];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosCODIGOMONTAJE];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosCODIGOMONTAJE] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosNUMCONCEPTO];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosNUMCONCEPTO];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosNUMCONCEPTO] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosDESCRIPCION];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosDESCRIPCION];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosDESCRIPCION] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetMODELOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosMODELO];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldMODELOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosMODELO];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetMODELOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosMODELO] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosPROVEEDOR];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosPROVEEDOR];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetPROVEEDORValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosPROVEEDOR] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetCOMPRAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosCOMPRA];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldCOMPRAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosCOMPRA];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetCOMPRAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosCOMPRA] := aValue;
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetVENTAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosVENTA];
+end;
+
+function TFichaBeneficiosBusinessProcessorRules.GetOldVENTAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficiosVENTA];
+end;
+
+procedure TFichaBeneficiosBusinessProcessorRules.SetVENTAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficiosVENTA] := aValue;
+end;
+
+
+{ TInformeDetallesFichaBusinessProcessorRules }
+constructor TInformeDetallesFichaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesFichaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaDESCRIPCION];
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFichaDESCRIPCION];
+end;
+
+procedure TInformeDetallesFichaBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetMODELOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaMODELO];
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetOldMODELOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFichaMODELO];
+end;
+
+procedure TInformeDetallesFichaBusinessProcessorRules.SetMODELOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaMODELO] := aValue;
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaPROVEEDOR];
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetOldPROVEEDORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFichaPROVEEDOR];
+end;
+
+procedure TInformeDetallesFichaBusinessProcessorRules.SetPROVEEDORValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaPROVEEDOR] := aValue;
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetCOMPRAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaCOMPRA];
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetOldCOMPRAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFichaCOMPRA];
+end;
+
+procedure TInformeDetallesFichaBusinessProcessorRules.SetCOMPRAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaCOMPRA] := aValue;
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetVENTAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaVENTA];
+end;
+
+function TInformeDetallesFichaBusinessProcessorRules.GetOldVENTAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesFichaVENTA];
+end;
+
+procedure TInformeDetallesFichaBusinessProcessorRules.SetVENTAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesFichaVENTA] := aValue;
+end;
+
+
+{ TFichaBeneficios_AuxBusinessProcessorRules }
+constructor TFichaBeneficios_AuxBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TFichaBeneficios_AuxBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFichaBeneficios_AuxBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficios_AuxNUMCONCEPTO];
+end;
+
+function TFichaBeneficios_AuxBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficios_AuxNUMCONCEPTO];
+end;
+
+procedure TFichaBeneficios_AuxBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficios_AuxNUMCONCEPTO] := aValue;
+end;
+
+function TFichaBeneficios_AuxBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficios_AuxDESCRIPCION];
+end;
+
+function TFichaBeneficios_AuxBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FichaBeneficios_AuxDESCRIPCION];
+end;
+
+procedure TFichaBeneficios_AuxBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FichaBeneficios_AuxDESCRIPCION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_darNuevaReferenciaDelta, TdarNuevaReferenciaBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraFichaDelta, TInformeCabeceraFichaBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_MontajesDelta, TMontajesBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Refresh_MontajesDelta, TRefresh_MontajesBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_FichaBeneficiosDelta, TFichaBeneficiosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesFichaDelta, TInformeDetallesFichaBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_FichaBeneficios_AuxDelta, TFichaBeneficios_AuxBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Montajes/Reglas/uBizArticulosMontaje.pas b/Modulos/Montajes/Reglas/uBizArticulosMontaje.pas
new file mode 100644
index 0000000..fab4dd8
--- /dev/null
+++ b/Modulos/Montajes/Reglas/uBizArticulosMontaje.pas
@@ -0,0 +1,97 @@
+unit uBizArticulosMontaje;
+
+interface
+
+uses uBizArticulos;
+
+type
+ IBizArticulosMontaje = interface(IBizArticulosAlmacen)
+ ['{CCBB5FDD-5364-4386-9187-5D3946767B22}']
+// procedure Show;
+ procedure Delete;
+ end;
+
+ TBizArticulosMontaje = class(TBizArticulosAlmacenDataTableRules, IBizArticulosMontaje)
+ public
+// procedure Show; override;
+ procedure Delete;
+ end;
+
+
+ function DarArticulosMontaje(CodigoMontaje : Integer) : IBizArticulosMontaje;
+
+implementation
+
+uses uDataModuleArticulos, uDADataTable, uDAInterfaces, SysUtils,
+ uDACDSDataTable, uDataTableUtils, Dialogs, Controls;
+
+function DarArticulosMontaje(CodigoMontaje : Integer) : IBizArticulosMontaje;
+var
+ dtArticulos: TDACDSDataTable;
+begin
+ dtArticulos := dmArticulos.GetDataTableItems;
+ with dtArticulos do
+ begin
+ Where.AddText('(ARTICULOS.CODIGOMONTAJE = ' + IntToStr(CodigoMontaje) + ')');
+ BusinessRulesID := 'BizArticulosMontaje';
+ end;
+ Result := (dtArticulos as IBizArticulosMontaje);
+end;
+
+{ TBizArticulosMontaje }
+
+{procedure TBizArticulosMontaje.AnadirPedido;
+var
+ APedido: IBizPedidosProveedor;
+begin
+ try
+ APedido := dmPedidos.GetItem(0);
+ if not APedido.DataTable.Active then
+ APedido.DataTable.Active := True;
+
+ APedido.Insert;
+ APedido.CODIGOMONTAJE := CODIGOMONTAJE;
+ APedido.Montaje := APedido.Montaje;
+ APedido.Show;
+
+ //Refrescamos la lista de pedidos del montaje
+ Self.DataTable.Refresh;
+ finally
+ APedido := Nil;
+ end;
+end;
+}
+
+procedure TBizArticulosMontaje.Delete;
+begin
+ if (MessageDlg('¿Desea liberar este artículo?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ begin
+// Self.DataTable.Delete;
+ end;
+end;
+
+{procedure TBizArticulosMontaje.Show;
+var
+ APedido: IBizPedidosProveedor;
+begin
+ try
+ APedido := dmPedidos.GetItem(CODIGO);
+ if not APedido.DataTable.Active then
+ APedido.DataTable.Active := True;
+
+ APedido.Show;
+
+ //Refrescamos la lista de pedidos del montaje
+ Self.DataTable.Refresh;
+ finally
+ APedido := Nil;
+ end;
+end;}
+
+initialization
+ RegisterDataTableRules('BizArticulosMontaje', TBizArticulosMontaje);
+
+finalization
+
+end.
+
diff --git a/Modulos/Montajes/Reglas/uBizMontajes.pas b/Modulos/Montajes/Reglas/uBizMontajes.pas
new file mode 100644
index 0000000..de96c99
--- /dev/null
+++ b/Modulos/Montajes/Reglas/uBizMontajes.pas
@@ -0,0 +1,434 @@
+unit uBizMontajes;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schMontajesClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls,
+ uBizContacto, uBizPresupuestosCliente, uBizInformesBase;
+
+Const
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_PENDIENTERECEPCION = 'Pendiente recepción';
+ SITUACION_PENDIENTEMONTAJE = 'Pendiente montaje';
+ SITUACION_PENDIENTEPAGO = 'Pendiente pago';
+ SITUACION_PAGADO = 'Pagado y terminado';
+
+Type
+ TEnumSituacion = (sitPendientes, sitPendienteRecepcion, sitPendienteMontaje, sitPendientePago, sitPagado);
+
+ IBizFichaBeneficiosAux = interface(IFichaBeneficios_Aux)
+ ['{640104F5-36DA-4A00-9355-E731B83BCE99}']
+ end;
+
+ IBizFichaBeneficiosMontaje = interface(IFichaBeneficios)
+ ['{1A7191CB-6F5C-4E1C-9024-E71C5718EF8B}']
+ procedure AnadirFichaBeneficiosDefecto(const pCodigoMontaje: integer);
+ end;
+
+ IBizMontaje = interface(IMONTAJES)
+ ['{03F707D7-E00A-43D7-B14D-7450C0C9771F}']
+ procedure Show;
+ procedure ShowAll;
+ procedure Preview;
+ procedure Print;
+
+ function ShowForSelect : TModalResult;
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+
+ function GetFichaBeneficios: IBizFichaBeneficiosMontaje;
+ procedure SetFichaBeneficios(Value: IBizFichaBeneficiosMontaje);
+ property FichaBeneficios: IBizFichaBeneficiosMontaje read GetFichaBeneficios write SetFichaBeneficios;
+
+ procedure PreviewLabels;
+ procedure PrintLabels;
+ function GetLabelCount: Integer;
+ procedure SetLabelCount(Value: Integer);
+ property LabelCount: Integer read GetLabelCount write SetLabelCount;
+ end;
+
+ TBizMontajeDataTableRules = class(TMONTAJESDataTableRules, IBizMontaje,
+ IApplyUpdateFailedException, ISelectedRowList, IBizInformesAware)
+ private
+ FCliente : IBizCliente;
+ FPresupuesto : IBizPresupuestos;
+ FFichaBeneficios : IBizFichaBeneficiosMontaje;
+ FFichaBeneficiosLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+ FLabelCount : Integer;
+ procedure ShowToSelect;
+ function OnApplyUpdateFailed: Boolean;
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure AfterApplyUpdates(Sender: TDADataTable);
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ procedure AsignarReferencia;
+ protected
+ function GetLabelCount: Integer;
+ procedure SetLabelCount(Value: Integer);
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(Value: IBizPresupuestos);
+ function GetFichaBeneficios: IBizFichaBeneficiosMontaje;
+ procedure SetFichaBeneficios(Value: IBizFichaBeneficiosMontaje);
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ procedure Show; virtual;
+ procedure ShowAll; virtual;
+ procedure Preview; virtual;
+ procedure Print; virtual;
+ function ShowForSelect : TModalResult; virtual;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ property FichaBeneficios: IBizFichaBeneficiosMontaje read GetFichaBeneficios write SetFichaBeneficios;
+ procedure PreviewLabels;
+ procedure PrintLabels;
+ property LabelCount: Integer read GetLabelCount write SetLabelCount;
+ end;
+
+ TBizFichaBeneficiosAuxDataTableRules = class(TFichaBeneficios_AuxDataTableRules, IBizFichaBeneficiosAux)
+ end;
+
+ TBizFichaBeneficiosMontajeDataTableRules = class(TFichaBeneficiosDataTableRules, IBizFichaBeneficiosMontaje,
+ IApplyUpdateFailedException)
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ public
+ procedure AnadirFichaBeneficiosDefecto(const pCodigoMontaje: integer);
+ end;
+
+ procedure ValidarMontaje (const AMontaje : IBizMontaje);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
+ uEditorUtils, uDataModuleMontajes, Variants, Forms, uDataModuleContactos,
+ uDataModulePresupuestos;
+
+
+procedure ValidarMontaje (const AMontaje : IBizMontaje);
+begin
+//
+end;
+
+
+{ TBizMontajeDataTableRules }
+
+{
+************************** TBizMontajeDataTableRules **************************
+}
+
+procedure TBizMontajeDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAINICIO := Date;
+ CODIGO := dmMontajes.GetNextAutoinc('GEN_MONTAJES');
+ SITUACION := SITUACION_PENDIENTERECEPCION;
+
+ //Añadimos la ficha de beneficios por defecto
+ FichaBeneficios.AnadirFichaBeneficiosDefecto(CODIGO);
+end;
+
+procedure TBizMontajeDataTableRules.Show;
+begin
+ ShowEditor(IBizMontaje, Self, etItem);
+end;
+
+procedure TBizMontajeDataTableRules.Preview;
+begin
+ dmMontajes.PreviewFicha(Self.CODIGO);
+end;
+
+procedure TBizMontajeDataTableRules.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este montaje porque tiene pedidos asociados', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+function TBizMontajeDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+function TBizMontajeDataTableRules.OnApplyUpdateFailed: Boolean;
+begin
+//
+end;
+
+procedure TBizMontajeDataTableRules.ShowToSelect;
+begin
+//
+end;
+
+constructor TBizMontajeDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FLabelCount := 4; // 4 etiquetas por hoja por defecto
+ FCliente := Nil;
+ FPresupuesto := Nil;
+ FFichaBeneficiosLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+ aDataTable.OnAfterApplyUpdates := AfterApplyUpdates;
+end;
+
+destructor TBizMontajeDataTableRules.Destroy;
+begin
+ FCliente := Nil;
+ FPresupuesto := Nil;
+ FFichaBeneficios := Nil;
+ FFichaBeneficiosLink.Free;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+procedure TBizMontajeDataTableRules.ShowAll;
+begin
+// ShowEditor(IBizProveedor, Self, etItems);
+end;
+
+function TBizMontajeDataTableRules.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizMontaje, Self, etSelectItems);
+end;
+
+function TBizMontajeDataTableRules.GetCliente: IBizCliente;
+begin
+ if not Assigned(FCliente) then
+ FCliente := dmContactos.GetCliente(CODIGOCONTACTO)
+ else
+ if (CODIGOCONTACTO <> FCliente.Codigo) and
+ not (FCliente.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FCliente, CODIGOCONTACTO);
+
+ if not FCliente.DataTable.Active then
+ FCliente.DataTable.Active := True;
+
+ Result := FCliente;
+end;
+
+procedure TBizMontajeDataTableRules.SetCliente(Value: IBizCliente);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FCliente := Value;
+ if Assigned(FCliente) then
+ begin
+ CODIGOCONTACTO := FCliente.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+function TBizMontajeDataTableRules.GetPresupuesto: IBizPresupuestos;
+begin
+ if not Assigned(FPresupuesto) then
+ FPresupuesto := dmPresupuestos.GetPresupuesto(CODIGOPRESUPUESTO)
+ else
+ if (CODIGOPRESUPUESTO <> FPresupuesto.Codigo) and
+ not (FPresupuesto.DataTable.State in dsEditModes) then
+ FPresupuesto := dmPresupuestos.GetPresupuesto(CODIGOPRESUPUESTO);
+
+ if not FPresupuesto.DataTable.Active then
+ FPresupuesto.DataTable.Active := True;
+
+ Result := FPresupuesto;
+end;
+
+procedure TBizMontajeDataTableRules.SetPresupuesto(Value: IBizPresupuestos);
+var
+ bEnEdicion : Boolean;
+begin
+ if Assigned(FPresupuesto) and (length(FPresupuesto.REFERENCIA) <> 0) then
+ dmPresupuestos.setReferencia(FPresupuesto, Null);
+
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FPresupuesto := Value;
+ if Assigned(FPresupuesto) then
+ begin
+ CODIGOPRESUPUESTO := FPresupuesto.CODIGO;
+ Self.Cliente := FPresupuesto.Cliente;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizMontajeDataTableRules.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i: Integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : asignarReferencia;
+// ctDelete :
+ end;
+end;
+
+procedure TBizMontajeDataTableRules.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente de este montaje', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ if (Pos('presupuesto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el presupuesto de este montaje', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ if (Pos('Fecha', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de inicio de este montaje', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizMontajeDataTableRules.asignarReferencia;
+begin
+ if Length(Self.Presupuesto.REFERENCIA) = 0 then
+ begin
+ if not (Self.DataTable.State in dsEditModes) then
+ Self.DataTable.Edit;
+ Self.REFERENCIA := dmMontajes.DarNuevaReferencia(Self.Presupuesto.TIPO);
+ Self.Post;
+ dmPresupuestos.setReferencia(Self.Presupuesto, Self.REFERENCIA);
+ showmessage('La referencia asignada al montaje y a su presupuesto asociado es ' + Self.REFERENCIA);
+ end;
+end;
+
+procedure TBizMontajeDataTableRules.AfterApplyUpdates(Sender: TDADataTable);
+begin
+ try
+ Self.Presupuesto.DataTable.ApplyUpdates;
+ except
+ on E: EDAApplyUpdateFailed do
+ raise Exception.Create('Error al asignar referencia al presupuesto');
+ end;
+end;
+
+procedure TBizMontajeDataTableRules.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmMontajes.PuedoEliminarMontaje(CODIGO) then
+ raise Exception.Create('No se puede borrar este montaje porque tiene pedidos asociados o artículos reservados');
+end;
+
+{ TBizFichaBeneficiosMontajeDataTableRules }
+
+procedure TBizFichaBeneficiosMontajeDataTableRules.AnadirFichaBeneficiosDefecto(const pCodigoMontaje: integer);
+var
+ FichaBeneficiosAux: IFichaBeneficios_Aux;
+begin
+ FichaBeneficiosAux := dmMontajes.darFichaBeneficiosAux;
+ try
+ with FichaBeneficiosAux.DataTable do
+ begin
+ Active := True;
+ while not Eof do
+ begin
+ Self.Insert;
+ Self.CODIGOMONTAJE := pCodigoMontaje;
+ Self.NUMCONCEPTO := FichaBeneficiosAux.NUMCONCEPTO;
+ Self.DESCRIPCION := FichaBeneficiosAux.DESCRIPCION;
+ Self.Post;
+ Next;
+ end;
+ end;
+ finally
+ FichaBeneficiosAux.DataTable.Close;
+ FichaBeneficiosAux := Nil;
+ end;
+end;
+
+procedure TBizFichaBeneficiosMontajeDataTableRules.OnNewRecord(
+ Sender: TDADataTable);
+begin
+ inherited;
+ NUMCONCEPTO := dmMontajes.GetNextAutoinc('GEN_FICHABENEFICIOS');
+ DESCRIPCION := 'DESCRIPCION';
+ COMPRA := 0;
+ VENTA := 0;
+end;
+
+procedure TBizFichaBeneficiosMontajeDataTableRules.ShowApplyUpdateFailed(const Error: EDAApplyUpdateFailed);
+begin
+//
+end;
+
+procedure TBizMontajeDataTableRules.Print;
+begin
+ dmMontajes.PrintFicha(Self.CODIGO);
+end;
+
+function TBizMontajeDataTableRules.GetLabelCount: Integer;
+begin
+ Result := FLabelCount;
+end;
+
+procedure TBizMontajeDataTableRules.PreviewLabels;
+begin
+ dmMontajes.PreviewEtiquetas(Self.CODIGO, FLabelCount);
+end;
+
+procedure TBizMontajeDataTableRules.PrintLabels;
+begin
+ dmMontajes.PrintEtiquetas(Self.CODIGO, FLabelCount);
+end;
+
+procedure TBizMontajeDataTableRules.SetLabelCount(Value: Integer);
+begin
+ FLabelCount := Value;
+end;
+
+function TBizMontajeDataTableRules.GetFichaBeneficios: IBizFichaBeneficiosMontaje;
+begin
+ Result := FFichaBeneficios;
+end;
+
+procedure TBizMontajeDataTableRules.SetFichaBeneficios(
+ Value: IBizFichaBeneficiosMontaje);
+begin
+ FFichaBeneficios := Value;
+ FFichaBeneficiosLink.DataTable := Self.DataTable;
+ FFichaBeneficios.DataTable.MasterSource := FFichaBeneficiosLink;
+end;
+
+initialization
+ RegisterDataTableRules('BizMontaje', TBizMontajeDataTableRules);
+ RegisterDataTableRules('BizFichaBeneficiosMontaje', TBizFichaBeneficiosMontajeDataTableRules);
+ RegisterDataTableRules('BizFichaBeneficiosAux', TBizFichaBeneficiosAuxDataTableRules);
+
+finalization
+
+end.
diff --git a/Modulos/Montajes/Reglas/uBizMontajesPedido.pas b/Modulos/Montajes/Reglas/uBizMontajesPedido.pas
new file mode 100644
index 0000000..db2282f
--- /dev/null
+++ b/Modulos/Montajes/Reglas/uBizMontajesPedido.pas
@@ -0,0 +1,46 @@
+unit uBizMontajesPedido;
+
+interface
+
+uses uBizMontajes;
+
+type
+ IBizMontajesPedido = interface(IBizMontaje)
+ ['{B1AB23CC-ED9F-486C-A3F1-E72CDC016505}']
+ end;
+
+ TBizMontajesPedido = class(TBizMontajeDataTableRules, IBizMontajesPedido)
+ public
+ end;
+
+// function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje;
+
+implementation
+
+uses uDADataTable;
+
+{function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje;
+var
+ dtPedidos: TDACDSDataTable;
+begin
+ dtPedidos := dmPedidos.GetDataTableItems;
+ with dtPedidos do
+ begin
+ if not Where.Empty then
+ Where.AddOperator(opAND);
+ Where.AddText('(CODIGOMONTAJE = ' + IntToStr(CodigoMontaje) + ')');
+
+ BusinessRulesID := 'BizPedidosMontaje';
+ end;
+ Result := (dtPedidos as IBizPedidosMontaje);
+end;}
+
+{ TBizMontajesPedido }
+
+initialization
+ RegisterDataTableRules('BizMontajesPedido', TBizMontajesPedido);
+
+finalization
+
+end.
+
diff --git a/Modulos/Montajes/Reglas/uBizPedidosMontaje.pas b/Modulos/Montajes/Reglas/uBizPedidosMontaje.pas
new file mode 100644
index 0000000..fb5eb4d
--- /dev/null
+++ b/Modulos/Montajes/Reglas/uBizPedidosMontaje.pas
@@ -0,0 +1,100 @@
+unit uBizPedidosMontaje;
+
+interface
+
+uses uBizPedidosProveedor;
+
+type
+ IBizPedidosMontaje = interface(IBizPedidosProveedor)
+ ['{B2C82F22-C9E6-4965-AB7C-B6E6851051F4}']
+ procedure Show;
+ procedure Delete;
+ procedure AnadirPedido(CodigoMontaje: Integer);
+ end;
+
+ TBizPedidosMontaje = class(TBizPedidosProveedor, IBizPedidosMontaje)
+ public
+ procedure Show; override;
+ procedure Delete;
+ procedure AnadirPedido(CodigoMontaje: Integer);
+ end;
+
+ function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje;
+
+implementation
+
+uses uDataModulePedidosProveedor, uDADataTable, uDAInterfaces, SysUtils,
+ uDACDSDataTable, uDataTableUtils, Dialogs, Controls,
+ schPedidosProveedorClient_Intf;
+
+function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje;
+var
+ dtPedidos: TDACDSDataTable;
+begin
+ dtPedidos := dmPedidos.GetDataTableItems('BizPedidosMontaje');
+ with dtPedidos do
+ begin
+ if not Where.Empty then
+ Where.AddOperator(opAND);
+ Where.AddText('(CODIGOMONTAJE = ' + IntToStr(CodigoMontaje) + ')');
+ end;
+
+ Result := (dtPedidos as IBizPedidosMontaje);
+end;
+
+{ TBizPedidosMontaje }
+
+procedure TBizPedidosMontaje.AnadirPedido(CodigoMontaje: Integer);
+var
+ APedido: IBizPedidosProveedor;
+begin
+ try
+ APedido := dmPedidos.GetItem(0);
+ if not APedido.DataTable.Active then
+ APedido.DataTable.Active := True;
+
+ APedido.Insert;
+ APedido.CODIGOMONTAJE := CodigoMontaje;
+ APedido.Montaje := APedido.Montaje;
+ APedido.Show;
+
+ //Refrescamos la lista de pedidos del montaje
+ Self.DataTable.Refresh;
+ finally
+ APedido := Nil;
+ end;
+end;
+
+procedure TBizPedidosMontaje.Delete;
+begin
+ if (MessageDlg('¿Desea borrar este pedido?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ begin
+ Self.DataTable.Delete;
+ end;
+end;
+
+procedure TBizPedidosMontaje.Show;
+var
+ APedido: IBizPedidosProveedor;
+begin
+ try
+ APedido := dmPedidos.GetItem(CODIGO);
+ if not APedido.DataTable.Active then
+ APedido.DataTable.Active := True;
+
+ APedido.Show;
+
+ //Refrescamos la lista de pedidos del montaje
+ Self.DataTable.Refresh;
+ finally
+ APedido := Nil;
+ end;
+end;
+
+initialization
+ RegisterDataTableRules('BizPedidosMontaje', TBizPedidosMontaje);
+
+finalization
+
+end.
+
diff --git a/Modulos/Montajes/Servidor/srvMontajes_Impl.ddp b/Modulos/Montajes/Servidor/srvMontajes_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Montajes/Servidor/srvMontajes_Impl.ddp differ
diff --git a/Modulos/Montajes/Servidor/srvMontajes_Impl.dfm b/Modulos/Montajes/Servidor/srvMontajes_Impl.dfm
new file mode 100644
index 0000000..df13eca
--- /dev/null
+++ b/Modulos/Montajes/Servidor/srvMontajes_Impl.dfm
@@ -0,0 +1,1447 @@
+object srvMontajes: TsrvMontajes
+ OldCreateOrder = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schMontajes
+ ServiceAdapter = DABINAdapter
+ Left = 648
+ Top = 207
+ Height = 356
+ Width = 300
+ object bpMontajes: TDABusinessProcessor
+ Schema = schMontajes
+ InsertCommandName = 'Insert_Montajes'
+ DeleteCommandName = 'Delete_Montajes'
+ UpdateCommandName = 'Update_Montajes'
+ RefreshDatasetName = 'Refresh_Montajes'
+ ReferencedDataset = 'Montajes'
+ ProcessorOptions = [poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 208
+ Top = 24
+ end
+ object schMontajes: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'TIPO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL = 'SELECT * FROM DAR_REFERENCIA_MONTAJE(:TIPO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'darNuevaReferencia'
+ Fields = <
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'SELECT MON.REFERENCIA, MON.FECHAINICIO, MON.FECHAFIN, MON.SITUAC' +
+ 'ION,'#10'MON.OBSERVACIONES, MON.CODIGOCONTACTO,'#10'CON.NOMBRE, CON.NIFC' +
+ 'IF, CON.CALLE, CON.CODIGOPOSTAL, CON.POBLACION,'#10'CON.PROVINCIA, C' +
+ 'ON.TELEFONO1, CON.TELEFONO2, CON.MOVIL'#10'FROM MONTAJES MON'#10'LEFT JO' +
+ 'IN CONTACTOS CON ON (MON.CODIGOCONTACTO = CON.CODIGO)'#10'WHERE MON.' +
+ 'CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAINICIO'
+ TableField = 'FECHAINICIO'
+ end
+ item
+ DatasetField = 'FECHAFIN'
+ TableField = 'FECHAFIN'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end>
+ end>
+ Name = 'InformeCabeceraFicha'
+ Fields = <
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'MONTAJES'
+ SQL =
+ 'SELECT '#10' MON.CODIGOEMPRESA, MON.CODIGO, MON.FECHAALTA, MON.US' +
+ 'UARIO, MON.FECHAINICIO,'#10' MON.FECHAFIN, MON.SITUACION, MON.OBS' +
+ 'ERVACIONES,'#10' MON.CODIGOPRESUPUESTO, MON.REFERENCIA,'#10' MON.C' +
+ 'ODIGOCONTACTO, CON.NOMBRE, PRE.OPCION'#10#10'FROM MONTAJES MON'#10'LEFT JO' +
+ 'IN CONTACTOS CON ON (MON.CODIGOCONTACTO = CON.CODIGO)'#10'LEFT JOIN ' +
+ 'PRESUPUESTOS PRE ON (PRE.CODIGO = MON.CODIGOPRESUPUESTO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAINICIO'
+ TableField = 'FECHAINICIO'
+ end
+ item
+ DatasetField = 'FECHAFIN'
+ TableField = 'FECHAFIN'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'OPCION'
+ TableField = 'OPCION'
+ end>
+ end>
+ Name = 'Montajes'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOMONTAJE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Inicio'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAFIN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONMONTAJE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'MONTAJES'
+ SQL =
+ 'SELECT '#10' MON.CODIGOEMPRESA, MON.CODIGO, MON.FECHAALTA, MON.US' +
+ 'UARIO, MON.FECHAINICIO,'#10' MON.FECHAFIN, MON.SITUACION, MON.OBS' +
+ 'ERVACIONES,'#10' MON.CODIGOPRESUPUESTO, MON.REFERENCIA,'#10' MON.C' +
+ 'ODIGOCONTACTO, CON.NOMBRE, PRE.OPCION'#10#10'FROM MONTAJES MON'#10'LEFT JO' +
+ 'IN CONTACTOS CON ON (MON.CODIGOCONTACTO = CON.CODIGO)'#10'LEFT JOIN ' +
+ 'PRESUPUESTOS PRE ON (PRE.CODIGO = MON.CODIGOPRESUPUESTO)'#10'WHERE M' +
+ 'ON.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAINICIO'
+ TableField = 'FECHAINICIO'
+ end
+ item
+ DatasetField = 'FECHAFIN'
+ TableField = 'FECHAFIN'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'OPCION'
+ TableField = 'OPCION'
+ end>
+ end>
+ Name = 'Refresh_Montajes'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOMONTAJE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAINI'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAFIN'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONMONTAJE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FICHABENEFICIOS'
+ SQL =
+ 'SELECT '#10' CODIGOMONTAJE, NUMCONCEPTO, DESCRIPCION, MODELO, PRO' +
+ 'VEEDOR, '#10' COMPRA, VENTA'#10'FROM FICHABENEFICIOS'#10'WHERE CODIGOMONT' +
+ 'AJE = :CODIGOMONTAJE'#10'ORDER BY NUMCONCEPTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOMONTAJE'
+ TableField = 'CODIGOMONTAJE'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'MODELO'
+ TableField = 'MODELO'
+ end
+ item
+ DatasetField = 'PROVEEDOR'
+ TableField = 'PROVEEDOR'
+ end
+ item
+ DatasetField = 'COMPRA'
+ TableField = 'COMPRA'
+ end
+ item
+ DatasetField = 'VENTA'
+ TableField = 'VENTA'
+ end>
+ end>
+ Name = 'FichaBeneficios'
+ Fields = <
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOMONTAJE'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MODELO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVEEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMPRA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VENTA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'select DESCRIPCION, MODELO, PROVEEDOR, COMPRA, VENTA'#10'from FICHAB' +
+ 'ENEFICIOS'#10'where CODIGOMONTAJE = :CODIGO'#10'ORDER BY NUMCONCEPTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'MODELO'
+ TableField = 'MODELO'
+ end
+ item
+ DatasetField = 'PROVEEDOR'
+ TableField = 'PROVEEDOR'
+ end
+ item
+ DatasetField = 'COMPRA'
+ TableField = 'COMPRA'
+ end
+ item
+ DatasetField = 'VENTA'
+ TableField = 'VENTA'
+ end>
+ end>
+ Name = 'InformeDetallesFicha'
+ Fields = <
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MODELO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVEEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMPRA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VENTA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'FICHABENEFICIOS'
+ SQL =
+ 'SELECT '#10' NUMCONCEPTO, DESCRIPCION'#10'FROM FICHABENEFICIOS_AUX'#10'OR' +
+ 'DER BY NUMCONCEPTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end>
+ end>
+ Name = 'FichaBeneficios_Aux'
+ Fields = <
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ 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 = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'MONTAJES'
+ SQL =
+ 'INSERT'#10' INTO MONTAJES'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA, US' +
+ 'UARIO, CODIGOPRESUPUESTO, '#10' CODIGOCONTACTO, REFERENCIA, FECH' +
+ 'AINICIO, FECHAFIN, '#10' SITUACION, OBSERVACIONES)'#10' VALUES'#10' ' +
+ '(:CODIGOEMPRESA, :CODIGO, :FECHAALTA, :USUARIO, :CODIGOPRESUPUES' +
+ 'TO, '#10' :CODIGOCONTACTO, :REFERENCIA, :FECHAINICIO, :FECHAFIN,' +
+ ' '#10' :SITUACION, :OBSERVACIONES)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_Montajes'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'MONTAJES'
+ SQL = 'DELETE '#10' FROM'#10' MONTAJES'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Montajes'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAINICIO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'MONTAJES'
+ SQL =
+ 'UPDATE MONTAJES'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10' ' +
+ 'CODIGO = :CODIGO, '#10' FECHAALTA = :FECHAALTA, '#10' USUARIO = :U' +
+ 'SUARIO, '#10' CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO, '#10' CODIGO' +
+ 'CONTACTO = :CODIGOCONTACTO, '#10' REFERENCIA = :REFERENCIA, '#10' ' +
+ 'FECHAINICIO = :FECHAINICIO, '#10' FECHAFIN = :FECHAFIN, '#10' SITU' +
+ 'ACION = :SITUACION, '#10' OBSERVACIONES = :OBSERVACIONES'#10' WHERE'#10 +
+ ' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_Montajes'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_FichaBeneficios_Montajes'
+ MasterDatasetName = 'Montajes'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'FichaBeneficios'
+ DetailFields = 'CODIGOMONTAJE'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert Montajes'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'Montajes'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update Montajes'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'Montajes'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete Montajes'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'Montajes'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 40
+ Top = 24
+ 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 = 39077.429504479170000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'var'
+ ' cadenaAux: String;'
+ 'begin'
+ ' DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );'
+ ''
+ ' CadenaAux := '#39#39';'
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ' +
+ ';'
+ ''
+ ' DatosCliente.Lines.Add(CadenaAux);'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 80
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ end>
+ Variables = <>
+ Style = <>
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 40
+ Top = 136
+ end
+ object DADataCabecera: TDADataSource
+ DataTable = tbl_Montaje
+ Left = 136
+ Top = 137
+ end
+ object tbl_Montaje: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 224
+ Top = 136
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 40
+ Top = 192
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_Ficha
+ Left = 136
+ Top = 193
+ end
+ object tbl_Ficha: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 224
+ Top = 192
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 120
+ Top = 24
+ end
+end
diff --git a/Modulos/Montajes/Servidor/srvMontajes_Impl.pas b/Modulos/Montajes/Servidor/srvMontajes_Impl.pas
new file mode 100644
index 0000000..b077a7b
--- /dev/null
+++ b/Modulos/Montajes/Servidor/srvMontajes_Impl.pas
@@ -0,0 +1,142 @@
+unit srvMontajes_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDACDSDataTable, DB, frxClass,
+ frxDBSet, uDAInterfaces, uDABINAdapter;
+
+type
+ { TsrvMontajes }
+ TsrvMontajes = class(TDARemoteService, IsrvMontajes)
+ bpMontajes: TDABusinessProcessor;
+ frxDBCabecera: TfrxDBDataset;
+ DADataCabecera: TDADataSource;
+ tbl_Montaje: TDACDSDataTable;
+ frxDBDetalles: TfrxDBDataset;
+ DADataDetalles: TDADataSource;
+ tbl_Ficha: TDACDSDataTable;
+ DABINAdapter: TDABINAdapter;
+ frxReport1: TfrxReport;
+ schMontajes: TDASchema;
+ private
+ protected
+ { IsrvMontajes methods }
+ function GetNextAutoinc(const Generador: String): Integer;
+ function PuedoEliminarMontaje(const Codigo: Integer): Boolean;
+ function GenerateReportFicha(const Codigo: Integer): Binary;
+ function GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas : Integer): Binary;
+ function DarNuevaReferencia(const TipoMontaje: String): String;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, schMontajesClient_Intf;
+
+procedure Create_srvMontajes(out anInstance : IUnknown);
+begin
+ anInstance := TsrvMontajes.Create(NIL);
+end;
+
+{ srvMontajes }
+function TsrvMontajes.GetNextAutoinc(const Generador: String): Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, Generador);
+end;
+
+function TsrvMontajes.PuedoEliminarMontaje(const Codigo: Integer): Boolean;
+var
+ dsData: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsData := schMontajes.NewCommand(Connection, 'Delete_Montajes', ['OLD_CODIGO'], [Codigo]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+function TsrvMontajes.GenerateReportFicha(const Codigo: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schMontajes.NewDataset(Connection, nme_InformeCabeceraFicha, ['CODIGO'], [Codigo]);
+ dsDetail := schMontajes.NewDataset(Connection, nme_InformeDetallesFicha, ['CODIGO'], [Codigo], False);
+ dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Montaje, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Ficha, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfFicha.fr3', True);
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvMontajes.GenerateReportEtiquetas(
+ const Codigo: Integer; const NumEtiquetas : Integer): Binary;
+var
+ dsMaster: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schMontajes.NewDataset(Connection, nme_Refresh_Montajes, ['CODIGO'], [Codigo]);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Montaje, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfEtiquetasMontajes.fr3', True);
+ frxReport1.Variables['NumEtiquetas'] := NumEtiquetas;
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvMontajes.DarNuevaReferencia(const TipoMontaje: String): String;
+var
+ dsReferencia: IDADataset;
+begin
+ dsReferencia := schMontajes.NewDataset(Connection, 'DarNuevaReferencia', ['TIPO'], [TipoMontaje]);
+ Result := dsReferencia.FieldByName('REFERENCIA').AsString;
+end;
+
+initialization
+ TROClassFactory.Create('srvMontajes', Create_srvMontajes, TsrvMontajes_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Pagos/Cliente/Pagos.bdsproj b/Modulos/Pagos/Cliente/Pagos.bdsproj
new file mode 100644
index 0000000..026e4d8
--- /dev/null
+++ b/Modulos/Pagos/Cliente/Pagos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Pagos.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente
+ 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
+
+
+ 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/Modulos/Pagos/Cliente/Pagos.cfg b/Modulos/Pagos/Cliente/Pagos.cfg
new file mode 100644
index 0000000..95ebc70
--- /dev/null
+++ b/Modulos/Pagos/Cliente/Pagos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Pagos/Cliente/Pagos.dcp b/Modulos/Pagos/Cliente/Pagos.dcp
new file mode 100644
index 0000000..7cd2ab8
Binary files /dev/null and b/Modulos/Pagos/Cliente/Pagos.dcp differ
diff --git a/Modulos/Pagos/Cliente/Pagos.dof b/Modulos/Pagos/Cliente/Pagos.dof
new file mode 100644
index 0000000..1661cd1
--- /dev/null
+++ b/Modulos/Pagos/Cliente/Pagos.dof
@@ -0,0 +1,209 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+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
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
+C:\Archivos de programa\EurekaLog 5\Delphi7\ExceptionExpert7.bpl=EurekaLog 5.1.9
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=19
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Cuentas\Cliente;..\..\Asientos\Cliente;..\..\Intervalos\Cliente;..\..\Documentos asociados;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item7=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item16=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item17=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item18=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Pagos/Cliente/Pagos.dpk b/Modulos/Pagos/Cliente/Pagos.dpk
new file mode 100644
index 0000000..18349d0
--- /dev/null
+++ b/Modulos/Pagos/Cliente/Pagos.dpk
@@ -0,0 +1,93 @@
+package Pagos;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ ccpack70,
+ designide,
+ vclactnband,
+ vclx,
+ cfpack,
+ JvAppFrmD7R,
+ JvStdCtrlsD7R,
+ vcljpg,
+ JvCoreD7R,
+ JvSystemD7R,
+ PngComponentsD7,
+ PNG_D7,
+ dbrtl,
+ dsnap,
+ adortl,
+ BaseD7,
+ vcldb,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxExtEditorsVCLD7,
+ cxDataD7,
+ cxEditorsVCLD7,
+ dxPSCoreD7,
+ dxComnD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExportVCLD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ Usuarios,
+ JvPageCompsD7R,
+ tb2k_d7,
+ tbx_d7,
+ Contactos,
+ Cuentas,
+ Asientos,
+ Intervalos,
+ Montajes_Intf;
+
+contains
+ uPluginControllerPagos in 'uPluginControllerPagos.pas' {ModulePagos: TModuleController},
+ uDataModulePagos in 'uDataModulePagos.pas' {dmPagos: TDAClientDataModule},
+ uViewDatosPago in 'uViewDatosPago.pas' {frViewDatosPago: TCustomView},
+ uViewPagos in 'uViewPagos.pas' {frViewPagos: TCustomView},
+ uBizPagos in '..\Reglas\uBizPagos.pas',
+ uEditorPagos in 'uEditorPagos.pas' {fEditorPagos: TCustomEditor},
+ uEditorPagosCliente in 'uEditorPagosCliente.pas' {fEditorPagosCliente: TCustomEditor},
+ uEditorPagosProveedor in 'uEditorPagosProveedor.pas' {fEditorPagosProveedor: TCustomEditor},
+ uViewPagosCliente in 'uViewPagosCliente.pas' {frViewPagosCliente: TCustomView},
+ uViewPagosProveedor in 'uViewPagosProveedor.pas' {frViewPagosProveedor: TCustomView},
+ uViewPago in 'uViewPago.pas' {frViewPago: TCustomView},
+ uViewPagoCliente in 'uViewPagoCliente.pas' {frViewPagoCliente: TCustomView},
+ uEditorPago in 'uEditorPago.pas' {fEditorPago: TCustomEditor},
+ uEditorPagoCliente in 'uEditorPagoCliente.pas' {fEditorPagoCliente: TCustomEditor},
+ uViewPagoProveedor in 'uViewPagoProveedor.pas' {frViewPagoProveedor: TCustomView},
+ uEditorPagoProveedor in 'uEditorPagoProveedor.pas' {fEditorPagoProveedor: TCustomEditor};
+
+end.
diff --git a/Modulos/Pagos/Cliente/Pagos.drc b/Modulos/Pagos/Cliente/Pagos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Pagos/Cliente/Pagos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Pagos/Cliente/Pagos.res b/Modulos/Pagos/Cliente/Pagos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Pagos/Cliente/Pagos.res differ
diff --git a/Modulos/Pagos/Cliente/uDataModulePagos.ddp b/Modulos/Pagos/Cliente/uDataModulePagos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uDataModulePagos.ddp differ
diff --git a/Modulos/Pagos/Cliente/uDataModulePagos.dfm b/Modulos/Pagos/Cliente/uDataModulePagos.dfm
new file mode 100644
index 0000000..fab0ad9
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uDataModulePagos.dfm
@@ -0,0 +1,308 @@
+object dmPagos: TdmPagos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 241
+ Top = 140
+ Height = 208
+ Width = 313
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvPagos'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 48
+ Top = 20
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 88
+ end
+ object tbl_Pagos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAMODIFICACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAMODIFICACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CATEGORIA'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Pagos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Pagos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Pagos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Pagos'
+ IndexDefs = <>
+ Left = 176
+ Top = 24
+ end
+ object ds_Pagos: TDADataSource
+ DataTable = tbl_Pagos
+ Left = 232
+ Top = 24
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uDataModulePagos.pas b/Modulos/Pagos/Cliente/uDataModulePagos.pas
new file mode 100644
index 0000000..d41278e
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uDataModulePagos.pas
@@ -0,0 +1,269 @@
+unit uDataModulePagos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizPagos, uBizContacto;
+
+type
+ TdmPagos = class(TDAClientDataModule)
+ DABINAdapter: TDABINAdapter;
+ RORemoteService: TRORemoteService;
+ tbl_Pagos: TDACDSDataTable;
+ ds_Pagos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ private
+ function GetPagos(CodigoCategoria : Integer): IBizPagos;
+ public
+ function GetNextAutoinc : integer;
+ function GetItems: IBizPagos;
+
+ function GetPagosProveedor : IBizPagosProveedor;
+ function GetPagosCliente : IBizPagosCliente;
+ function GetPagoProveedor(Codigo: Integer) : IBizPagosProveedor;
+ function GetPagoCliente(Codigo: Integer) : IBizPagosCliente;
+
+ procedure Preview(Const Codigo: Integer);
+ procedure Print(Const Codigo: Integer);
+ function PuedoEliminarAlmacen(Codigo : Integer) : Boolean;
+ function AnadirPagoCliente(Cliente: IBizCliente; CodigoPresupuesto: Integer;
+ Descripcion: Variant; Importe: Currency; var FechaPago: TDateTime): Boolean;
+ end;
+
+var
+ dmPagos: TdmPagos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
+ uDataTableUtils, uROTypes, uEditorPreview, Dialogs, uDataModuleBase,
+ schPagosClient_Intf, uDataModuleMontajes, uBizMontajes;
+
+const
+ MAX_RECORDS = 100;
+
+
+function TdmPagos.AnadirPagoCliente(Cliente: IBizCliente; CodigoPresupuesto: Integer;
+Descripcion: Variant; Importe: Currency; var FechaPago: TDateTime): Boolean;
+var
+ APagoCliente: IBizPagosCliente;
+ ReferenciaMontaje: String;
+begin
+ Result := False;
+
+ APagoCliente := GetPagoCliente(-1);
+ APagoCliente.DataTable.Active := True;
+
+ APagoCliente.Insert;
+ APagoCliente.Contacto := Cliente;
+ APagoCliente.DESCRIPCION := 'Cobro albarán ' + Descripcion;
+ APagoCliente.IMPORTE := Importe;
+
+ if (APagoCliente.Show = mrOk) then
+ begin
+ FechaPago := APagoCliente.FECHAPAGO;
+ ReferenciaMontaje := dmMontajes.CambiarSituacion(CodigoPresupuesto, sitPagado);
+ Showmessage('El montaje ' + ReferenciaMontaje + ', ha cambiado su estado a pagado y terminado');
+ Result := True;
+ end;
+
+ APagoCliente := Nil;
+end;
+
+procedure TdmPagos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+function TdmPagos.GetItems: IBizPagos;
+var
+ dtPagos: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtPagos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Pagos, dtPagos);
+ dtPagos.BusinessRulesID := 'BizPagos';
+ Result := (dtPagos as IBizPagos);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmPagos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvPagos).GetNextAutoinc;
+end;
+
+function TdmPagos.GetPagoCliente(Codigo: Integer): IBizPagosCliente;
+var
+ APagoCliente: IBizPagosCliente;
+begin
+ APagoCliente := GetPagosCliente;
+ with APagoCliente.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('PAGOS.' + fld_PagosCODIGO + ' = ' + IntToStr(Codigo), False);
+ CloseBraket;
+ end;
+ Result := APagoCliente;
+end;
+
+function TdmPagos.GetPagoProveedor(Codigo: Integer): IBizPagosProveedor;
+var
+ APagoProveedor: IBizPagosProveedor;
+begin
+ APagoProveedor := GetPagosProveedor;
+ with APagoProveedor.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('PAGOS.' + fld_PagosCODIGO + ' = ' + IntToStr(Codigo), False);
+ CloseBraket;
+ end;
+ Result := APagoProveedor;
+end;
+
+function TdmPagos.GetPagos(CodigoCategoria: Integer): IBizPagos;
+var
+ dtPagos: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtPagos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Pagos, dtPagos);
+ with dtPagos do
+ begin
+ case CodigoCategoria of
+ CLIENTE : BusinessRulesID := BIZ_PAGOSCLIENTE;
+ PROVEEDOR : BusinessRulesID := BIZ_PAGOSPROVEEDOR;
+ end;
+ Where.Clear;
+ Where.AddText('CC.' + fld_PagosCODIGOCATEGORIA + '=' + IntToStr(CODIGOCATEGORIA));
+ end;
+
+ Result := (dtPagos as IBizPagos);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+function TdmPagos.GetPagosCliente: IBizPagosCliente;
+var
+ APagosCliente: IBizPagosCliente;
+begin
+ APagosCliente := (GetPagos(CLIENTE) as IBizPagosCliente);
+ Result := APagosCliente;
+end;
+
+function TdmPagos.GetPagosProveedor: IBizPagosProveedor;
+var
+ APagosProveedor: IBizPagosProveedor;
+begin
+ APagosProveedor := (GetPagos(PROVEEDOR) as IBizPagosProveedor);
+ Result := APagosProveedor;
+end;
+
+procedure TdmPagos.Preview(Const Codigo: Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvPagos).GenerateReport(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
+var
+// dtContactos: TDACDSDataTable;
+// dtCategorias: TDACDSDataTable;
+// ACursor: TCursor;
+begin
+{ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtContactos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Contactos, dtContactos);
+ dtContactos.BusinessRulesID := 'BizCliente';
+
+ dtCategorias := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_CategoriasContacto, dtCategorias);
+ dtCategorias.BusinessRulesID := 'BizCategoria';
+ (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
+
+ Result := (dtContactos as IBizCliente);
+ GetCliente(Result, Codigo);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+}
+
+{function TdmPagos.GetItem(Codigo: Integer): IBizAlmacen;
+var
+ AAlmacen: IBizAlmacen;
+begin
+ AAlmacen := GetItems;
+ with AAlmacen.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.AddCondition(fld_ALMACENESCODIGO, cEqual, Codigo);
+ Active := True;
+ end;
+ Result := AAlmacen;
+end;
+}
+
+procedure TdmPagos.Print(Const Codigo: Integer);
+var
+ AStream: TMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AStream := Binary.Create;
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RemoteService as ISrvPagos).GenerateReport(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPagos.PuedoEliminarAlmacen(Codigo: Integer): Boolean;
+begin
+// Result := (RORemoteService as IsrvAlmacenes).PuedoEliminarAlmacen(Codigo);
+end;
+
+initialization
+ dmPagos := TdmPagos.Create(nil);
+
+finalization
+ FreeAndNil(dmPagos);
+
+end.
+
diff --git a/Modulos/Pagos/Cliente/uEditorAlmacen.dfm b/Modulos/Pagos/Cliente/uEditorAlmacen.dfm
new file mode 100644
index 0000000..98f60a4
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorAlmacen.dfm
@@ -0,0 +1,126 @@
+inherited fEditorAlmacen: TfEditorAlmacen
+ Left = 374
+ Top = 273
+ HorzScrollBar.Visible = False
+ VertScrollBar.Range = 0
+ VertScrollBar.Visible = False
+ BorderStyle = bsDialog
+ Caption = 'Ficha de almac'#233'n'
+ ClientHeight = 463
+ ClientWidth = 634
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 634
+ Caption = 'Almac'#233'n'
+ inherited Image1: TImage
+ Left = 607
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000
+ 00001008060000001FF3FF610000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB51930000022E4944415478DA8D93CF6BD3
+ 6018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83DC87619781A
+ 1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5A31DD8CCBA
+ FEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B02C0B8220E0
+ F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A62368DCCAB69B0
+ B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A4D51F83987
+ 99EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127A8B90C3ECD
+ 3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D7480C3F974
+ 12AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D129D9D413ED4
+ 154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC1F80655A30
+ 8C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D13866EC344
+ 33F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2AADB02DAEF
+ 9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D352AD17564
+ 3E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE3AB2F96C01
+ E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A312B24AB058
+ 2C2110946907282C61BA3588442221B882C343E75C50A30093B10484D849EAD5
+ 3AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2C791891C71
+ 618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C6DF9256E86
+ 59FD02D3B7960923D6946A0000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 634
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ DockPos = 0
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem6: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem21: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem22: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem9: TTBXItem
+ Visible = False
+ end
+ end
+ inherited TBXSubmenuItem1: TTBXSubmenuItem
+ inherited TBXItem32: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem31: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem13: TTBXSeparatorItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 634
+ Height = 368
+ inherited pagGeneral: TTabSheet
+ Constraints.MinHeight = 140
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 444
+ Width = 634
+ end
+ inherited EditorActionList: TActionList
+ Top = 128
+ end
+ inherited SmallImages: TPngImageList
+ Top = 112
+ end
+ inherited dsDataTable: TDADataSource [6]
+ OnDataChange = dsDataTableDataChange
+ Left = 168
+ Top = 120
+ end
+ inherited LargeImages: TPngImageList [7]
+ Top = 112
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorAlmacen.pas b/Modulos/Pagos/Cliente/uEditorAlmacen.pas
new file mode 100644
index 0000000..72a4555
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorAlmacen.pas
@@ -0,0 +1,150 @@
+unit uEditorAlmacen;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
+ uViewAlmacen, uBizAlmacenes, JvNavigationPane, ActnList,
+ uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
+ TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
+ uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
+ TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
+ JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
+
+ uViewAlmacenes;
+
+type
+ IEditorAlmacen = interface(IEditorDBItem)
+ ['{BADE8E8B-B0BC-4759-B2EE-4B4082827BE0}']
+ function GetAlmacen: IBizAlmacen;
+ procedure SetAlmacen(const Value: IBizAlmacen);
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ end;
+
+ TfEditorAlmacen = class(TfEditorDBItem, IEditorAlmacen)
+
+ procedure FormShow(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure actEliminarExecute(Sender: TObject);
+ private
+ FAlmacen: IBizAlmacen;
+ FViewAlmacen : IViewAlmacen;
+ protected
+ function GetAlmacen: IBizAlmacen; virtual;
+ procedure SetAlmacen(const Value: IBizAlmacen); virtual;
+
+ function GetViewAlmacen: IViewAlmacen;
+ procedure SetViewAlmacen(const Value: IViewAlmacen);
+ property ViewAlmacen: IViewAlmacen read GetViewAlmacen write
+ SetViewAlmacen;
+ public
+ property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uCustomEditor, uDataModuleAlmacenes, uDataModuleBase, uEditorUtils;
+
+function ShowEditorAlmacen (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorAlmacen;
+begin
+ AEditor := TfEditorAlmacen.Create(Application);
+ try
+ AEditor.Almacen := (ABizObject as IBizAlmacen);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{
+******************************* TfEditorAlmacen *******************************
+}
+function TfEditorAlmacen.GetAlmacen: IBizAlmacen;
+begin
+ Result := FAlmacen;
+end;
+
+function TfEditorAlmacen.GetViewAlmacen: IViewAlmacen;
+begin
+ Result := FViewAlmacen;
+end;
+
+procedure TfEditorAlmacen.SetAlmacen(const Value: IBizAlmacen);
+begin
+ FAlmacen := Value;
+ dsDataTable.DataTable := FAlmacen.DataTable;
+
+ if Assigned(FViewAlmacen) and Assigned(Almacen) then
+ FViewAlmacen.Almacen := Almacen;
+end;
+
+procedure TfEditorAlmacen.SetViewAlmacen(const Value: IViewAlmacen);
+begin
+ FViewAlmacen := Value;
+
+ if Assigned(FViewAlmacen) and Assigned(Almacen) then
+ FViewAlmacen.Almacen := Almacen;
+end;
+
+procedure TfEditorAlmacen.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewAlmacen) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Almacen) then
+ raise Exception.Create('No hay ningún almacén asignado');
+
+ Almacen.DataTable.Active := True;
+ FViewAlmacen.ShowEmbedded(pagGeneral);
+ FViewAlmacen.SetFocus;
+end;
+
+destructor TfEditorAlmacen.Destroy;
+begin
+ FViewAlmacen := NIL;
+ FAlmacen := NIL;
+ inherited;
+end;
+
+constructor TfEditorAlmacen.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewAlmacen := CreateView(TfrViewAlmacen) as IViewAlmacen;
+end;
+
+procedure TfEditorAlmacen.dsDataTableDataChange(Sender: TObject;
+ Field: TField);
+begin
+ inherited;
+ if Assigned(FAlmacen) and (not (FAlmacen.DataTable.Fetching) or
+ not (FAlmacen.DataTable.Opening) or not (FAlmacen.DataTable.Closing)) then
+ begin
+ if Length(FAlmacen.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo almacén'
+ else
+ JvNavPanelHeader.Caption := 'Almacén - ' + FAlmacen.Nombre;
+ Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorAlmacen.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este almacén?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+initialization
+ RegisterEditor(IBizAlmacen, ShowEditorAlmacen, etItem);
+
+end.
+
diff --git a/Modulos/Pagos/Cliente/uEditorPago.ddp b/Modulos/Pagos/Cliente/uEditorPago.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPago.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPago.dfm b/Modulos/Pagos/Cliente/uEditorPago.dfm
new file mode 100644
index 0000000..022b2a4
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPago.dfm
@@ -0,0 +1,25 @@
+inherited fEditorPago: TfEditorPago
+ Left = 452
+ Top = 246
+ Caption = 'Nuevo pago'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Nuevo pago'
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxMain: TTBXToolbar
+ inherited TBXSeparatorItem2: TTBXSeparatorItem
+ Visible = True
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ Visible = False
+ end
+ inherited actModificar: TAction
+ Visible = False
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPago.pas b/Modulos/Pagos/Cliente/uEditorPago.pas
new file mode 100644
index 0000000..f92048e
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPago.pas
@@ -0,0 +1,113 @@
+unit uEditorPago;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
+
+ uBizPagos, uViewPago, JvComponentBase;
+
+type
+ IEditorPago = interface(IEditorDBItem)
+ ['{D322A0F5-AFB7-47A6-A223-778FFE2FEB78}']
+ function GetPago: IBizPagos;
+ procedure SetPago(const Value: IBizPagos);
+ property Pago: IBizPagos read GetPago write SetPago;
+ end;
+
+ TfEditorPago = class(TfEditorDBItem, IEditorPago)
+ procedure FormShow(Sender: TObject);
+ procedure actGuardarExecute(Sender: TObject);
+ procedure actGuardarCerrarExecute(Sender: TObject);
+ private
+ FPago: IBizPagos;
+ FViewPago : IViewPago;
+ protected
+ function GetPago: IBizPagos; virtual;
+ procedure SetPago(const Value: IBizPagos); virtual;
+
+ function GetViewPago: IViewPago;
+ procedure SetViewPago(const Value: IViewPago);
+ property ViewPago: IViewPago read GetViewPago write SetViewPago;
+ public
+ property Pago: IBizPagos read GetPago write SetPago;
+ destructor Destroy; override;
+ end;
+
+var
+ fEditorPago: TfEditorPago;
+
+implementation
+
+{$R *.dfm}
+
+{ TfEditorPago }
+
+destructor TfEditorPago.Destroy;
+begin
+ FViewPago := NIL;
+ FPago := NIL;
+ inherited;
+end;
+
+procedure TfEditorPago.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewPago) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Pago) then
+ raise Exception.Create('No hay ningún pago asignado');
+
+ Pago.DataTable.Active := True;
+ FViewPago.ShowEmbedded(pagGeneral);
+ FViewPago.SetFocus;
+end;
+
+function TfEditorPago.GetPago: IBizPagos;
+begin
+ Result := FPago;
+end;
+
+function TfEditorPago.GetViewPago: IViewPago;
+begin
+ Result := FViewPago;
+end;
+
+procedure TfEditorPago.SetPago(const Value: IBizPagos);
+begin
+ FPago := Value;
+ dsDataTable.DataTable := FPago.DataTable;
+
+ if Assigned(FViewPago) and Assigned(Pago) then
+ FViewPago.Pago := Pago;
+end;
+
+procedure TfEditorPago.SetViewPago(const Value: IViewPago);
+begin
+ FViewPago := Value;
+
+ if Assigned(FViewPago) and Assigned(Pago) then
+ FViewPago.Pago := Pago;
+end;
+
+procedure TfEditorPago.actGuardarExecute(Sender: TObject);
+begin
+ inherited;
+ //Necesario para automatizar los pagos de albaranes
+ ModalResult := mrOK;
+end;
+
+procedure TfEditorPago.actGuardarCerrarExecute(Sender: TObject);
+begin
+ inherited;
+ //Necesario para automatizar los pagos de albaranes
+ ModalResult := mrOK;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uEditorPagoCliente.ddp b/Modulos/Pagos/Cliente/uEditorPagoCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagoCliente.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagoCliente.dfm b/Modulos/Pagos/Cliente/uEditorPagoCliente.dfm
new file mode 100644
index 0000000..8c5b10f
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagoCliente.dfm
@@ -0,0 +1,73 @@
+inherited fEditorPagoCliente: TfEditorPagoCliente
+ Left = 440
+ Top = 349
+ Width = 851
+ Height = 402
+ Caption = 'Nuevo cobro de cliente'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 843
+ Caption = 'Nuevo cobro de cliente'
+ inherited Image1: TImage
+ Left = 816
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 843
+ end
+ inherited pgPaginas: TPageControl
+ Width = 843
+ Height = 273
+ inherited pagGeneral: TTabSheet
+ inline frViewPagoCliente1: TfrViewPagoCliente
+ Left = 0
+ Top = 0
+ Width = 835
+ Height = 245
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosPago: TfrViewDatosPago
+ ParentFont = True
+ inherited eDescripcion: TLabel
+ Width = 58
+ end
+ inherited eImporte: TLabel
+ Width = 42
+ end
+ inherited Bevel1: TBevel
+ Width = 349
+ end
+ inherited edtImporte: TcxDBCurrencyEdit
+ Style.Font.Name = 'Tahoma'
+ Style.IsFontAssigned = True
+ end
+ end
+ inherited frViewContacto: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 299
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewContactoedtlNombrePropertiesChange
+ end
+ end
+ inherited frListaCuentas1: TfrListaCuentas
+ inherited cxCuenta: TcxDBLookupComboBox
+ DataBinding.DataSource = frViewPagoCliente1.DADataSource
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 349
+ Width = 843
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPagoCliente.pas b/Modulos/Pagos/Cliente/uEditorPagoCliente.pas
new file mode 100644
index 0000000..5cd0f36
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagoCliente.pas
@@ -0,0 +1,105 @@
+unit uEditorPagoCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPago, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView,
+ uViewBase, uViewPago, uViewPagoCliente, JvComponentBase;
+
+type
+ IEditorPagoCliente = interface(IEditorPago)
+ ['{7C06A739-2333-435B-B6B6-09D924DA20CB}']
+ end;
+
+ TfEditorPagoCliente = class(TfEditorPago, IEditorPagoCliente)
+ frViewPagoCliente1: TfrViewPagoCliente;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure frViewContactoedtlNombrePropertiesChange(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorPagoCliente: TfEditorPagoCliente;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorPagoCliente }
+
+uses uEditorUtils, uBizPagos, cxDBEdit;
+
+function ShowEditorPagoCliente (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPagoCliente;
+begin
+ AEditor := TfEditorPagoCliente.Create(Application);
+ try
+ AEditor.Pago := (ABizObject as IBizPagosCliente);
+
+ //Es llamado desde el albarán para generar automáticamente el cobro
+ //Solo podremos en este caso guardar y cerrar
+ if (Length(AEditor.Pago.DESCRIPCION) > 0) then
+ begin
+ AEditor.actGuardar.Visible := False;
+ AEditor.actRefrescar.Enabled := False;
+ AEditor.actRefrescar.Visible := False;
+ AEditor.actPrevisualizar.Enabled := False;
+ AEditor.actPrevisualizar.Visible := False;
+ AEditor.actImprimir.Enabled := False;
+ AEditor.actImprimir.Visible := False;
+ end;
+
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+procedure TfEditorPagoCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este cobro de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+constructor TfEditorPagoCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+ //ViewPago := CreateView(TfrViewPagoCliente) as IViewPagoCliente;
+ ViewPago := frViewPagoCliente1;
+end;
+
+procedure TfEditorPagoCliente.dsDataTableDataChange(Sender: TObject; Field: TField);
+begin
+ inherited;
+ if Assigned(Pago) and (not (Pago.DataTable.Fetching) or
+ not (Pago.DataTable.Opening) or not (Pago.DataTable.Closing)) then
+ begin
+ if Length(Pago.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo cobro de cliente'
+ else
+ JvNavPanelHeader.Caption := Pago.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorPagoCliente.frViewContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length((Sender as TcxDBTextEdit).Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo cobro de cliente'
+ else
+ JvNavPanelHeader.Caption := 'Cobro de ' + (Sender as TcxDBTextEdit).Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+initialization
+ RegisterEditor(IBizPagosCliente, ShowEditorPagoCliente, etItem);
+
+end.
diff --git a/Modulos/Pagos/Cliente/uEditorPagoProveedor.ddp b/Modulos/Pagos/Cliente/uEditorPagoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagoProveedor.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagoProveedor.dfm b/Modulos/Pagos/Cliente/uEditorPagoProveedor.dfm
new file mode 100644
index 0000000..b4fd607
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagoProveedor.dfm
@@ -0,0 +1,61 @@
+inherited fEditorPagoProveedor: TfEditorPagoProveedor
+ Left = 331
+ Top = 386
+ Width = 851
+ Height = 402
+ Caption = 'Nuevo pago a proveedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 843
+ Caption = 'Nuevo pago a proveedor'
+ inherited Image1: TImage
+ Left = 816
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 843
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem23: TTBXItem
+ Visible = False
+ end
+ inherited TBXItem3: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 843
+ Height = 273
+ inherited pagGeneral: TTabSheet
+ inline frViewPagoProveedor1: TfrViewPagoProveedor
+ Left = 0
+ Top = 0
+ Width = 835
+ Height = 245
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewContacto: TfrViewDatosYSeleccionContacto
+ Left = 453
+ inherited Bevel1: TBevel
+ Width = 299
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewContactoedtlNombrePropertiesChange
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 349
+ Width = 843
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPagoProveedor.pas b/Modulos/Pagos/Cliente/uEditorPagoProveedor.pas
new file mode 100644
index 0000000..3531e07
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagoProveedor.pas
@@ -0,0 +1,91 @@
+unit uEditorPagoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPago, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView,
+ uViewBase, uViewPago, uViewPagoProveedor;
+
+type
+ IEditorPagoProveedor = interface(IEditorPago)
+ ['{E285981D-4C9F-4794-BAB6-91172BD757BF}']
+ end;
+
+ TfEditorPagoProveedor = class(TfEditorPago, IEditorPagoProveedor)
+ frViewPagoProveedor1: TfrViewPagoProveedor;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure dsDataTableDataChange(Sender: TObject; Field: TField);
+ procedure frViewContactoedtlNombrePropertiesChange(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorPagoProveedor: TfEditorPagoProveedor;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorPagoProveedor }
+
+uses uEditorUtils, uBizPagos, cxDBEdit;
+
+function ShowEditorPagoProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPagoProveedor;
+begin
+ AEditor := TfEditorPagoProveedor.Create(Application);
+ try
+ AEditor.Pago := (ABizObject as IBizPagosProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+procedure TfEditorPagoProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este pago a proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+constructor TfEditorPagoProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewPago := CreateView(TfrViewPagoProveedor) as IViewPagoProveedor;
+ ViewPago := frViewPagoProveedor1;
+end;
+
+procedure TfEditorPagoProveedor.dsDataTableDataChange(Sender: TObject; Field: TField);
+begin
+ inherited;
+ if Assigned(Pago) and (not (Pago.DataTable.Fetching) or
+ not (Pago.DataTable.Opening) or not (Pago.DataTable.Closing)) then
+ begin
+ if Length(Pago.NOMBRE) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo pago a proveedor'
+ else
+ JvNavPanelHeader.Caption := Pago.NOMBRE;
+ Self.Caption := JvNavPanelHeader.Caption;
+ end;
+end;
+
+procedure TfEditorPagoProveedor.frViewContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length((Sender as TcxDBTextEdit).Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo cobro de proveedor'
+ else
+ JvNavPanelHeader.Caption := 'Cobro de ' + (Sender as TcxDBTextEdit).Text;
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+initialization
+ RegisterEditor(IBizPagosProveedor, ShowEditorPagoProveedor, etItem);
+
+end.
diff --git a/Modulos/Pagos/Cliente/uEditorPagos.ddp b/Modulos/Pagos/Cliente/uEditorPagos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagos.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagos.dfm b/Modulos/Pagos/Cliente/uEditorPagos.dfm
new file mode 100644
index 0000000..d2dda22
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagos.dfm
@@ -0,0 +1,628 @@
+inherited fEditorPagos: TfEditorPagos
+ Left = 345
+ Top = 212
+ Caption = 'Lista de pagos'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de pagos'
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 411
+ inherited tbxEditFiltro: TTBXEditItem
+ EditOptions = [tboUseEditWhenVertical]
+ end
+ end
+ end
+ inherited EditorActionList: TActionList
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ end
+ inherited actDuplicar: TAction
+ Visible = False
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325
+ 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF
+ FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77
+ C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC
+ 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A
+ 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334
+ FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B
+ 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764
+ C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80
+ D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400
+ A0BEE1E16734A0290000000049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPagos.pas b/Modulos/Pagos/Cliente/uEditorPagos.pas
new file mode 100644
index 0000000..4ce7039
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagos.pas
@@ -0,0 +1,108 @@
+unit uEditorPagos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uViewPagos, uBizPagos, ActnList, DBActns, uViewGrid,
+ Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
+ TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
+ JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
+ uViewBarraSeleccion, pngimage, JvComponentBase;
+
+type
+ IEditorPagos = interface(IEditorGrid)
+ ['{0BCA3B66-90C6-4BD6-8436-EC80462E9A9B}']
+ function GetPagos: IBizPagos;
+ procedure SetPagos(const Value: IBizPagos);
+ property Pagos: IBizPagos read GetPagos write SetPagos;
+ end;
+
+ TfEditorPagos = class(TfEditorGrid, IEditorPagos)
+ procedure FormShow(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ private
+ FPagos: IBizPagos;
+ protected
+ function GetPagos: IBizPagos; virtual;
+ procedure SetPagos(const Value: IBizPagos); virtual;
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ property Pagos: IBizPagos read GetPagos write SetPagos;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+uses
+ uCustomEditor, uDataModulePagos, uEditorDBBase, uEditorUtils,
+ cxGrid, cxGridCustomTableView, uDBSelectionList;
+ //, uListaPagos;
+// uEditorAlmacen;
+
+{$R *.dfm}
+
+{
+****************************** TfEditorPagos *******************************
+}
+procedure TfEditorPagos.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(ViewGrid) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Pagos) then
+ raise Exception.Create('No hay ningún Pago asignado');
+
+ Pagos.DataTable.Active := True;
+end;
+
+function TfEditorPagos.GetPagos: IBizPagos;
+begin
+ Result := FPagos;
+end;
+
+procedure TfEditorPagos.SetPagos(const Value: IBizPagos);
+begin
+ FPagos := Value;
+ dsDataTable.DataTable := FPagos.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewPagos).Pagos := Pagos;
+end;
+
+procedure TfEditorPagos.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Pagos.Insert;
+ Pagos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPagos.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Pagos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPagos.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Pagos) then
+ (ViewGrid as IViewPagos).Pagos := Pagos;
+end;
+
+destructor TfEditorPagos.Destroy;
+begin
+ FPagos := NIL;
+ inherited;
+end;
+
+end.
+
diff --git a/Modulos/Pagos/Cliente/uEditorPagosCliente.ddp b/Modulos/Pagos/Cliente/uEditorPagosCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagosCliente.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagosCliente.dfm b/Modulos/Pagos/Cliente/uEditorPagosCliente.dfm
new file mode 100644
index 0000000..a89dd14
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagosCliente.dfm
@@ -0,0 +1,553 @@
+inherited fEditorPagosCliente: TfEditorPagosCliente
+ Left = 172
+ Top = 191
+ Caption = 'Lista de cobros de cliente'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de cobros de cliente'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000002744944415478DA63FCFFFF3F
+ 032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF3F869FBFFE
+ 80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05AAFFF5F72F
+ C3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC373F8F6291
+ F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F0824169A520D8
+ 928ABFAB705B00022036B2E11718CF33189F346660B809E4A833309C353FCBA0
+ F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC35AFC3E8019
+ CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61E0BDC2C3F0
+ 5AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC1C684124D0
+ 82C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E52543D49E0086
+ 0B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D83F02D2186
+ 27324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C365964B9038B808
+ 94D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC186A9C6BC196
+ FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D03B1CCB31F
+ 0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D0609A7200645
+ CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E2294F73312D98
+ B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080BBA27CF2758
+ 4C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF93124C404B
+ C3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290E196969AAB
+ B0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE00A1E200087
+ 355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE426082}
+ 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001124944415478DA
+ 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
+ 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
+ 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
+ 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
+ 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
+ E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
+ 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
+ CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
+ 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end>
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPagosCliente.pas b/Modulos/Pagos/Cliente/uEditorPagosCliente.pas
new file mode 100644
index 0000000..7d5ba85
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagosCliente.pas
@@ -0,0 +1,66 @@
+unit uEditorPagosCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPagos, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls,
+ JvNavigationPane, JvComponentBase;
+
+type
+ IEditorPagosCliente = interface(IEditorPagos)
+ ['{2260CC06-258F-4C2C-8ED6-69782EE6F5D0}']
+ end;
+
+ TfEditorPagosCliente = class(TfEditorPagos, IEditorPagosCliente)
+ procedure actEliminarExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorPagosCliente: TfEditorPagosCliente;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorPagosCliente }
+
+uses uEditorUtils,
+ uViewPagosCliente, uBizPagos, uViewPagos;
+
+function ShowEditorPagosCliente (ABizObject : TDADataTableRules): TModalResult;
+var
+ AEditor: TfEditorPagosCliente;
+begin
+ AEditor := TfEditorPagosCliente.Create(Application);
+ try
+ AEditor.Pagos := (ABizObject as IBizPagosCliente);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+procedure TfEditorPagosCliente.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este pago de cliente?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+constructor TfEditorPagosCliente.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewPagosCliente) as IViewPagos;
+end;
+
+initialization
+ RegisterEditor(IBizPagosCliente, ShowEditorPagosCliente, etItems);
+
+end.
diff --git a/Modulos/Pagos/Cliente/uEditorPagosClientes.ddp b/Modulos/Pagos/Cliente/uEditorPagosClientes.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagosClientes.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagosProveedor.ddp b/Modulos/Pagos/Cliente/uEditorPagosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uEditorPagosProveedor.ddp differ
diff --git a/Modulos/Pagos/Cliente/uEditorPagosProveedor.dfm b/Modulos/Pagos/Cliente/uEditorPagosProveedor.dfm
new file mode 100644
index 0000000..889f357
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagosProveedor.dfm
@@ -0,0 +1,117 @@
+inherited fEditorPagosProveedor: TfEditorPagosProveedor
+ Caption = 'fEditorPagosProveedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ 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
+ 4D410000B18E7CFB51930000028C4944415478DADD945F4853511CC7BF776469
+ 42ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EAB184407DC8
+ 87E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B43A428EFEE
+ EE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B97531405F934EE
+ FF00F43A47F34689026C7555392D1425059224232C882C8AB2CC221B13172212
+ 1AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C7820499BC672E8A
+ 687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE71603A50C2
+ 84BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC0575657388AC7C4541
+ D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B973E7D066B
+ E2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E10D56A2DEFA
+ 12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130F11A9D1B83
+ 4B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5F594670788
+ CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB5D403278B2
+ 333D2016229105BE5F417606023F85F585467606DBE44D08F37C9238B59480D8
+ 2EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815ED3951E10BD
+ 48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968AAB37D377BF
+ 02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104EE0C5D4F06
+ 743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EFE1E38CBF09
+ CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0866E17FF22
+ 178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75FF56C881D22
+ 006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF272521AB920B
+ 52530000000049454E44AE426082}
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uEditorPagosProveedor.pas b/Modulos/Pagos/Cliente/uEditorPagosProveedor.pas
new file mode 100644
index 0000000..7f9d73f
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uEditorPagosProveedor.pas
@@ -0,0 +1,50 @@
+unit uEditorPagosProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPagos, Menus, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
+ TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls,
+ JvNavigationPane, JvComponentBase;
+
+type
+ IEditorPagosProveedor = interface(IEditorPagos)
+ ['{FC3BF723-7AE6-4468-AF8E-CA9FA8A912D9}']
+ end;
+
+ TfEditorPagosProveedor = class(TfEditorPagos, IEditorPagosProveedor)
+ procedure actEliminarExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ fEditorPagosProveedor: TfEditorPagosProveedor;
+
+implementation
+
+{$R *.dfm}
+{ TfEditorPagosProveedor }
+
+uses uEditorUtils,
+ uViewPagosProveedor, uBizPagos, uViewPagos;
+
+procedure TfEditorPagosProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este pago de proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+constructor TfEditorPagosProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewPagosProveedor) as IViewPagos;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uPluginControllerPagos.ddp b/Modulos/Pagos/Cliente/uPluginControllerPagos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uPluginControllerPagos.ddp differ
diff --git a/Modulos/Pagos/Cliente/uPluginControllerPagos.dfm b/Modulos/Pagos/Cliente/uPluginControllerPagos.dfm
new file mode 100644
index 0000000..915208a
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uPluginControllerPagos.dfm
@@ -0,0 +1,485 @@
+object ModulePagos: TModulePagos
+ OldCreateOrder = True
+ Description = 'Pagos'
+ ModuleMenu = MainMenu
+ ModuleName = 'Pagos'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 700
+ Top = 466
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000028C4944415478DADD945F4853511C
+ C7BF77646942ABE9A061F6BF8690D443427B88A2321123166EDAA21E122308EA
+ B184407DC887E8A932F0611A3542325F0A0729B432A849CA68CA1CA2B86C0C4B
+ 43A428EFEEEE9FCE39E8DA9FBB7F0F7BE9073F7EE7DE7BCEF7737EBFF33B9753
+ 1405F934EEFF00F43A47F34689026C7555392D1425059224232C882C8AB2CC22
+ 1B131722121AAFB6C6030E5BDE6514964540126444C2448CB8F0538448C78204
+ 99BC672E8A687FA045CFB357C980B1FEE371A033B53EB4365D4B06911D53AFAE
+ 71603A50C284BF85CEA174CB73709284B647BAD4006A741C2B3EBEFC05756573
+ 88AC7C4541D17638433B602C324010049C35F7C33FA1C5C2623D9B5B5AEC407B
+ 973E7D066BE2E5C5C308FE3EC622151F5A3A8AD3BAB704B21B538B5530EA47E1
+ 0D56A2DEFA12C3AE26E8373E25352419D80DEA80C4D21834BD98976DD8AA7130
+ F11A9D1B834B2654970C6166D986FDDA018C7F3F8586F303981C59C7C4E941B5
+ F594670788CF60161C0AA18067194C840EA2B2CC8B4FD3FB70E1D220263F70AB
+ 5D403278B2333D2016229105BE5F417606023F85F585467606DBE44D08F37C92
+ 38B59480D82EA2ED6736FBD172B1994164D6EB52D4E973A3CD19155F8C5C815E
+ D3951E10BD48B4B77985C50D073CF86C79AF7A2FF4B596B89DAF992A20F1968A
+ AB37D377BF02FA9356EC3D72173323B7D89C85D931708100BA5DF3B0DF3E9104
+ EE0C5D4F06743A5EABEE72F31F0FF6FCB033B1446BE9B89112EC29B8FC0F70EF
+ E1E38CBF09CFCD39D5F7CD1DAEE4B9449C1A03701C9751FCE39D5D4A2E6522D0
+ 866E17FF22178095843EB532D9DFACA8420980CB0A40C54DA68A3EB56F6EB75F
+ F56C881D22006FB680B4E5A13B4DB536EB0C52958718AB755A403E2DEF80BF27
+ 2521AB920B52530000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = SmallImages
+ Left = 40
+ Top = 72
+ object actPagosCliente: TAction
+ Category = 'Ventas'
+ Caption = 'Cobros de cliente'
+ ImageIndex = 0
+ OnExecute = actPagosClienteExecute
+ end
+ object actPagosProveedor: TAction
+ Category = 'Compras'
+ Caption = 'Pagos a proveedor'
+ ImageIndex = 0
+ OnExecute = actPagosProveedorExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object menu: TMenuItem
+ Tag = 100
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 1
+ OnClick = actPagosClienteExecute
+ object PagosCliente: TMenuItem
+ Tag = 5000
+ Action = actPagosCliente
+ Caption = 'Pagos de Cliente'
+ end
+ object N1: TMenuItem
+ Tag = 101
+ Caption = '-'
+ end
+ end
+ object Compras1: TMenuItem
+ Caption = '&Compras'
+ GroupIndex = 1
+ ImageIndex = 0
+ object Pagosaproveedor1: TMenuItem
+ Tag = 5000
+ Action = actPagosProveedor
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000012D4944415478DA63FCFFFF3F0325
+ 80916203966D3945B60991DEA68C6003B42CC41852B26F6355F4E7E77F86DFDF
+ FE31FCFEFC97E1FBFBDF60F68E73460C89D19D0CE7764C4318000230434E2E77
+ C63048416B135C3308A018D0B7F8235C214CB30CFF5E880B3E3F6278F12F11CC
+ 16175BC3F0FFF76F06865F7F18E4EC4E103600A41904600688092E076B66001A
+ 22E77C16BB01BFBEFC6338BFD915C30BC89A19FFFC619075BF881A0620FF8334
+ FFFAF297E1D75760A07DF9C3B032A610670C641FF64018D03D793E8682A9B63B
+ 184C53EA197E89A933309DE86638BFEF3CC3DC7DCF19A6B478C1D973F67E6764
+ C465C3B116C5D003AFD556DDBD7C10AB7CB293649865F5BDD5F80CF84FB10B80
+ D42A9042AABA00A4D1AAE6FE6A901A503E22D90573F7FD80EB011B40696E0400
+ A0BEE1E16734A0290000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000002F94944415478DAED946B48936114
+ C7FFAFDA55CD5CD32E46609161D087082129E8B2794B50495B5EBE140C83A2CF
+ 5DD13E9804111195502441068D04D32C2DCD6181592D2F594CF2B291A6DB9C9A
+ 3AB3E9DE4BCFFB583ADBC539621FA2030FE7BCCF7B38BF739EFFF3BE8C2008F0
+ A531FF81FF06F0C1538DCFA833C0ACE418AF0AB09C008EE389E7A9A7316F1753
+ 4F72C8DEE16379738131992F3C06092C814D0AB05949C1499EC6A2E726391AF3
+ 53FCF462593434C9A0EFEDC3D9C2DB8E408D4A3E079CBCAF1B79B9B92EC13CE9
+ 9CA71371484C54A1B367250519BF1E8454A202C3F2A86F96A1B7DFE01A289A18
+ 3B837D1CEE41526427584B3F0282D7A15ABF195181AB29505C29296568D70661
+ 602083E64B034BA06E96A3DF64723FA13D6C7D481DB871330C5C268D4558EDE0
+ 1EC449EB0874033A0CB1D8145401FFE070B4E9B7233DBD122FEB8F206CF93D90
+ 2E50D3120FD3A0D939D0D951AEF55711D10418F82CACF12BA1B07869036A0677
+ 412E7D8EAED14C44853CA1B96D2639148A2A68DFF95198B8AA5A1330343CE439
+ 904E68311260CEAF097BC060290458E9849FBEEC40B4A49A4EA8698F46764E2D
+ B48DC20CB0A23901639611F740671746D4483BDA4735B459745814BC916A1881
+ 20FA8EB5D91C60A29569E2F07D626CFE5BCA5A05A426E928542C68316A21E938
+ E3F6735992B6172B264261669508636ED1BDD2B73258ADE3EE2714619C75F6FB
+ 12FDFD832711A3CCC754F8162C1EF83C9DA77B4CFD88DE40FDF9E216DC39B77F
+ 4E138F2CC7B12C34C21138DFDFA3AB681B56C91488DA79091D6F4ED35CB3BE89
+ 7A3F5D37F5C56A036E141C70682223BFD111F8EC55ABDBE3EAEB7C8FADC6425A
+ D49919BE5971B5E894D32644E0CD6B57668197AFDF852716116841E58961B739
+ CA8B6AFBC7F2F680D4B41F8C843E5020C3301EC1447B5D10292C5447D280A258
+ 6D2DF51AE8A98EF60D1020E32DF01029984DC2341729E54795BBD3FE6CC02BA0
+ 088B8D8D7EB800FD6803645D20C00FDE003DD2EFF734CE6CC1404FF4FB9BC079
+ F5B33F3E97405F9ACF813F01DF078FC2BAE18F2B0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uPluginControllerPagos.pas b/Modulos/Pagos/Cliente/uPluginControllerPagos.pas
new file mode 100644
index 0000000..4f0d555
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uPluginControllerPagos.pas
@@ -0,0 +1,96 @@
+unit uPluginControllerPagos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCPagos = interface(IInterface)
+ ['{0FDA2A0E-9DC9-45AD-BADF-C27EA9D81B51}']
+ end;
+
+ TModulePagos = class(TModuleController, IMCPagos)
+ actPagosCliente: TAction;
+ menu: TMenuItem;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ PagosCliente: TMenuItem;
+ SmallImages: TPngImageList;
+ N1: TMenuItem;
+ actPagosProveedor: TAction;
+ Compras1: TMenuItem;
+ Pagosaproveedor1: TMenuItem;
+ procedure actPagosClienteExecute(Sender: TObject);
+ procedure actPagosProveedorExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, SysUtils, uDataModulePagos,
+ uEditorPagosCliente, uEditorPagosProveedor, uBizPagos;
+
+function GetModule : TModuleController;
+begin
+ Result := TModulePagos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModulePagos.actPagosClienteExecute(Sender: TObject);
+var
+ aObj: IEditorPagosCliente;
+ APagosCliente : IBizPagosCliente;
+begin
+ APagosCliente := dmPagos.GetPagosCliente;
+ aObj := TfEditorPagosCliente.Create(Application);
+ try
+ with aObj do
+ begin
+ Pagos := APagosCliente;
+ ShowEmbedded;
+ end;
+ finally
+ APagosCliente := NIL;
+ aObj := NIL;
+ end;
+end;
+
+procedure TModulePagos.actPagosProveedorExecute(Sender: TObject);
+var
+ aObj: IEditorPagosProveedor;
+ APagosProveedor : IBizPagosProveedor;
+begin
+ APagosProveedor := dmPagos.GetPagosProveedor;
+ aObj := TfEditorPagosProveedor.Create(Application);
+ try
+ with aObj do
+ begin
+ Pagos := APagosProveedor;
+ ShowEmbedded;
+ end;
+ finally
+ APagosProveedor := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModulePagos);
+
+finalization
+ UnRegisterModuleClass(TModulePagos);
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewDatosPago.ddp b/Modulos/Pagos/Cliente/uViewDatosPago.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewDatosPago.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewDatosPago.dfm b/Modulos/Pagos/Cliente/uViewDatosPago.dfm
new file mode 100644
index 0000000..b714910
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewDatosPago.dfm
@@ -0,0 +1,127 @@
+inherited frViewDatosPago: TfrViewDatosPago
+ Width = 446
+ Height = 97
+ Font.Name = 'MS Sans Serif'
+ DesignSize = (
+ 446
+ 97)
+ object eFecha: TLabel
+ Left = 16
+ Top = 36
+ Width = 33
+ Height = 13
+ Caption = 'Fecha:'
+ Transparent = True
+ end
+ object eDescripcion: TLabel
+ Left = 16
+ Top = 63
+ Width = 59
+ Height = 13
+ Caption = 'Descripci'#243'n:'
+ Transparent = True
+ end
+ object eImporte: TLabel
+ Left = 240
+ Top = 36
+ Width = 38
+ Height = 13
+ Caption = 'Importe:'
+ Transparent = True
+ end
+ object Bevel1: TBevel
+ Left = 99
+ Top = 8
+ Width = 341
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 87
+ Height = 13
+ Caption = 'Datos del pago'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object edtFecha: TcxDBDateEdit
+ Left = 82
+ Top = 32
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAPAGO'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.Kind = lfStandard
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ 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 = 119
+ end
+ object edtDescripcion: TcxDBTextEdit
+ Left = 82
+ Top = 59
+ DataBinding.DataField = 'DESCRIPCION'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ 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
+ Width = 347
+ end
+ object edtImporte: TcxDBCurrencyEdit
+ Left = 287
+ Top = 32
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTE'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = False
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Color = clInfoBk
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'MS Sans Serif'
+ Style.Font.Style = []
+ Style.LookAndFeel.Kind = lfStandard
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clWindowText
+ Style.TextStyle = [fsBold]
+ StyleDisabled.LookAndFeel.Kind = lfStandard
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfStandard
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleFocused.TextColor = clWindowText
+ StyleHot.LookAndFeel.Kind = lfStandard
+ StyleHot.LookAndFeel.NativeStyle = True
+ StyleHot.TextColor = clWindowText
+ TabOrder = 2
+ Height = 21
+ Width = 141
+ end
+ object DADataSource: TDADataSource
+ Left = 160
+ Top = 65531
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewDatosPago.pas b/Modulos/Pagos/Cliente/uViewDatosPago.pas
new file mode 100644
index 0000000..a1918e5
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewDatosPago.pas
@@ -0,0 +1,38 @@
+unit uViewDatosPago;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxMemo, cxRichEdit, cxDBRichEdit, cxGraphics,
+ cxCurrencyEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox,
+ uBizPagos, uBizCuentas, uCustomView, uListaCuentas;
+
+type
+ TfrViewDatosPago = class(TfrViewBase)
+ eFecha: TLabel;
+ edtFecha: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eDescripcion: TLabel;
+ edtDescripcion: TcxDBTextEdit;
+ eImporte: TLabel;
+ edtImporte: TcxDBCurrencyEdit;
+ Bevel1: TBevel;
+ Label5: TLabel;
+ private
+ public
+ end;
+
+var
+ frViewDatosPago: TfrViewDatosPago;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrViewDatosPago }
+
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewDatosPagoCliente.ddp b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewDatosPagoCliente.dfm b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.dfm
new file mode 100644
index 0000000..158a120
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.dfm
@@ -0,0 +1,100 @@
+inherited frViewDatosPago: TfrViewDatosPago
+ Width = 360
+ Height = 112
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 112)
+ object Bevel1: TBevel
+ Left = 184
+ Top = 8
+ Width = 165
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 170
+ Height = 13
+ Caption = 'Datos de la factura de cliente'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 32
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 56
+ Width = 69
+ Height = 13
+ Caption = 'Fecha de alta:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 80
+ Width = 61
+ Height = 13
+ Caption = 'Vencimiento:'
+ end
+ object edtFecha: TcxDBDateEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAFACTURA'
+ DataBinding.DataSource = DADataSource
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtVencimiento: TcxDBDateEdit
+ Left = 100
+ Top = 76
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 28
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ Properties.ReadOnly = True
+ Style.Color = clInfoBk
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.Color = clMenuBar
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewDatosPagoCliente.pas b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.pas
new file mode 100644
index 0000000..98b6f27
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewDatosPagoCliente.pas
@@ -0,0 +1,35 @@
+unit uViewDatosPagoCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxMemo, cxRichEdit, cxDBRichEdit;
+
+type
+ TfrViewDatosPago = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFecha: TcxDBDateEdit;
+ Label3: TLabel;
+ edtVencimiento: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosPago: TfrViewDatosPago;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPago.ddp b/Modulos/Pagos/Cliente/uViewPago.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPago.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPago.dfm b/Modulos/Pagos/Cliente/uViewPago.dfm
new file mode 100644
index 0000000..2975156
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPago.dfm
@@ -0,0 +1,81 @@
+inherited frViewPago: TfrViewPago
+ Width = 834
+ Height = 245
+ ParentFont = True
+ inline frViewDatosPago: TfrViewDatosPago
+ Left = 0
+ Top = 0
+ Width = 446
+ Height = 97
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ end
+ inline frViewFormaPago: TfrViewFormaPago
+ Left = 0
+ Top = 112
+ Width = 457
+ Height = 113
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 349
+ end
+ inherited memFormaPago: TcxDBMemo
+ Height = 66
+ Width = 426
+ end
+ end
+ inline frViewContacto: TfrViewDatosYSeleccionContacto
+ Left = 455
+ Top = 0
+ Width = 377
+ Height = 214
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ end
+ inline frListaCuentas1: TfrListaCuentas
+ Left = 10
+ Top = 80
+ Width = 431
+ Height = 35
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Label3: TLabel
+ Left = 7
+ end
+ inherited cxCuenta: TcxDBLookupComboBox
+ DataBinding.DataField = 'CUENTA'
+ DataBinding.DataSource = DADataSource
+ Width = 346
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPago.pas b/Modulos/Pagos/Cliente/uViewPago.pas
new file mode 100644
index 0000000..9465aca
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPago.pas
@@ -0,0 +1,59 @@
+unit uViewPago;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
+ cxDropDownEdit, cxCalendar, cxDBEdit, DB, uDADataTable, StdCtrls, Mask,
+ DBCtrls, ExtCtrls, cxGraphics, uCustomView, AppEvnts,
+ uViewFormaPago, uBizPagos, uViewDatosYSeleccionContacto, uViewDatosPago,
+ uListaCuentas;
+
+type
+ IViewPago = interface(IViewBase)
+ ['{E25FF94C-E4F6-4839-AA33-58039FA11611}']
+ function GetPago: IBizPagos;
+ procedure SetPago(const Value: IBizPagos);
+ property Pago: IBizPagos read GetPago write SetPago;
+ end;
+
+ TfrViewPago = class(TfrViewBase, IViewPago)
+ DADataSource: TDADataSource;
+ frViewDatosPago: TfrViewDatosPago;
+ frViewFormaPago: TfrViewFormaPago;
+ frViewContacto: TfrViewDatosYSeleccionContacto;
+ frListaCuentas1: TfrListaCuentas;
+ private
+ FPago: IBizPagos;
+ protected
+ function GetPago: IBizPagos;
+ procedure SetPago(const Value: IBizPagos); virtual;
+ public
+ property Pago: IBizPagos read GetPago write SetPago;
+ end;
+
+implementation
+
+uses uBizContacto, uExceptions, uDataModuleCuentas;
+
+{$R *.dfm}
+
+function TfrViewPago.GetPago: IBizPagos;
+begin
+ Result := FPago;
+end;
+
+procedure TfrViewPago.SetPago(const Value: IBizPagos);
+begin
+ FPago := Value;
+ if Assigned(FPago) then
+ DADataSource.DataTable := FPago.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewFormaPago.DADataSource.DataTable := DADataSource.DataTable;
+ frViewDatosPago.DADataSource.DataTable := DADataSource.DataTable;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPagoCliente.ddp b/Modulos/Pagos/Cliente/uViewPagoCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPagoCliente.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPagoCliente.dfm b/Modulos/Pagos/Cliente/uViewPagoCliente.dfm
new file mode 100644
index 0000000..0dd985a
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagoCliente.dfm
@@ -0,0 +1,47 @@
+inherited frViewPagoCliente: TfrViewPagoCliente
+ inherited frViewDatosPago: TfrViewDatosPago
+ inherited Bevel1: TBevel
+ Left = 144
+ Width = 301
+ end
+ inherited Label5: TLabel
+ Width = 130
+ Caption = 'Datos cobro de cliente'
+ end
+ end
+ inherited frViewContacto: TfrViewDatosYSeleccionContacto
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 251
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton1: TToolButton
+ Caption = 'Elegir un cliente'
+ end
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ Caption = 'Dar de alta un cliente'
+ end
+ end
+ inherited ToolBar2: TToolBar
+ Width = 182
+ ButtonWidth = 178
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ end
+ inherited frListaCuentas1: TfrListaCuentas
+ inherited cxCuenta: TcxDBLookupComboBox
+ DataBinding.DataSource = DADataSource
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPagoCliente.pas b/Modulos/Pagos/Cliente/uViewPagoCliente.pas
new file mode 100644
index 0000000..727b1f4
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagoCliente.pas
@@ -0,0 +1,45 @@
+unit uViewPagoCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPago, DB, uDADataTable, uViewDatosYSeleccionContacto,
+ uViewFormaPago, uCustomView, uViewBase, uViewDatosPago, uBizPagos,
+ uListaCuentas;
+
+type
+ IViewPagoCliente = interface(IViewPago)
+ ['{2EBD9235-AF8F-4207-B883-09F54085F8A4}']
+ end;
+
+ TfrViewPagoCliente = class(TfrViewPago, IViewPagoCliente)
+ protected
+ procedure SetPago(const Value: IBizPagos); override;
+ procedure OnContactoChanged(Sender : TObject);
+ end;
+
+var
+ frViewPagoCliente: TfrViewPagoCliente;
+
+implementation
+
+{$R *.dfm}
+{ TfrViewPagoCliente }
+
+uses uBizContacto;
+
+procedure TfrViewPagoCliente.OnContactoChanged(Sender: TObject);
+begin
+ Pago.Contacto := (frViewContacto.Contacto as IBizCliente);
+end;
+
+procedure TfrViewPagoCliente.SetPago(const Value: IBizPagos);
+begin
+ inherited;
+
+ frViewContacto.Contacto := Pago.Contacto;
+ frViewContacto.OnContactoChanged := OnContactoChanged;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPagoProveedor.ddp b/Modulos/Pagos/Cliente/uViewPagoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPagoProveedor.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPagoProveedor.dfm b/Modulos/Pagos/Cliente/uViewPagoProveedor.dfm
new file mode 100644
index 0000000..c4f46db
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagoProveedor.dfm
@@ -0,0 +1,38 @@
+inherited frViewPagoProveedor: TfrViewPagoProveedor
+ inherited frViewDatosPago: TfrViewDatosPago
+ inherited Label5: TLabel
+ Width = 138
+ Caption = 'Datos pago a proveedor'
+ end
+ end
+ inherited frViewContacto: TfrViewDatosYSeleccionContacto
+ inherited Label5: TLabel
+ Width = 116
+ Caption = 'Datos del proveedor'
+ end
+ inherited Bevel1: TBevel
+ Left = 128
+ Width = 235
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 148
+ inherited ToolButton1: TToolButton
+ Caption = 'Elegir un proveedor'
+ end
+ inherited ToolButton3: TToolButton
+ Left = 125
+ end
+ inherited ToolButton2: TToolButton
+ Left = 133
+ Caption = 'Dar de alta un proveedor'
+ end
+ end
+ inherited ToolBar2: TToolBar
+ Width = 201
+ ButtonWidth = 197
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del proveedor...'
+ end
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPagoProveedor.pas b/Modulos/Pagos/Cliente/uViewPagoProveedor.pas
new file mode 100644
index 0000000..760d9a9
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagoProveedor.pas
@@ -0,0 +1,45 @@
+unit uViewPagoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPago, DB, uDADataTable, uViewDatosYSeleccionContacto,
+ uViewFormaPago, uCustomView, uViewBase, uViewDatosPago, uBizPagos,
+ uListaCuentas;
+
+type
+ IViewPagoProveedor = interface(IViewPago)
+ ['{DEAA710D-F179-4C55-B233-2BB34A34DAA9}']
+ end;
+
+ TfrViewPagoProveedor = class(TfrViewPago, IViewPagoProveedor)
+ protected
+ procedure SetPago(const Value: IBizPagos); override;
+ procedure OnContactoChanged(Sender : TObject);
+ end;
+
+var
+ frViewPagoProveedor: TfrViewPagoProveedor;
+
+implementation
+
+{$R *.dfm}
+{ TfrViewPagoProveedor }
+
+uses uBizContacto;
+
+procedure TfrViewPagoProveedor.OnContactoChanged(Sender: TObject);
+begin
+ Pago.Contacto := (frViewContacto.Contacto as IBizProveedor);
+end;
+
+procedure TfrViewPagoProveedor.SetPago(const Value: IBizPagos);
+begin
+ inherited;
+
+ frViewContacto.Contacto := Pago.Contacto;
+ frViewContacto.OnContactoChanged := OnContactoChanged;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPagos.ddp b/Modulos/Pagos/Cliente/uViewPagos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPagos.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPagos.dfm b/Modulos/Pagos/Cliente/uViewPagos.dfm
new file mode 100644
index 0000000..6859746
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagos.dfm
@@ -0,0 +1,138 @@
+inherited frViewPagos: TfrViewPagos
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTE
+ end>
+ OptionsBehavior.PullFocusing = True
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ end
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewICONOCustomDrawCell
+ Width = 20
+ end
+ object cxGridViewCODIGOEMPRESA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOEMPRESA'
+ Visible = False
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewFECHAALTA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAALTA'
+ Visible = False
+ end
+ object cxGridViewUSUARIO: TcxGridDBColumn
+ DataBinding.FieldName = 'USUARIO'
+ Visible = False
+ end
+ object cxGridViewCUENTA: TcxGridDBColumn
+ DataBinding.FieldName = 'CUENTA'
+ Visible = False
+ end
+ object cxGridViewFORMAPAGO: TcxGridDBColumn
+ DataBinding.FieldName = 'FORMAPAGO'
+ Visible = False
+ Width = 64
+ end
+ object cxGridViewFECHAPAGO: TcxGridDBColumn
+ Caption = 'Fecha'
+ DataBinding.FieldName = 'FECHAPAGO'
+ Width = 80
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 200
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ Width = 300
+ end
+ object cxGridViewFECHAMODIFICACION: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAMODIFICACION'
+ Visible = False
+ end
+ object cxGridViewCODIGOCONTACTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCONTACTO'
+ Visible = False
+ end
+ object cxGridViewCODIGOCATEGORIA: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCATEGORIA'
+ Visible = False
+ end
+ object cxGridViewIMPORTE: TcxGridDBColumn
+ Caption = 'Importe'
+ DataBinding.FieldName = 'IMPORTE'
+ HeaderAlignmentHorz = taRightJustify
+ Width = 100
+ end
+ object cxGridViewCATEGORIA: TcxGridDBColumn
+ DataBinding.FieldName = 'CATEGORIA'
+ Visible = False
+ end
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.842406053240000000
+ BuiltInReportLink = True
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000001F14944415478DA8D92AD73DB4010C59F5958AE2CAC07CDA230B30896
+ 557F82CACC2A58A832B30AB6ECA0E1414341C32D7391179AF5C2C2D4B7ABBAB5
+ A7CD4C3423DFC9BBFBF6B71F8B3EE984CBE719287E96F97E3E71FEBEB62D5CE0
+ 340237012100314654D53D82AB3DF96FA1BF324044F82A444D8E1EAAB34080A0
+ 5A568877BC9D1870A29977A54361B489EA41E704E6C3FFF39E22145B745F756A
+ 5796216014F56C5D1391470113396664645D05F4499CA85E9296C4298D141874
+ FAF2F12D3E7FFBEE0156ED2CA04E0327A0C0121450B75BB9431BD1AE29D06E64
+ 6ADF1197CE4EC05A9B55E049A2BD78B3AA55855014895496B9A9677B1A28D0F4
+ 325541D9B8C81AADEEE2755A09464058344C503F679430F7C27A54562D8675A6
+ C027996228DE653BE35D74E4BCB312F87D222E51C3AAC6ADF65ED21385FB6D41
+ 96761610192FF6A05CED843DA9AFA1B9F6DA85827200EB6FD16F80055EF1C8D8
+ 4FF78F0DF063A0A83A019B8FB4D3C52B0552946D77C40D66020EA3A9AB0FDD26
+ A73F02631E26FC6EA22F52C09B76DD97B3EDF17D7D4D900AD256660273A8EAEA
+ 6F9318D66E7CDBDC2EFB143577471BF17F090C5177FDD1EE5A38FF83AD2C09BA
+ EEA7051995BD5D5370CBB5F7292460D88E2FF7A01CF204EEC3E5E8DA646B5C98
+ 2070E47818B6222F0AFC4345EC70838794452EFD7E0189B54D6F3A8EEF030000
+ 000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 160
+ Top = 32
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPagos.pas b/Modulos/Pagos/Cliente/uViewPagos.pas
new file mode 100644
index 0000000..b26a4f5
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagos.pas
@@ -0,0 +1,134 @@
+unit uViewPagos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
+ cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
+ cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
+ cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
+ cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
+ JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
+ uBizPagos, uViewFiltroBase;
+
+type
+ IViewPagos = interface(IViewGrid)
+ ['{A407C7DD-49D2-4710-97AC-FA76AA91CEA6}']
+ function GetPagos: IBizPagos;
+ procedure SetPagos(const Value: IBizPagos);
+ property Pagos: IBizPagos read GetPagos write SetPagos;
+ end;
+
+ TfrViewPagos = class(TfrViewGrid, IViewPagos)
+ PngImageList: TPngImageList;
+ cxGridViewRecID: TcxGridDBColumn;
+ cxGridViewCODIGOEMPRESA: TcxGridDBColumn;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewFECHAALTA: TcxGridDBColumn;
+ cxGridViewUSUARIO: TcxGridDBColumn;
+ cxGridViewCUENTA: TcxGridDBColumn;
+ cxGridViewIMPORTE: TcxGridDBColumn;
+ cxGridViewFORMAPAGO: TcxGridDBColumn;
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewFECHAPAGO: TcxGridDBColumn;
+ cxGridViewFECHAMODIFICACION: TcxGridDBColumn;
+ cxGridViewCODIGOCONTACTO: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewCODIGOCATEGORIA: TcxGridDBColumn;
+ cxGridViewCATEGORIA: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ procedure cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+ private
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroFechas;
+
+ protected
+ FPagos: IBizPagos;
+ function GetPagos: IBizPagos; virtual;
+ procedure SetPagos(const Value: IBizPagos); virtual;
+ procedure AnadirOtrosFiltros; override;
+ public
+ property DataSet: IBizPagos read GetPagos write SetPagos;
+ end;
+
+var
+ frViewPagos: TfrViewPagos;
+
+implementation
+
+uses uDataModulePagos;
+
+
+{$R *.dfm}
+
+{ TfrViewClientes }
+
+{
+******************************* TfrViewPagos *******************************
+}
+function TfrViewPagos.GetPagos: IBizPagos;
+begin
+ Result := FPagos;
+end;
+
+procedure TfrViewPagos.SetPagos(const Value: IBizPagos);
+begin
+ FPagos := Value;
+ if Assigned(FPagos) then
+ DADataSource.DataTable := FPagos.DataTable;
+end;
+
+
+procedure TfrViewPagos.cxGridViewICONOCustomDrawCell(
+ Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
+ AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R : TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
+ ADone := True;
+end;
+
+procedure TfrViewPagos.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+procedure TfrViewPagos.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAPAGO');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPagosCliente.ddp b/Modulos/Pagos/Cliente/uViewPagosCliente.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPagosCliente.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPagosCliente.dfm b/Modulos/Pagos/Cliente/uViewPagosCliente.dfm
new file mode 100644
index 0000000..2a096aa
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagosCliente.dfm
@@ -0,0 +1,34 @@
+inherited frViewPagosCliente: TfrViewPagosCliente
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTE
+ end
+ item
+ Format = '0 Cobros'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end>
+ inherited cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Cliente'
+ end
+ inherited cxGridViewIMPORTE: TcxGridDBColumn
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38762.860500937500000000
+ BuiltInReportLink = True
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPagosCliente.pas b/Modulos/Pagos/Cliente/uViewPagosCliente.pas
new file mode 100644
index 0000000..cfd641e
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagosCliente.pas
@@ -0,0 +1,30 @@
+unit uViewPagosCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPagos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, ImgList, PngImageList, dxPSCore, dxPScxCommon,
+ dxPScxGridLnk, ActnList, uDADataTable, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid, cxCurrencyEdit;
+
+type
+ IViewPagosCliente = interface(IViewPagos)
+ ['{CBC4EDC2-8095-4BF4-86FE-197EB88F7A54}']
+ end;
+
+ TfrViewPagosCliente = class(TfrViewPagos)
+ end;
+
+var
+ frViewPagosCliente: TfrViewPagosCliente;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPagosProveedor.ddp b/Modulos/Pagos/Cliente/uViewPagosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Cliente/uViewPagosProveedor.ddp differ
diff --git a/Modulos/Pagos/Cliente/uViewPagosProveedor.dfm b/Modulos/Pagos/Cliente/uViewPagosProveedor.dfm
new file mode 100644
index 0000000..946eb06
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagosProveedor.dfm
@@ -0,0 +1,34 @@
+inherited frViewPagosProveedor: TfrViewPagosProveedor
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 almacenes'
+ Kind = skCount
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTE
+ end
+ item
+ Format = '0 Pagos'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end>
+ inherited cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Proveedor'
+ end
+ inherited cxGridViewIMPORTE: TcxGridDBColumn
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38762.861380381950000000
+ BuiltInReportLink = True
+ end
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPagosProveedor.pas b/Modulos/Pagos/Cliente/uViewPagosProveedor.pas
new file mode 100644
index 0000000..e617ce7
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPagosProveedor.pas
@@ -0,0 +1,30 @@
+unit uViewPagosProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewPagos, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
+ dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
+ dxPSEdgePatterns, ImgList, PngImageList, dxPSCore, dxPScxCommon,
+ dxPScxGridLnk, ActnList, uDADataTable, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid, cxCurrencyEdit;
+
+type
+ IViewPagosProveedor = interface(IViewPagos)
+ ['{302F90DE-D71B-4795-A4BC-501B368A03B4}']
+ end;
+
+ TfrViewPagosProveedor = class(TfrViewPagos)
+ end;
+
+var
+ frViewPagosProveedor: TfrViewPagosProveedor;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pagos/Cliente/uViewPresupuesto.dfm b/Modulos/Pagos/Cliente/uViewPresupuesto.dfm
new file mode 100644
index 0000000..fee1611
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPresupuesto.dfm
@@ -0,0 +1,216 @@
+inherited frViewPresupuesto: TfrViewPresupuesto
+ Width = 751
+ Height = 380
+ inline frViewDatosPresupuesto1: TfrViewDatosPresupuesto
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 124
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited edtFechaPresupuesto: TcxDBDateEdit
+ Style.Color = clInfoBk
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Enabled = False
+ Properties.ReadOnly = True
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited cbTipoPresupuesto: TcxDBComboBox
+ Style.Color = clInfoBk
+ end
+ inherited DADataSource: TDADataSource
+ Left = 296
+ Top = 16
+ end
+ end
+ inline frViewPlazoEntrega1: TfrViewPlazoEntrega
+ Left = 358
+ Top = 210
+ Width = 391
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 267
+ end
+ inherited memPlazoEntrega: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 360
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 0
+ Top = 288
+ Width = 751
+ Height = 86
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 643
+ end
+ inherited memObservaciones: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 720
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 0
+ Top = 210
+ Width = 361
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 253
+ end
+ inherited memFormaPago: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 330
+ end
+ end
+ inline frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto
+ Left = 0
+ Top = 123
+ Width = 360
+ Height = 97
+ Constraints.MinHeight = 85
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited Label6: TLabel
+ Width = 134
+ Caption = 'Estado del presupuesto'
+ end
+ inherited Bevel2: TBevel
+ Left = 152
+ Width = 196
+ end
+ inherited cbiSituacion: TcxDBImageComboBox
+ Style.Color = clInfoBk
+ StyleFocused.Color = clInfoBk
+ StyleHot.Color = clInfoBk
+ end
+ inherited ImageList: TPngImageList
+ Left = 64
+ Top = 40
+ end
+ end
+ inline frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto
+ Left = 360
+ Top = 0
+ Width = 391
+ Height = 219
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 5
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 251
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 4
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 3
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ ButtonWidth = 178
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 40
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ end
+ inherited actAnadirContacto: TAction
+ Caption = 'Dar de alta un cliente'
+ end
+ inherited actVerContacto: TAction
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Pagos/Cliente/uViewPresupuesto.pas b/Modulos/Pagos/Cliente/uViewPresupuesto.pas
new file mode 100644
index 0000000..c7a17fb
--- /dev/null
+++ b/Modulos/Pagos/Cliente/uViewPresupuesto.pas
@@ -0,0 +1,76 @@
+unit uViewPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizPresupuestosCliente, cxControls, cxContainer,
+ cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, DB,
+ uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, cxGraphics, uCustomView,
+ uViewDatosPresupuesto, uViewSituacionPresupuesto,
+ uViewFormaPago, uViewPlazoEntrega, uViewObservaciones,
+ uViewDatosYSeleccionContacto, AppEvnts;
+
+type
+ IViewPresupuesto = interface(IViewBase)
+ ['{7FDBC909-C3F2-4778-9FE3-1D813FEA7FC1}']
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+ TfrViewPresupuesto = class(TfrViewBase, IViewPresupuesto)
+ DADataSource: TDADataSource;
+ frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto;
+ frViewDatosPresupuesto1: TfrViewDatosPresupuesto;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewPlazoEntrega1: TfrViewPlazoEntrega;
+ frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto;
+ private
+ FPresupuesto: IBizPresupuestos;
+ procedure OnContactoChanged(Sender : TObject);
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+implementation
+
+uses uBizContacto, uExceptions;
+
+{$R *.dfm}
+
+function TfrViewPresupuesto.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuesto.OnContactoChanged(Sender : TObject);
+begin
+ FPresupuesto.Cliente := (frViewClientePresupuesto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewPresupuesto.SetPresupuesto(const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ if Assigned(FPresupuesto) then
+ DADataSource.DataTable := FPresupuesto.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewSituacionPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewPlazoEntrega1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewClientePresupuesto1.Contacto := Presupuesto.Cliente;
+ frViewClientePresupuesto1.OnContactoChanged := OnContactoChanged;
+end;
+
+end.
diff --git a/Modulos/Pagos/Reglas/schPagosClient_Intf.pas b/Modulos/Pagos/Reglas/schPagosClient_Intf.pas
new file mode 100644
index 0000000..4aed960
--- /dev/null
+++ b/Modulos/Pagos/Reglas/schPagosClient_Intf.pas
@@ -0,0 +1,906 @@
+unit schPagosClient_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_InformeCabeceraPago = '{15DB645D-82F8-47D2-B265-F96587E77C7B}';
+ RID_Pagos = '{B164F992-38BF-4CC5-89D1-01472F107C3E}';
+ RID_Refresh_Pagos = '{CBBD3913-987D-4199-9F0D-F76BB9557BA3}';
+
+ { Data table names }
+ nme_InformeCabeceraPago = 'InformeCabeceraPago';
+ nme_Pagos = 'Pagos';
+ nme_Refresh_Pagos = 'Refresh_Pagos';
+
+ { InformeCabeceraPago fields }
+ fld_InformeCabeceraPagoCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraPagoCODIGO = 'CODIGO';
+ fld_InformeCabeceraPagoCUENTA = 'CUENTA';
+ fld_InformeCabeceraPagoFECHAPAGO = 'FECHAPAGO';
+ fld_InformeCabeceraPagoFORMAPAGO = 'FORMAPAGO';
+ fld_InformeCabeceraPagoDESCRIPCION = 'DESCRIPCION';
+ fld_InformeCabeceraPagoIMPORTE = 'IMPORTE';
+ fld_InformeCabeceraPagoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraPagoNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraPagoNIFCIF = 'NIFCIF';
+ fld_InformeCabeceraPagoCALLE = 'CALLE';
+ fld_InformeCabeceraPagoCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraPagoPOBLACION = 'POBLACION';
+ fld_InformeCabeceraPagoPROVINCIA = 'PROVINCIA';
+
+ { InformeCabeceraPago field indexes }
+ idx_InformeCabeceraPagoCODIGOEMPRESA = 0;
+ idx_InformeCabeceraPagoCODIGO = 1;
+ idx_InformeCabeceraPagoCUENTA = 2;
+ idx_InformeCabeceraPagoFECHAPAGO = 3;
+ idx_InformeCabeceraPagoFORMAPAGO = 4;
+ idx_InformeCabeceraPagoDESCRIPCION = 5;
+ idx_InformeCabeceraPagoIMPORTE = 6;
+ idx_InformeCabeceraPagoCODIGOCONTACTO = 7;
+ idx_InformeCabeceraPagoNOMBRE = 8;
+ idx_InformeCabeceraPagoNIFCIF = 9;
+ idx_InformeCabeceraPagoCALLE = 10;
+ idx_InformeCabeceraPagoCODIGOPOSTAL = 11;
+ idx_InformeCabeceraPagoPOBLACION = 12;
+ idx_InformeCabeceraPagoPROVINCIA = 13;
+
+ { Pagos fields }
+ fld_PagosCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_PagosCODIGO = 'CODIGO';
+ fld_PagosFECHAALTA = 'FECHAALTA';
+ fld_PagosUSUARIO = 'USUARIO';
+ fld_PagosCUENTA = 'CUENTA';
+ fld_PagosIMPORTE = 'IMPORTE';
+ fld_PagosFORMAPAGO = 'FORMAPAGO';
+ fld_PagosDESCRIPCION = 'DESCRIPCION';
+ fld_PagosFECHAPAGO = 'FECHAPAGO';
+ fld_PagosFECHAMODIFICACION = 'FECHAMODIFICACION';
+ fld_PagosCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_PagosNOMBRE = 'NOMBRE';
+ fld_PagosCODIGOCATEGORIA = 'CODIGOCATEGORIA';
+ fld_PagosCATEGORIA = 'CATEGORIA';
+
+ { Pagos field indexes }
+ idx_PagosCODIGOEMPRESA = 0;
+ idx_PagosCODIGO = 1;
+ idx_PagosFECHAALTA = 2;
+ idx_PagosUSUARIO = 3;
+ idx_PagosCUENTA = 4;
+ idx_PagosIMPORTE = 5;
+ idx_PagosFORMAPAGO = 6;
+ idx_PagosDESCRIPCION = 7;
+ idx_PagosFECHAPAGO = 8;
+ idx_PagosFECHAMODIFICACION = 9;
+ idx_PagosCODIGOCONTACTO = 10;
+ idx_PagosNOMBRE = 11;
+ idx_PagosCODIGOCATEGORIA = 12;
+ idx_PagosCATEGORIA = 13;
+
+ { Refresh_Pagos fields }
+ fld_Refresh_PagosCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_Refresh_PagosCODIGO = 'CODIGO';
+ fld_Refresh_PagosFECHAALTA = 'FECHAALTA';
+ fld_Refresh_PagosUSUARIO = 'USUARIO';
+ fld_Refresh_PagosCUENTA = 'CUENTA';
+ fld_Refresh_PagosIMPORTE = 'IMPORTE';
+ fld_Refresh_PagosFORMAPAGO = 'FORMAPAGO';
+ fld_Refresh_PagosDESCRIPCION = 'DESCRIPCION';
+ fld_Refresh_PagosFECHAPAGO = 'FECHAPAGO';
+ fld_Refresh_PagosFECHAMODIFICACION = 'FECHAMODIFICACION';
+ fld_Refresh_PagosCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_Refresh_PagosNOMBRE = 'NOMBRE';
+ fld_Refresh_PagosCODIGOCATEGORIA = 'CODIGOCATEGORIA';
+ fld_Refresh_PagosCATEGORIA = 'CATEGORIA';
+
+ { Refresh_Pagos field indexes }
+ idx_Refresh_PagosCODIGOEMPRESA = 0;
+ idx_Refresh_PagosCODIGO = 1;
+ idx_Refresh_PagosFECHAALTA = 2;
+ idx_Refresh_PagosUSUARIO = 3;
+ idx_Refresh_PagosCUENTA = 4;
+ idx_Refresh_PagosIMPORTE = 5;
+ idx_Refresh_PagosFORMAPAGO = 6;
+ idx_Refresh_PagosDESCRIPCION = 7;
+ idx_Refresh_PagosFECHAPAGO = 8;
+ idx_Refresh_PagosFECHAMODIFICACION = 9;
+ idx_Refresh_PagosCODIGOCONTACTO = 10;
+ idx_Refresh_PagosNOMBRE = 11;
+ idx_Refresh_PagosCODIGOCATEGORIA = 12;
+ idx_Refresh_PagosCATEGORIA = 13;
+
+type
+ { IInformeCabeceraPago }
+ IInformeCabeceraPago = interface(IDAStronglyTypedDataTable)
+ ['{D34C282C-0A16-4856-93A2-761BCC9E74B6}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetCUENTAValue: Integer;
+ procedure SetCUENTAValue(const aValue: Integer);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetFORMAPAGOValue: String;
+ procedure SetFORMAPAGOValue(const aValue: String);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetIMPORTEValue: Float;
+ procedure SetIMPORTEValue(const aValue: Float);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FORMAPAGO: String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ end;
+
+ { TInformeCabeceraPagoDataTableRules }
+ TInformeCabeceraPagoDataTableRules = class(TDADataTableRules, IInformeCabeceraPago)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFORMAPAGOValue: String; virtual;
+ procedure SetFORMAPAGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetIMPORTEValue: Float; virtual;
+ procedure SetIMPORTEValue(const aValue: Float); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FORMAPAGO: String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property IMPORTE: Float read GetIMPORTEValue write SetIMPORTEValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPagos }
+ IPagos = interface(IDAStronglyTypedDataTable)
+ ['{0B093D73-8029-4287-A384-410C43F01D94}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCUENTAValue: Integer;
+ procedure SetCUENTAValue(const aValue: Integer);
+ function GetIMPORTEValue: Currency;
+ procedure SetIMPORTEValue(const aValue: Currency);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetFECHAMODIFICACIONValue: DateTime;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCODIGOCATEGORIAValue: Integer;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer);
+ function GetCATEGORIAValue: String;
+ procedure SetCATEGORIAValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FECHAMODIFICACION: DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+ end;
+
+ { TPagosDataTableRules }
+ TPagosDataTableRules = class(TDADataTableRules, IPagos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFECHAMODIFICACIONValue: DateTime; virtual;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FECHAMODIFICACION: DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_Pagos }
+ IRefresh_Pagos = interface(IDAStronglyTypedDataTable)
+ ['{62CDC2A7-3320-400F-817E-059D1FCB917E}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCUENTAValue: Integer;
+ procedure SetCUENTAValue(const aValue: Integer);
+ function GetIMPORTEValue: Currency;
+ procedure SetIMPORTEValue(const aValue: Currency);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetFECHAPAGOValue: DateTime;
+ procedure SetFECHAPAGOValue(const aValue: DateTime);
+ function GetFECHAMODIFICACIONValue: DateTime;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCODIGOCATEGORIAValue: Integer;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer);
+ function GetCATEGORIAValue: String;
+ procedure SetCATEGORIAValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FECHAMODIFICACION: DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+ end;
+
+ { TRefresh_PagosDataTableRules }
+ TRefresh_PagosDataTableRules = class(TDADataTableRules, IRefresh_Pagos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFECHAMODIFICACIONValue: DateTime; virtual;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CUENTA: Integer read GetCUENTAValue write SetCUENTAValue;
+ property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property FECHAPAGO: DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property FECHAMODIFICACION: DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOCATEGORIA: Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property CATEGORIA: String read GetCATEGORIAValue write SetCATEGORIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TInformeCabeceraPagoDataTableRules }
+constructor TInformeCabeceraPagoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPagoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCUENTAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCUENTA].AsInteger;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCUENTAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCUENTA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoFECHAPAGO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetFORMAPAGOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoFORMAPAGO].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetFORMAPAGOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoFORMAPAGO].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoDESCRIPCION].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetIMPORTEValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoIMPORTE].AsFloat;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetIMPORTEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoIMPORTE].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoNIFCIF].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoNIFCIF].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCALLE].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPagoDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPagoPROVINCIA].AsString;
+end;
+
+procedure TInformeCabeceraPagoDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPagoPROVINCIA].AsString := aValue;
+end;
+
+
+{ TPagosDataTableRules }
+constructor TPagosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPagosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPagosDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PagosCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TPagosDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PagosCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TPagosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PagosCODIGO].AsInteger;
+end;
+
+procedure TPagosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PagosCODIGO].AsInteger := aValue;
+end;
+
+function TPagosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PagosFECHAALTA].AsDateTime;
+end;
+
+procedure TPagosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PagosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TPagosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_PagosUSUARIO].AsString;
+end;
+
+procedure TPagosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PagosUSUARIO].AsString := aValue;
+end;
+
+function TPagosDataTableRules.GetCUENTAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PagosCUENTA].AsInteger;
+end;
+
+procedure TPagosDataTableRules.SetCUENTAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PagosCUENTA].AsInteger := aValue;
+end;
+
+function TPagosDataTableRules.GetIMPORTEValue: Currency;
+begin
+ result := DataTable.Fields[idx_PagosIMPORTE].AsCurrency;
+end;
+
+procedure TPagosDataTableRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PagosIMPORTE].AsCurrency := aValue;
+end;
+
+function TPagosDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PagosFORMAPAGO].AsString;
+end;
+
+procedure TPagosDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PagosFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TPagosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_PagosDESCRIPCION].AsString;
+end;
+
+procedure TPagosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PagosDESCRIPCION].AsString := aValue;
+end;
+
+function TPagosDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PagosFECHAPAGO].AsDateTime;
+end;
+
+procedure TPagosDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PagosFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TPagosDataTableRules.GetFECHAMODIFICACIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PagosFECHAMODIFICACION].AsDateTime;
+end;
+
+procedure TPagosDataTableRules.SetFECHAMODIFICACIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PagosFECHAMODIFICACION].AsDateTime := aValue;
+end;
+
+function TPagosDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PagosCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TPagosDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PagosCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TPagosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_PagosNOMBRE].AsString;
+end;
+
+procedure TPagosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PagosNOMBRE].AsString := aValue;
+end;
+
+function TPagosDataTableRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PagosCODIGOCATEGORIA].AsInteger;
+end;
+
+procedure TPagosDataTableRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PagosCODIGOCATEGORIA].AsInteger := aValue;
+end;
+
+function TPagosDataTableRules.GetCATEGORIAValue: String;
+begin
+ result := DataTable.Fields[idx_PagosCATEGORIA].AsString;
+end;
+
+procedure TPagosDataTableRules.SetCATEGORIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PagosCATEGORIA].AsString := aValue;
+end;
+
+
+{ TRefresh_PagosDataTableRules }
+constructor TRefresh_PagosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TRefresh_PagosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_PagosDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PagosCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCODIGO].AsInteger;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PagosCODIGO].AsInteger := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosFECHAALTA].AsDateTime;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PagosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosUSUARIO].AsString;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PagosUSUARIO].AsString := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetCUENTAValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCUENTA].AsInteger;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCUENTAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PagosCUENTA].AsInteger := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetIMPORTEValue: Currency;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosIMPORTE].AsCurrency;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_Refresh_PagosIMPORTE].AsCurrency := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_Refresh_PagosFORMAPAGO].AsString;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_Refresh_PagosFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TRefresh_PagosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosDESCRIPCION].AsString;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PagosDESCRIPCION].AsString := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosFECHAPAGO].AsDateTime;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PagosFECHAPAGO].AsDateTime := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetFECHAMODIFICACIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosFECHAMODIFICACION].AsDateTime;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetFECHAMODIFICACIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PagosFECHAMODIFICACION].AsDateTime := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PagosCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosNOMBRE].AsString;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PagosNOMBRE].AsString := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCODIGOCATEGORIA].AsInteger;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PagosCODIGOCATEGORIA].AsInteger := aValue;
+end;
+
+function TRefresh_PagosDataTableRules.GetCATEGORIAValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PagosCATEGORIA].AsString;
+end;
+
+procedure TRefresh_PagosDataTableRules.SetCATEGORIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PagosCATEGORIA].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_InformeCabeceraPago, TInformeCabeceraPagoDataTableRules);
+ RegisterDataTableRules(RID_Pagos, TPagosDataTableRules);
+ RegisterDataTableRules(RID_Refresh_Pagos, TRefresh_PagosDataTableRules);
+
+end.
diff --git a/Modulos/Pagos/Reglas/schPagosServer_Intf.pas b/Modulos/Pagos/Reglas/schPagosServer_Intf.pas
new file mode 100644
index 0000000..5e42102
--- /dev/null
+++ b/Modulos/Pagos/Reglas/schPagosServer_Intf.pas
@@ -0,0 +1,1057 @@
+unit schPagosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schPagosClient_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_InformeCabeceraPagoDelta = '{435D82E6-79DC-40E5-8832-EA15AE38CFB2}';
+ RID_PagosDelta = '{C8AD6796-7481-4F57-AF85-C283AAF1DF27}';
+ RID_Refresh_PagosDelta = '{3A452B1A-45BD-4837-8F96-86D8F5B8F80E}';
+
+type
+ { IInformeCabeceraPagoDelta }
+ IInformeCabeceraPagoDelta = interface(IInformeCabeceraPago)
+ ['{435D82E6-79DC-40E5-8832-EA15AE38CFB2}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldCUENTAValue : Integer;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldFORMAPAGOValue : String;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldIMPORTEValue : Float;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldNIFCIFValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldPROVINCIAValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldFORMAPAGO : String read GetOldFORMAPAGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldIMPORTE : Float read GetOldIMPORTEValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ end;
+
+ { TInformeCabeceraPagoBusinessProcessorRules }
+ TInformeCabeceraPagoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraPago, IInformeCabeceraPagoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ function GetOldCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFORMAPAGOValue: String; virtual;
+ function GetOldFORMAPAGOValue: String; virtual;
+ procedure SetFORMAPAGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetIMPORTEValue: Float; virtual;
+ function GetOldIMPORTEValue: Float; virtual;
+ procedure SetIMPORTEValue(const aValue: Float); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property CUENTA : Integer read GetCUENTAValue write SetCUENTAValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property FORMAPAGO : String read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : String read GetOldFORMAPAGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property IMPORTE : Float read GetIMPORTEValue write SetIMPORTEValue;
+ property OldIMPORTE : Float read GetOldIMPORTEValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPagosDelta }
+ IPagosDelta = interface(IPagos)
+ ['{C8AD6796-7481-4F57-AF85-C283AAF1DF27}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCUENTAValue : Integer;
+ function GetOldIMPORTEValue : Currency;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldFECHAMODIFICACIONValue : DateTime;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldCODIGOCATEGORIAValue : Integer;
+ function GetOldCATEGORIAValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldFECHAMODIFICACION : DateTime read GetOldFECHAMODIFICACIONValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+ end;
+
+ { TPagosBusinessProcessorRules }
+ TPagosBusinessProcessorRules = class(TDABusinessProcessorRules, IPagos, IPagosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ function GetOldCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ function GetOldIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFECHAMODIFICACIONValue: DateTime; virtual;
+ function GetOldFECHAMODIFICACIONValue: DateTime; virtual;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ function GetOldCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ function GetOldCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CUENTA : Integer read GetCUENTAValue write SetCUENTAValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property FECHAMODIFICACION : DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property OldFECHAMODIFICACION : DateTime read GetOldFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CODIGOCATEGORIA : Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property CATEGORIA : String read GetCATEGORIAValue write SetCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_PagosDelta }
+ IRefresh_PagosDelta = interface(IRefresh_Pagos)
+ ['{3A452B1A-45BD-4837-8F96-86D8F5B8F80E}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCUENTAValue : Integer;
+ function GetOldIMPORTEValue : Currency;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldFECHAPAGOValue : DateTime;
+ function GetOldFECHAMODIFICACIONValue : DateTime;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldCODIGOCATEGORIAValue : Integer;
+ function GetOldCATEGORIAValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property OldFECHAMODIFICACION : DateTime read GetOldFECHAMODIFICACIONValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+ end;
+
+ { TRefresh_PagosBusinessProcessorRules }
+ TRefresh_PagosBusinessProcessorRules = class(TDABusinessProcessorRules, IRefresh_Pagos, IRefresh_PagosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCUENTAValue: Integer; virtual;
+ function GetOldCUENTAValue: Integer; virtual;
+ procedure SetCUENTAValue(const aValue: Integer); virtual;
+ function GetIMPORTEValue: Currency; virtual;
+ function GetOldIMPORTEValue: Currency; virtual;
+ procedure SetIMPORTEValue(const aValue: Currency); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetFECHAPAGOValue: DateTime; virtual;
+ function GetOldFECHAPAGOValue: DateTime; virtual;
+ procedure SetFECHAPAGOValue(const aValue: DateTime); virtual;
+ function GetFECHAMODIFICACIONValue: DateTime; virtual;
+ function GetOldFECHAMODIFICACIONValue: DateTime; virtual;
+ procedure SetFECHAMODIFICACIONValue(const aValue: DateTime); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOCATEGORIAValue: Integer; virtual;
+ function GetOldCODIGOCATEGORIAValue: Integer; virtual;
+ procedure SetCODIGOCATEGORIAValue(const aValue: Integer); virtual;
+ function GetCATEGORIAValue: String; virtual;
+ function GetOldCATEGORIAValue: String; virtual;
+ procedure SetCATEGORIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CUENTA : Integer read GetCUENTAValue write SetCUENTAValue;
+ property OldCUENTA : Integer read GetOldCUENTAValue;
+ property IMPORTE : Currency read GetIMPORTEValue write SetIMPORTEValue;
+ property OldIMPORTE : Currency read GetOldIMPORTEValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property FECHAPAGO : DateTime read GetFECHAPAGOValue write SetFECHAPAGOValue;
+ property OldFECHAPAGO : DateTime read GetOldFECHAPAGOValue;
+ property FECHAMODIFICACION : DateTime read GetFECHAMODIFICACIONValue write SetFECHAMODIFICACIONValue;
+ property OldFECHAMODIFICACION : DateTime read GetOldFECHAMODIFICACIONValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CODIGOCATEGORIA : Integer read GetCODIGOCATEGORIAValue write SetCODIGOCATEGORIAValue;
+ property OldCODIGOCATEGORIA : Integer read GetOldCODIGOCATEGORIAValue;
+ property CATEGORIA : String read GetCATEGORIAValue write SetCATEGORIAValue;
+ property OldCATEGORIA : String read GetOldCATEGORIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TInformeCabeceraPagoBusinessProcessorRules }
+constructor TInformeCabeceraPagoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPagoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGO];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCODIGO];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGO] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCUENTA];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCUENTA];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCUENTAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCUENTA] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoFECHAPAGO];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoFECHAPAGO];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoFECHAPAGO] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetFORMAPAGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoFORMAPAGO];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldFORMAPAGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoFORMAPAGO];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetFORMAPAGOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoFORMAPAGO] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoDESCRIPCION];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoDESCRIPCION];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoDESCRIPCION] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetIMPORTEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoIMPORTE];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldIMPORTEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoIMPORTE];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetIMPORTEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoIMPORTE] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoNOMBRE];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoNOMBRE];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoNIFCIF];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoNIFCIF];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoNIFCIF] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCALLE];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCALLE];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCALLE] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoPOBLACION];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoPOBLACION];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoPROVINCIA];
+end;
+
+function TInformeCabeceraPagoBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPagoPROVINCIA];
+end;
+
+procedure TInformeCabeceraPagoBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPagoPROVINCIA] := aValue;
+end;
+
+
+{ TPagosBusinessProcessorRules }
+constructor TPagosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPagosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPagosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOEMPRESA];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCODIGOEMPRESA];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOEMPRESA] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGO];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCODIGO];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGO] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAALTA];
+end;
+
+function TPagosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosFECHAALTA];
+end;
+
+procedure TPagosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAALTA] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosUSUARIO];
+end;
+
+function TPagosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosUSUARIO];
+end;
+
+procedure TPagosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosUSUARIO] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCUENTA];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCUENTA];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCUENTAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCUENTA] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosIMPORTE];
+end;
+
+function TPagosBusinessProcessorRules.GetOldIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosIMPORTE];
+end;
+
+procedure TPagosBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosIMPORTE] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFORMAPAGO];
+end;
+
+function TPagosBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosFORMAPAGO];
+end;
+
+procedure TPagosBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFORMAPAGO] := aValue.Text;
+end;
+
+function TPagosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosDESCRIPCION];
+end;
+
+function TPagosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosDESCRIPCION];
+end;
+
+procedure TPagosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosDESCRIPCION] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAPAGO];
+end;
+
+function TPagosBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosFECHAPAGO];
+end;
+
+procedure TPagosBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAPAGO] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetFECHAMODIFICACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAMODIFICACION];
+end;
+
+function TPagosBusinessProcessorRules.GetOldFECHAMODIFICACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosFECHAMODIFICACION];
+end;
+
+procedure TPagosBusinessProcessorRules.SetFECHAMODIFICACIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosFECHAMODIFICACION] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOCONTACTO];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCODIGOCONTACTO];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOCONTACTO] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosNOMBRE];
+end;
+
+function TPagosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosNOMBRE];
+end;
+
+procedure TPagosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosNOMBRE] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOCATEGORIA];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCODIGOCATEGORIA];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCODIGOCATEGORIA] := aValue;
+end;
+
+function TPagosBusinessProcessorRules.GetCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCATEGORIA];
+end;
+
+function TPagosBusinessProcessorRules.GetOldCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosCATEGORIA];
+end;
+
+procedure TPagosBusinessProcessorRules.SetCATEGORIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PagosCATEGORIA] := aValue;
+end;
+
+
+{ TRefresh_PagosBusinessProcessorRules }
+constructor TRefresh_PagosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TRefresh_PagosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOEMPRESA];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCODIGOEMPRESA];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOEMPRESA] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGO];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCODIGO];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGO] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAALTA];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosFECHAALTA];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAALTA] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosUSUARIO];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosUSUARIO];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosUSUARIO] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCUENTA];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCUENTAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCUENTA];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCUENTAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCUENTA] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosIMPORTE];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldIMPORTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosIMPORTE];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetIMPORTEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosIMPORTE] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFORMAPAGO];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosFORMAPAGO];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFORMAPAGO] := aValue.Text;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosDESCRIPCION];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosDESCRIPCION];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosDESCRIPCION] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAPAGO];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldFECHAPAGOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosFECHAPAGO];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetFECHAPAGOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAPAGO] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetFECHAMODIFICACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAMODIFICACION];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldFECHAMODIFICACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosFECHAMODIFICACION];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetFECHAMODIFICACIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosFECHAMODIFICACION] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOCONTACTO];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCODIGOCONTACTO];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOCONTACTO] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosNOMBRE];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosNOMBRE];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosNOMBRE] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOCATEGORIA];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCODIGOCATEGORIAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCODIGOCATEGORIA];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCODIGOCATEGORIAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCODIGOCATEGORIA] := aValue;
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCATEGORIA];
+end;
+
+function TRefresh_PagosBusinessProcessorRules.GetOldCATEGORIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PagosCATEGORIA];
+end;
+
+procedure TRefresh_PagosBusinessProcessorRules.SetCATEGORIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PagosCATEGORIA] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_InformeCabeceraPagoDelta, TInformeCabeceraPagoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_PagosDelta, TPagosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Refresh_PagosDelta, TRefresh_PagosBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Pagos/Reglas/uBizPagos.pas b/Modulos/Pagos/Reglas/uBizPagos.pas
new file mode 100644
index 0000000..b8d0e3e
--- /dev/null
+++ b/Modulos/Pagos/Reglas/uBizPagos.pas
@@ -0,0 +1,312 @@
+unit uBizPagos;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schPagosClient_Intf, Classes,
+ DBGrids, uDBSelectionList, DB, uExceptions, Controls, uBizContacto,
+ uBizInformesBase;
+
+Const
+ BIZ_PAGOSCLIENTE = 'Client.PagosCliente';
+ BIZ_PAGOSPROVEEDOR = 'Client.PagosProveedor';
+
+type
+
+ IBizPagos = interface(IPagos)
+ ['{39E062C3-C59D-4E98-87A8-6C599B78CB2D}']
+ function Show: TModalResult;
+ procedure ShowAll;
+ procedure Preview;
+ procedure Print;
+
+ function GetContacto: IBizContacto;
+ procedure SetContacto(Value: IBizContacto);
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ end;
+
+ IBizPagosProveedor = interface(IBizPagos)
+ ['{DBF8F6EE-84F4-49B7-B57D-E8811EF66FC0}']
+ end;
+
+ IBizPagosCliente = interface(IBizPagos)
+ ['{E587258D-ED30-4D76-AC43-4E0E6B00059A}']
+ end;
+
+ TBizPagosDataTableRules = class(TPagosDataTableRules, IBizPagos,
+ IApplyUpdateFailedException, ISelectedRowList, IBizInformesAware)
+ private
+ FContacto: IBizContacto;
+ FSelectedRows : TSelectedRowList;
+ procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+ procedure anadirAsiento;
+ protected
+ function GetContacto: IBizContacto;
+ procedure SetContacto(Value: IBizContacto);
+ function GetSelectedRows : TSelectedRowList; virtual;
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ public
+ property Contacto: IBizContacto read GetContacto write SetContacto;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ function Show: TModalResult; virtual;
+ procedure ShowAll; virtual;
+ procedure Preview; virtual;
+ procedure Print; virtual;
+ end;
+
+ TBizPagosProveedor = class(TBizPagosDataTableRules, IBizPagosProveedor)
+ private
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ public
+ function Show: TModalResult; override;
+ end;
+
+ TBizPagosCliente = class(TBizPagosDataTableRules, IBizPagosCliente)
+ private
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ public
+ function Show: TModalResult; override;
+ end;
+
+ procedure ValidarPago (const APago : IBizPagos);
+
+implementation
+
+uses
+ Windows, Forms, Dialogs, uDACDSDataTable, SysUtils, Variants, DateUtils,
+ uDataModuleBase, uDataModuleUsuarios, uEditorUtils, uDataModulePagos,
+ uDataModuleContactos, uDataModuleAsientos, uBizAsientos;
+
+
+procedure ValidarPago (const APago : IBizPagos);
+begin
+ if APago.Cuenta = 0 then
+ raise Exception.Create('El pago debe tener una cuenta destino');
+end;
+
+
+{ TBizPagosDataTableRules }
+
+{
+************************** TBizPagosDataTableRules **************************
+}
+
+procedure TBizPagosDataTableRules.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAPAGO := Date;
+ IMPORTE := 0;
+ CODIGO := dmPagos.GetNextAutoinc;
+end;
+
+function TBizPagosDataTableRules.Show: TModalResult;
+begin
+ Result := mrCancel;
+end;
+
+procedure TBizPagosDataTableRules.Preview;
+begin
+ dmPagos.Preview(Self.CODIGO);
+end;
+
+procedure TBizPagosDataTableRules.ShowApplyUpdateFailed(const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este almacén porque tiene articulos o está asociado al destino de algún pedido', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+constructor TBizPagosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FContacto := NIL;
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizPagosDataTableRules.Destroy;
+begin
+ FContacto := NIL;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+procedure TBizPagosDataTableRules.ShowAll;
+begin
+// ShowEditor(IBizProveedor, Self, etItems);
+end;
+
+procedure TBizPagosDataTableRules.BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
+var
+ i, x: Integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate: begin
+ ValidarPago(Self);
+ //Solo añadiremos el asiento si inserta un pago nuevo
+ //o modifica el pago el campo cuenta
+ if (Delta.Changes[i].OldValueByName[fld_PagosCUENTA] <> Delta.Changes[i].NewValueByName[fld_PagosCUENTA]) then
+ anadirAsiento;
+ end;
+// ctDelete :
+ end;
+end;
+
+procedure TBizPagosDataTableRules.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+{ if not dmPagos.PuedoEliminarAlmacen(CODIGO) then
+ raise Exception.Create('No se puede borrar este almacén porque tiene articulos o está asociado al destino de algún pedido');
+}
+end;
+
+function TBizPagosDataTableRules.GetContacto: IBizContacto;
+begin
+ if not Assigned(FContacto) then
+ begin
+ if Supports(DataTable, IBizPagosCliente) then
+ FContacto := dmContactos.GetCliente(CODIGOCONTACTO)
+ else if Supports(DataTable, IBizPagosProveedor) then
+ FContacto := dmContactos.GetProveedor(CODIGOCONTACTO)
+ else raise Exception.Create('Interfaz del pago no soportada');
+ end
+ else
+ if (CODIGOCONTACTO <> FContacto.Codigo) and
+ not (FContacto.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FContacto, CODIGOCONTACTO);
+
+ if not FContacto.DataTable.Active then
+ FContacto.DataTable.Active := True;
+
+ Result := FContacto;
+end;
+
+procedure TBizPagosDataTableRules.SetContacto(Value: IBizContacto);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FContacto := Value;
+ if Assigned(FContacto) then
+ begin
+ CODIGOCONTACTO := FContacto.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+function TBizPagosDataTableRules.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+{ TBizPagosCliente }
+
+procedure TBizPagosCliente.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+function TBizPagosCliente.Show: TModalResult;
+begin
+ Result := inherited Show;
+ Result := ShowEditor(IBizPagosCliente, Self, etItem);
+end;
+
+{ TBizPagosProveedor }
+
+procedure TBizPagosProveedor.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el proveedor', 'Atención', MB_ICONWARNING or MB_OK)
+ else
+ raise Error;
+ end
+ else
+ raise Error;
+end;
+
+function TBizPagosProveedor.Show: TModalResult;
+begin
+ Result := inherited Show;
+ Result := ShowEditor(IBizPagosProveedor, Self, etItem);
+end;
+
+procedure TBizPagosDataTableRules.Print;
+begin
+ dmPagos.Print(Self.CODIGO);
+end;
+
+procedure TBizPagosDataTableRules.anadirAsiento;
+var
+ DatosAsiento : TDatosAsiento;
+ Cadena: String;
+begin
+ if (Application.MessageBox('¿Desea añadir una entrada en la cuenta asociada al cobro/pago?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ DatosAsiento := TDatosAsiento.Create;
+ with DatosAsiento do
+ begin
+ CodigoCuenta := Self.CUENTA;
+ FechaAsiento := Self.FECHAPAGO;
+ CodigoPago := Self.CODIGO;
+
+ if Supports(DataTable, IBizPagosCliente) then
+ begin
+ if Self.IMPORTE < 0
+ then Cadena := '[Abono de cliente: ' + Self.CONTACTO.NOMBRE + ']: '
+ else Cadena := '[Cobro de cliente: ' + Self.CONTACTO.NOMBRE + ']: ';
+ Descripcion := Cadena + Self.DESCRIPCION;
+ Importe := Self.IMPORTE;
+ end
+ else if Supports(DataTable, IBizPagosProveedor) then
+ begin
+ if Self.IMPORTE < 0
+ then Cadena := '[Abono de proveedor: ' + Self.CONTACTO.NOMBRE + ']: '
+ else Cadena := '[Pago a proveedor: ' + Self.CONTACTO.NOMBRE + ']: ';
+ Descripcion := Cadena + Self.DESCRIPCION;
+ Importe := (-1) * Self.IMPORTE;
+ end
+ else raise Exception.Create('Interfaz del pago no soportada');
+ end;
+ dmAsientos.anadirAsiento(DatosAsiento);
+ DatosAsiento.Free;
+ end;
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_PAGOSPROVEEDOR, TBizPagosProveedor);
+ RegisterDataTableRules(BIZ_PAGOSCLIENTE, TBizPagosCliente);
+
+finalization
+
+end.
diff --git a/Modulos/Pagos/Servidor/srvPagos_Impl.ddp b/Modulos/Pagos/Servidor/srvPagos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pagos/Servidor/srvPagos_Impl.ddp differ
diff --git a/Modulos/Pagos/Servidor/srvPagos_Impl.dfm b/Modulos/Pagos/Servidor/srvPagos_Impl.dfm
new file mode 100644
index 0000000..e615c4a
--- /dev/null
+++ b/Modulos/Pagos/Servidor/srvPagos_Impl.dfm
@@ -0,0 +1,1083 @@
+object srvPagos: TsrvPagos
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schPagos
+ ServiceAdapter = DABINAdapter
+ Left = 345
+ Top = 452
+ Height = 300
+ Width = 300
+ object schPagos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'SELECT PAGOS.CODIGOEMPRESA, PAGOS.CODIGO, PAGOS.CUENTA, PAGOS.FE' +
+ 'CHAPAGO,'#10' PAGOS.FORMAPAGO, PAGOS.DESCRIPCION, PAGOS.IMPORT' +
+ 'E, PAGOS.CODIGOCONTACTO,'#10' CON.NOMBRE, CON.NIFCIF, CON.CALL' +
+ 'E, CON.CODIGOPOSTAL, CON.POBLACION,'#10' CON.PROVINCIA'#10#10'FROM P' +
+ 'AGOS LEFT JOIN CONTACTOS CON ON (PAGOS.CODIGOCONTACTO = CON.CODI' +
+ 'GO)'#10#10'WHERE PAGOS.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'CUENTA'
+ TableField = 'CUENTA'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'IMPORTE'
+ TableField = 'IMPORTE'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end>
+ end>
+ Name = 'InformeCabeceraPago'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PAGOS'
+ SQL =
+ 'SELECT '#10' PAGOS.CODIGOEMPRESA, PAGOS.CODIGO, PAGOS.FECHAALTA, ' +
+ 'PAGOS.USUARIO,'#10' PAGOS.CUENTA, PAGOS.IMPORTE, PAGOS.FORMAPAGO,' +
+ ' PAGOS.DESCRIPCION,'#10' PAGOS.FECHAPAGO, PAGOS.FECHAMODIFICACION' +
+ ', PAGOS.CODIGOCONTACTO,'#10' CON.NOMBRE, CC.CODIGOCATEGORIA, CAT.' +
+ 'DESCRIPCION as CATEGORIA'#10' '#10'FROM PAGOS'#10'LEFT JOIN CONTACTOS CON' +
+ ' ON (PAGOS.CODIGOCONTACTO = CON.CODIGO)'#10'LEFT JOIN CONTACTOSCATEG' +
+ 'ORIAS CC ON (CON.CODIGO = CC.CODIGOCONTACTO)'#10'LEFT JOIN CATEGORIA' +
+ 'S CAT ON (CC.CODIGOCATEGORIA = CAT.CODIGO)'#10#10'ORDER BY PAGOS.FECHA' +
+ 'PAGO DESC, PAGOS.FECHAALTA DESC'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'IMPORTE'
+ TableField = 'IMPORTE'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'FECHAMODIFICACION'
+ TableField = 'FECHAMODIFICACION'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOCATEGORIA'
+ TableField = 'CODIGOCATEGORIA'
+ end
+ item
+ DatasetField = 'CATEGORIA'
+ TableField = 'CATEGORIA'
+ end
+ item
+ DatasetField = 'CUENTA'
+ TableField = 'CUENTA'
+ end>
+ end>
+ Name = 'Pagos'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAMODIFICACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAMODIFICACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CATEGORIA'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PAGOS'
+ SQL =
+ 'SELECT '#10' PAGOS.CODIGOEMPRESA, PAGOS.CODIGO, PAGOS.FECHAALTA, ' +
+ 'PAGOS.USUARIO,'#10' PAGOS.CUENTA, PAGOS.IMPORTE, PAGOS.FORMAPAGO,' +
+ ' PAGOS.DESCRIPCION,'#10' PAGOS.FECHAPAGO, PAGOS.FECHAMODIFICACION' +
+ ', PAGOS.CODIGOCONTACTO,'#10' CON.NOMBRE, CC.CODIGOCATEGORIA, CAT.' +
+ 'DESCRIPCION as CATEGORIA'#10' '#10'FROM PAGOS'#10'LEFT JOIN CONTACTOS CON' +
+ ' ON (PAGOS.CODIGOCONTACTO = CON.CODIGO)'#10'LEFT JOIN CONTACTOSCATEG' +
+ 'ORIAS CC ON (CON.CODIGO = CC.CODIGOCONTACTO)'#10'LEFT JOIN CATEGORIA' +
+ 'S CAT ON (CC.CODIGOCATEGORIA = CAT.CODIGO)'#10#10'WHERE PAGOS.CODIGO =' +
+ ' :CODIGO'#10#10'ORDER BY PAGOS.FECHAPAGO DESC, PAGOS.FECHAALTA DESC'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'IMPORTE'
+ TableField = 'IMPORTE'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'FECHAMODIFICACION'
+ TableField = 'FECHAMODIFICACION'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOCATEGORIA'
+ TableField = 'CODIGOCATEGORIA'
+ end
+ item
+ DatasetField = 'CATEGORIA'
+ TableField = 'CATEGORIA'
+ end
+ item
+ DatasetField = 'CUENTA'
+ TableField = 'CUENTA'
+ end>
+ end>
+ Name = 'Refresh_Pagos'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAMODIFICACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAMODIFICACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CATEGORIA'
+ DataType = datString
+ Size = 100
+ 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 = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PAGOS'
+ SQL =
+ 'INSERT'#10' INTO PAGOS'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA, USUAR' +
+ 'IO, CUENTA,'#10' IMPORTE, FORMAPAGO, DESCRIPCION, CODIGOCONTACTO' +
+ ', FECHAPAGO, '#10' FECHAMODIFICACION)'#10' VALUES'#10' (:CODIGOEMPRE' +
+ 'SA, :CODIGO, current_timestamp, :USUARIO, :CUENTA,'#10' :IMPORTE' +
+ ', :FORMAPAGO, :DESCRIPCION, :CODIGOCONTACTO, '#10' :FECHAPAGO, c' +
+ 'urrent_timestamp)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_Pagos'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PAGOS'
+ SQL = 'DELETE '#10' FROM'#10' PAGOS'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Pagos'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CUENTA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PAGOS'
+ SQL =
+ 'UPDATE PAGOS'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10' COD' +
+ 'IGO = :CODIGO, '#10' CUENTA = :CUENTA,'#10' IMPORTE = :IMPORTE, '#10' ' +
+ ' FORMAPAGO = :FORMAPAGO, '#10' DESCRIPCION = :DESCRIPCION, '#10' ' +
+ ' CODIGOCONTACTO = :CODIGOCONTACTO, '#10' FECHAPAGO = :FECHAPAGO, ' +
+ #10' FECHAMODIFICACION = current_timestamp'#10' WHERE'#10' (CODIGO =' +
+ ' :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_Pagos'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 40
+ Top = 16
+ end
+ object bpPagos: TDABusinessProcessor
+ Schema = schPagos
+ InsertCommandName = 'Insert_Pagos'
+ DeleteCommandName = 'Delete_Pagos'
+ UpdateCommandName = 'Update_Pagos'
+ RefreshDatasetName = 'Refresh_Pagos'
+ ReferencedDataset = 'Pagos'
+ ProcessorOptions = [poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 128
+ Top = 16
+ end
+ object frxReport1: TfrxReport
+ Version = '3.15'
+ 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 = 38755.499605821760000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );'
+ 'end;'
+ ''
+ 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'T'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo2.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo3.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo4.Style := '#39'Concepto titulo'#39';'
+ ' end;'
+ ' end;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSum' +
+ 'mary1.Height - 1;'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 48
+ Top = 160
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ 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 frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 160
+ end
+ object tbl_Pagos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 136
+ Top = 208
+ end
+ object DADataCabecera: TDADataSource
+ DataTable = tbl_Pagos
+ Left = 48
+ Top = 208
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Modulos/Pagos/Servidor/srvPagos_Impl.pas b/Modulos/Pagos/Servidor/srvPagos_Impl.pas
new file mode 100644
index 0000000..2bb9fc1
--- /dev/null
+++ b/Modulos/Pagos/Servidor/srvPagos_Impl.pas
@@ -0,0 +1,83 @@
+unit srvPagos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor,
+ uDAClasses, uDADataTable, uDACDSDataTable, frxClass, frxDBSet, DB,
+ uDAInterfaces, uDABINAdapter;
+
+type
+ { TsrvPagos }
+ TsrvPagos = class(TDARemoteService, IsrvPagos)
+ bpPagos: TDABusinessProcessor;
+ frxDBCabecera: TfrxDBDataset;
+ tbl_Pagos: TDACDSDataTable;
+ DADataCabecera: TDADataSource;
+ frxReport1: TfrxReport;
+ schPagos: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer): Binary;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer;
+
+procedure Create_srvPagos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvPagos.Create(NIL);
+end;
+
+{ srvPagos }
+function TsrvPagos.GenerateReport(const Codigo: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schPagos.NewDataset(Connection, 'InformeCabeceraPago', ['CODIGO'], [Codigo]);
+// dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Pagos, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfRecibo.fr3', True);
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvPagos.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_PAGOS');
+end;
+
+{ srvPagos }
+initialization
+ TROClassFactory.Create('srvPagos', Create_srvPagos, TsrvPagos_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.bdsproj b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.bdsproj
new file mode 100644
index 0000000..a82b678
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ PedidosProveedor.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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.cfg b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.cfg
new file mode 100644
index 0000000..2b80ae7
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dcp b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dcp
new file mode 100644
index 0000000..c646ba8
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dcp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dof b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dof
new file mode 100644
index 0000000..0b14805
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dof
@@ -0,0 +1,175 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\Reglas;..\..\Presupuestos\Cliente;..\..\Almacenes\Cliente;..\..\Montajes\Cliente;..\..\Documentos asociados
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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=
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dpk b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dpk
new file mode 100644
index 0000000..a71a403
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.dpk
@@ -0,0 +1,100 @@
+package PedidosProveedor;
+
+{$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 OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ JvCoreD7R,
+ vcljpg,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R,
+ JvSystemD7R,
+ tb2k_d7,
+ tbx_d7,
+ dbrtl,
+ frx7,
+ fs7,
+ dsnap,
+ adortl,
+ designide,
+ ccpack70,
+ tee,
+ fqb70,
+ bdertl,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ cxGridVCLD7,
+ cxPageControlVCLD7,
+ cxExtEditorsVCLD7,
+ cxExportVCLD7,
+ BaseD7,
+ Contactos,
+ JvCtrlsD7R,
+ JvAppFrmD7R,
+ dxPSCoreD7,
+ dxComnD7,
+ cxIntlPrintSys3D7,
+ dxPScxCommonD7,
+ dxPSLnksD7,
+ vclshlctrls,
+ dxPScxGridLnkD7,
+ dclcxLibraryVCLD7,
+ Presupuestos,
+ Almacenes,
+ Montajes_Intf,
+ frxe7,
+ Jcl,
+ JclVcl;
+
+contains
+ uPluginControllerPedidosProveedor in 'uPluginControllerPedidosProveedor.pas' {ModulePedidosProveedor: TModuleController},
+ uBizPedidosProveedor in '..\Reglas\uBizPedidosProveedor.pas',
+ uDataModulePedidosProveedor in 'uDataModulePedidosProveedor.pas' {dmPedidos: TDAClientDataModule},
+ uEditorPedidosProveedor in 'uEditorPedidosProveedor.pas' {fEditorPedidosProveedor: TCustomEditor},
+ uViewPedidosProveedor in 'uViewPedidosProveedor.pas' {frViewPedidosProveedor: TFrame},
+ uViewDatosPedidoProveedor in 'uViewDatosPedidoProveedor.pas' {frViewDatosPedidoProveedor: TFrame},
+ uViewDestinoPedidoProveedor in 'uViewDestinoPedidoProveedor.pas' {frViewDestinoPedidoProveedor: TFrame},
+ uViewPedidoProveedor in 'uViewPedidoProveedor.pas' {frViewPedidoProveedor: TFrame},
+ uEditorPedidoProveedor in 'uEditorPedidoProveedor.pas' {fEditorPedidoProveedor: TCustomEditor},
+ uViewDetallesPedidosProveedor in 'uViewDetallesPedidosProveedor.pas' {frViewDetallesPedidosProveedor: TFrame},
+ uViewTotalPedido in 'uViewTotalPedido.pas' {frViewTotalPedido: TFrame},
+ uViewMontajePedido in 'uViewMontajePedido.pas' {frViewMontajePedido: TCustomView},
+ schPedidosProveedorClient_Intf in '..\Reglas\schPedidosProveedorClient_Intf.pas',
+ schPedidosProveedorServer_Intf in '..\Reglas\schPedidosProveedorServer_Intf.pas',
+ uViewIncidencias in 'uViewIncidencias.pas' {frViewIncidencias: TCustomView},
+ uViewDatosPedido in 'uViewDatosPedido.pas' {frViewDatosPedido: TCustomView};
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.drc b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.res b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/PedidosProveedor.res differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.dfm
new file mode 100644
index 0000000..94d5493
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.dfm
@@ -0,0 +1,614 @@
+object dmPedidos: TdmPedidos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 626
+ Top = 357
+ Height = 340
+ Width = 423
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvPedidosProveedor'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 32
+ Top = 16
+ end
+ object DABinAdapter: TDABINAdapter
+ Left = 32
+ Top = 80
+ end
+ object tbl_DetallesPedidosProveedor: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOPEDIDO=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPedidosProveedor'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPedidosProveedor'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPedidosProveedor'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ MasterSource = ds_PedidosProveedor
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOPEDIDO'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'DetallesPedidosProveedor'
+ IndexDefs = <>
+ Left = 152
+ Top = 112
+ end
+ object ds_DetallesPedidosProveedor: TDADataSource
+ DataTable = tbl_DetallesPedidosProveedor
+ Left = 288
+ Top = 110
+ end
+ object tbl_PedidosProveedor: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Confirmaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHACONFIRMACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'SITUACIONPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Entrega'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Direcci'#243'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Incidencias'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIASACTIVAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DefaultValue = '0'
+ Required = True
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBREALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO1'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRECLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'PedidosProveedor'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'PedidosProveedor'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'PedidosProveedor'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'PedidosProveedor'
+ IndexDefs = <>
+ Left = 152
+ Top = 24
+ end
+ object ds_PedidosProveedor: TDADataSource
+ DataTable = tbl_PedidosProveedor
+ Left = 288
+ Top = 24
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.pas
new file mode 100644
index 0000000..6e1a336
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uDataModulePedidosProveedor.pas
@@ -0,0 +1,208 @@
+unit uDataModulePedidosProveedor;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizPedidosProveedor, uROTypes;
+
+type
+ TdmPedidos = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ DABinAdapter: TDABINAdapter;
+ tbl_DetallesPedidosProveedor: TDACDSDataTable;
+ ds_DetallesPedidosProveedor: TDADataSource;
+ tbl_PedidosProveedor: TDACDSDataTable;
+ ds_PedidosProveedor: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+{ private
+ procedure Fax (AFile : String);}
+ public
+ procedure Print(Const Codigo: Integer);
+ procedure Preview(Const Codigo: Integer);
+ function GetNextAutoinc : integer;
+ function GetItems: IBizPedidosProveedor;
+ function GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
+ function GetItemsPendientesRecepcion: IBizPedidosProveedor;
+ function GetItem(Codigo : Integer): IBizPedidosProveedor;
+ function DarNuevaReferencia : String;
+ function PuedoEliminarPedido(Codigo : Integer) : Boolean;
+ end;
+
+var
+ dmPedidos: TdmPedidos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto, FactuGES_Intf,
+ uDataModuleContactos, uDataModuleBase, schPedidosProveedorClient_Intf,
+ uDAInterfaces, uEditorPreview, Dialogs;
+
+{ TDAClientDataModule1 }
+
+function TdmPedidos.GetItems: IBizPedidosProveedor;
+begin
+ Result := (GetDataTableItems(BIZ_PEDIDOSPROVEEDOR) as IBizPedidosProveedor);
+end;
+
+procedure TdmPedidos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+end;
+
+
+function TdmPedidos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvPedidosProveedor).GetNextAutoinc;
+end;
+
+function TdmPedidos.DarNuevaReferencia: String;
+begin
+ Result := (RORemoteService as IsrvPedidosProveedor).DarNuevaReferencia;
+end;
+
+function TdmPedidos.GetItem(Codigo: Integer): IBizPedidosProveedor;
+var
+ APedido: IBizPedidosProveedor;
+begin
+ APedido := GetItems;
+ with APedido.DataTable do
+ begin
+ if Active then Active := False;
+ Where.Clear;
+ Where.OpenBraket;
+ Where.AddText('PED.' + fld_pedidosproveedorCODIGO + ' = ' + IntToStr(Codigo), False);
+ Where.CloseBraket;
+ end;
+ Result := APedido;
+end;
+
+function TdmPedidos.GetItemsPendientesRecepcion: IBizPedidosProveedor;
+var
+ dsPedidos : IBizPedidosProveedor;
+begin
+ dsPedidos := GetItems;
+ with dsPedidos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText('PEDIDOS.' + fld_PedidosProveedorSITUACION + '=' + '''' + SITUACION_PENDIENTE + '''', False);
+ CloseBraket;
+ AddOperator(opOR);
+ OpenBraket;
+ AddText('PEDIDOS.' + fld_PedidosProveedorSITUACION + '=' + '''' + SITUACION_PARCIAL + '''', False);
+ CloseBraket;
+ end;
+ Result := dsPedidos;
+end;
+
+procedure TdmPedidos.Preview(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPedidosProveedor).GenerateReport(Codigo);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.ShowModal;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+procedure TdmPedidos.Print(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+ AFile : String;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPedidosProveedor).GenerateReport(Codigo);
+ AEditorPreview.LoadFromStream(AStream);
+ AFile := AEditorPreview.ExportToFile;
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPedidos.PuedoEliminarPedido(Codigo: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvPedidosProveedor).PuedoEliminarPedido(Codigo);
+end;
+
+function TdmPedidos.GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
+var
+ dtPedidos: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtPedidos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_PedidosProveedor, dtPedidos);
+ with dtPedidos do
+ begin
+ BusinessRulesID := IDBusiness;
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesPedidosProveedor, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESPEDIDOSPROVEEDOR;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesPedidosProveedorCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesPedidosProveedorIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesPedidosProveedorTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+ end;
+
+ (dtPedidos as IBizPedidosProveedor).Detalles := (dtDetalles as IBizDetallesPedidoProveedor);
+
+ Result := dtPedidos;
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+{procedure TdmPedidos.Fax (AFile : String);
+var
+ FxDoc: TFaxDocument;
+ FaxServer: TFaxService;
+begin
+ FaxServer := TFaxService.Create(Self);
+ FaxServer.ActiveDeviceID := 0;
+ FaxServer.Connect('');
+ try
+ FxDoc := FaxServer.CreateFaxDocument;
+ //fxDoc.DocumentName := 'aa';
+ fxDoc.FileName := AFile;
+ FxDoc.RecipientNumber := '12345678';
+ FxDoc.RecipientName := 'Bo Berglund';
+ FxDoc.Send(nil);
+ finally
+ FaxServer.Disconnect;
+ end;
+end;}
+
+initialization
+ dmPedidos := TdmPedidos.Create(nil);
+
+finalization
+ FreeAndNil(dmPedidos);
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.dfm
new file mode 100644
index 0000000..4baa146
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.dfm
@@ -0,0 +1,199 @@
+inherited fEditorPedidoProveedor: TfEditorPedidoProveedor
+ Left = 332
+ Top = 147
+ Width = 770
+ Height = 636
+ Caption = 'Nuevo pedido a proveedor'
+ Constraints.MinWidth = 770
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 762
+ Caption = 'Nuevo pedido a proveedor'
+ inherited Image1: TImage
+ Left = 735
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000026C4944415478DA63FCFFFF3F
+ C3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC1F4C838085
+ 6F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679ABF730CC5F
+ B211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F610BB0F900
+ 5D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683FFFF80610D
+ C47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB801800F285EF83
+ 770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00A44771E55A
+ 864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E492550CBB0E
+ 9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F06865F3F2018C4
+ FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B220C2D30C9C
+ 3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400E67A10F8F8
+ 0EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE48300172386D32E6E78
+ 5D078A5890664200643808A058E0EB60002F5720E5FC3F70D903160396F94FA3
+ 43C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F5B3D9C8683
+ E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1C0CD5A1BA7
+ E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D9581E1F865
+ 240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C19B1708C341
+ 166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C806DAF0FDC
+ 0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F27C82A9235D
+ 7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8D4201B0E02
+ 00C20B50400F1E42A70000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 762
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 762
+ Height = 436
+ inherited pagGeneral: TTabSheet
+ inline frViewPedidoProveedor1: TfrViewPedidoProveedor
+ Left = 0
+ Top = 0
+ Width = 754
+ Height = 408
+ Align = alClient
+ AutoSize = True
+ Constraints.MinHeight = 350
+ Constraints.MinWidth = 745
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Height = 10
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewDatosYSeleccionContactoedtlNombrePropertiesChange
+ end
+ inherited ToolBar2: TToolBar
+ Width = 201
+ end
+ end
+ inherited frViewObservaciones: TfrViewObservaciones
+ inherited memObservaciones: TcxDBMemo
+ Height = 142
+ Width = 349
+ end
+ end
+ inherited frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor
+ inherited Bevel1: TBevel
+ Width = 224
+ end
+ inherited cbAlmacen: TcxDBLookupComboBox
+ Width = 308
+ end
+ end
+ end
+ end
+ object pagContenido: TTabSheet
+ Caption = 'Contenido'
+ ImageIndex = 1
+ inline frViewDetallesPedidosProveedor: TfrViewDetallesPedidosProveedor
+ Left = 0
+ Top = 0
+ Width = 754
+ Height = 408
+ 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 = 754
+ Height = 383
+ end
+ inherited ToolBar1: TToolBar
+ Width = 754
+ end
+ end
+ end
+ object pagInicidencias: TTabSheet
+ Caption = 'Incidencias'
+ ImageIndex = 2
+ inline frViewIncidencias: TfrViewIncidencias
+ Left = 0
+ Top = 0
+ Width = 754
+ Height = 408
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited pnlSup: TPanel
+ Width = 754
+ end
+ inherited GroupBox1: TGroupBox
+ Width = 754
+ Height = 380
+ inherited eIncidencias: TcxDBMemo
+ Height = 347
+ Width = 731
+ end
+ end
+ end
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 583
+ Width = 762
+ end
+ inline frViewTotalPedido: TfrViewTotalPedido [4]
+ Left = 0
+ Top = 512
+ Width = 762
+ Height = 71
+ Align = alBottom
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited GroupBox1: TGroupBox
+ Width = 257
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Properties.ReadOnly = False
+ Style.IsFontAssigned = True
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ end
+ inherited SmallImages: TPngImageList [6]
+ end
+ inherited LargeImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.pas
new file mode 100644
index 0000000..79acad1
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidoProveedor.pas
@@ -0,0 +1,172 @@
+unit uEditorPedidoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
+ JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
+ PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uBizPedidosProveedor,
+ uViewPedidoProveedor, uCustomView, uViewBase, uViewContenido,
+ StdCtrls, pngimage, AppEvnts, uViewDetallesFamilias,
+ uViewDetallesNormales, uViewDetallesPedidosProveedor, uViewTotalPedido,
+ cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit,
+ uViewIncidencias, JvComponentBase;
+
+type
+ IEditorPedidoProveedor = interface(IEditorDBItem)
+ ['{A2784067-14B2-48AA-9696-B0CA420B4973}']
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor write
+ SetPedidoProveedor;
+ end;
+
+ TfEditorPedidoProveedor = class(TfEditorDBItem, IEditorPedidoProveedor)
+ pagContenido: TTabSheet;
+ frViewDetallesPedidosProveedor: TfrViewDetallesPedidosProveedor;
+ frViewTotalPedido: TfrViewTotalPedido;
+ pagInicidencias: TTabSheet;
+ frViewPedidoProveedor1: TfrViewPedidoProveedor;
+ frViewIncidencias: TfrViewIncidencias;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure FormShow(Sender: TObject); override;
+ procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+ private
+ FPedidoProveedor: IBizPedidosProveedor;
+ FViewPedidoProveedor: IViewPedidoProveedor;
+ protected
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ function GetViewPedidoProveedor: IViewPedidoProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ procedure SetViewPedidoProveedor(const Value: IViewPedidoProveedor);
+ property ViewPedidoProveedor: IViewPedidoProveedor read GetViewPedidoProveedor write
+ SetViewPedidoProveedor;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor write
+ SetPedidoProveedor;
+ end;
+
+var
+ fEditorPedidoProveedor: TfEditorPedidoProveedor;
+
+implementation
+
+uses uEditorUtils, uDataModulePedidosProveedor, uBizImportesDetalleBase,
+ uDataModulePresupuestos, uBizPresupuestosCliente,
+ uExceptions;
+
+{$R *.dfm}
+
+function ShowEditorPedidoProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPedidoProveedor;
+begin
+ AEditor := TfEditorPedidoProveedor.Create(Application);
+ try
+ AEditor.PedidoProveedor := (ABizObject as IBizPedidosProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPedidoProveedor }
+
+{
+**************************** TfEditorPedidoProveedor ****************************
+}
+constructor TfEditorPedidoProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewPedidoProveedor := CreateView(TfrViewPedidoProveedor) as IViewPedidoProveedor;
+ pgPaginas.ActivePageIndex := 0;
+ ViewPedidoProveedor := frViewPedidoProveedor1;
+end;
+
+destructor TfEditorPedidoProveedor.Destroy;
+begin
+ FViewPedidoProveedor := NIL;
+ FPedidoProveedor := NIL;
+ inherited;
+end;
+
+procedure TfEditorPedidoProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este pedido a proveedor?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorPedidoProveedor.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewPedidoProveedor) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(PedidoProveedor) then
+ raise Exception.Create('No hay ningún pedido asignado');
+
+ PedidoProveedor.DataTable.Active := True;
+// FViewPedidoProveedor.ShowEmbedded(pagGeneral);
+// FViewPedidoProveedor.SetFocus;
+end;
+
+function TfEditorPedidoProveedor.GetPedidoProveedor: IBizPedidosProveedor;
+begin
+ Result := FPedidoProveedor;
+end;
+
+function TfEditorPedidoProveedor.GetViewPedidoProveedor: IViewPedidoProveedor;
+begin
+ Result := FViewPedidoProveedor;
+end;
+
+procedure TfEditorPedidoProveedor.SetPedidoProveedor(const Value: IBizPedidosProveedor);
+begin
+ FPedidoProveedor := Value;
+
+ if Assigned(FPedidoProveedor) then
+ begin
+ dsDataTable.DataTable := FPedidoProveedor.DataTable;
+ frViewTotalPedido.DADataSource.DataTable := FPedidoProveedor.DataTable;
+ frViewIncidencias.DADataSource.DataTable := FPedidoProveedor.DataTable;
+ frViewDetallesPedidosProveedor.DADataSource.DataTable := FPedidoProveedor.Detalles.DataTable;
+
+ if Assigned(FViewPedidoProveedor) then
+ FViewPedidoProveedor.PedidoProveedor := FPedidoProveedor;
+ end;
+end;
+
+procedure TfEditorPedidoProveedor.SetViewPedidoProveedor(const Value:
+ IViewPedidoProveedor);
+begin
+ FViewPedidoProveedor := Value;
+
+ if Assigned(FViewPedidoProveedor) and Assigned(PedidoProveedor) then
+ FViewPedidoProveedor.PedidoProveedor := PedidoProveedor;
+end;
+
+procedure TfEditorPedidoProveedor.frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewPedidoProveedor1.frViewDatosYSeleccionContacto.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo pedido a proveedor'
+ else
+ JvNavPanelHeader.Caption := 'Pedido para ' +
+ frViewPedidoProveedor1.frViewDatosYSeleccionContacto.edtlNombre.Text +
+ ' (' + FPedidoProveedor.SITUACION + ')';
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+initialization
+ RegisterEditor(IBizPedidosProveedor, ShowEditorPedidoProveedor, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.dfm
new file mode 100644
index 0000000..eb1e6b8
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.dfm
@@ -0,0 +1,1403 @@
+inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
+ Left = 327
+ Top = 246
+ Caption = 'Lista de pedidos a proveedor'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de pedidos a proveedor'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC0000026C4944415478DA63FCFFFF3F
+ C3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC1F4C838085
+ 6F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679ABF730CC5F
+ B211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F610BB0F900
+ 5D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683FFFF80610D
+ C47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB801800F285EF83
+ 770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00A44771E55A
+ 864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E492550CBB0E
+ 9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F06865F3F2018C4
+ FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B220C2D30C9C
+ 3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400E67A10F8F8
+ 0EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE48300172386D32E6E78
+ 5D078A5890664200643808A058E0EB60002F5720E5FC3F70D903160396F94FA3
+ 43C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F5B3D9C8683
+ E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1C0CD5A1BA7
+ E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D9581E1F865
+ 240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C19B1708C341
+ 166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C806DAF0FDC
+ 0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F27C82A9235D
+ 7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8D4201B0E02
+ 00C20B50400F1E42A70000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 482
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 707
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 707
+ inherited bSeleccionar: TButton
+ Left = 550
+ end
+ inherited bCancelar: TButton
+ Left = 629
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 22
+ OnExecute = actNuevoExecute
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 610000000970485973000017120000171201679FD252000001864944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218
+ 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6
+ 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E
+ 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D
+ 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054
+ 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19
+ 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438
+ BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00
+ 45135E518E0B4E380000000049454E44AE426082}
+ Name = 'PngImage22'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD2520000026C4944415478DA
+ 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC
+ 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679
+ ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F
+ 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683
+ FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018
+ 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00
+ A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4
+ 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686
+ 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2
+ 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400
+ E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723
+ 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316
+ 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F
+ 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1
+ C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D
+ 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1
+ 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C
+ 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2
+ 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8
+ D4201B0E0200C20B50400F1E42A70000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.pas
new file mode 100644
index 0000000..777b637
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uEditorPedidosProveedor.pas
@@ -0,0 +1,194 @@
+unit uEditorPedidosProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ uCustomEditor, uEditorGrid, uBizPedidosProveedor, ImgList,
+ PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
+ TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
+ uViewPedidosProveedor, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
+ uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
+ uViewBase, uViewBarraSeleccion, JvComponentBase;
+
+type
+ IEditorPedidosProveedor = interface(IEditorGrid)
+ ['{B7F914EC-3EB4-436F-98B9-6D3E4486C84F}']
+ function GetPedidosProveedor: IBizPedidosProveedor;
+ procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
+ property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
+ SetPedidosProveedor;
+ end;
+
+ TfEditorPedidosProveedor = class(TfEditorGrid, IEditorPedidosProveedor)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ private
+ FPedidosProveedor: IBizPedidosProveedor;
+ protected
+ function GetPedidosProveedor: IBizPedidosProveedor;
+ function GetSelectionBarVisible: Boolean;
+ procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
+ SetPedidosProveedor;
+ property SelectionBarVisible: Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+var
+ fEditorPedidosProveedor : TfEditorPedidosProveedor;
+
+implementation
+
+uses uDataModulePedidosProveedor, uEditorUtils, uBizPresupuestosCliente, uDataModulePresupuestos;
+
+{$R *.DFM}
+
+function ShowEditorPedidosProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPedidosProveedor;
+begin
+ AEditor := TfEditorPedidosProveedor.Create(Application);
+ try
+ AEditor.PedidosProveedor := (ABizObject as IBizPedidosProveedor);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorPedidosProveedor (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPedidosProveedor;
+begin
+ AEditor := TfEditorPedidosProveedor.Create(Application);
+ try
+ AEditor.PedidosProveedor := (ABizObject as IBizPedidosProveedor);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPedidosProveedor }
+
+{
+***************************** TfEditorPedidosProveedor *****************************
+}
+constructor TfEditorPedidosProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewPedidosProveedor) as IViewPedidosProveedor;
+end;
+
+destructor TfEditorPedidosProveedor.Destroy;
+begin
+ FPedidosProveedor := NIL;
+ inherited;
+end;
+
+procedure TfEditorPedidosProveedor.actEliminarExecute(Sender: TObject);
+begin
+ if (MessageDlg('¿Desea borrar este presupuesto?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorPedidosProveedor.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ PedidosProveedor.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPedidosProveedor.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ PedidosProveedor.Insert;
+ PedidosProveedor.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPedidosProveedor.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+end;
+
+procedure TfEditorPedidosProveedor.frViewBarraSeleccionbCancelarClick(Sender:
+ TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+function TfEditorPedidosProveedor.GetPedidosProveedor: IBizPedidosProveedor;
+begin
+ Result := FPedidosProveedor;
+end;
+
+function TfEditorPedidosProveedor.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorPedidosProveedor.SetPedidosProveedor(const Value: IBizPedidosProveedor);
+begin
+ FPedidosProveedor := Value;
+ dsDataTable.DataTable := FPedidosProveedor.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewPedidosProveedor).PedidosProveedor := PedidosProveedor;
+end;
+
+procedure TfEditorPedidosProveedor.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorPedidosProveedor.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(PedidosProveedor) then
+ (ViewGrid as IViewPedidosProveedor).PedidosProveedor := PedidosProveedor;
+end;
+
+procedure TfEditorPedidosProveedor.actDuplicarExecute(Sender: TObject);
+var
+ APedido: IBizPedidosProveedor;
+begin
+ inherited;
+ APedido := dmPedidos.GetItem(PedidosProveedor.CODIGO);
+ PedidosProveedor.Insert;
+ PedidosProveedor.CopyFrom(APedido);
+ PedidosProveedor.DataTable.ApplyUpdates;
+ ViewGrid.RefreshGrid;
+// ViewGrid.GotoFirst;
+end;
+
+initialization
+ RegisterEditor(IBizPedidosProveedor, ShowEditorPedidosProveedor, etItems);
+ RegisterEditor(IBizPedidosProveedor, ShowSelectEditorPedidosProveedor, etSelectItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.dfm
new file mode 100644
index 0000000..bb13a9c
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.dfm
@@ -0,0 +1,220 @@
+object ModulePedidosProveedor: TModulePedidosProveedor
+ OldCreateOrder = True
+ DefaultAction = actPedidosProveedor
+ Description = 'Pedidos a proveedor'
+ ModuleMenu = MainMenu
+ ModuleName = 'Pedidos a proveedor'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 652
+ Top = 457
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD2520000026C4944415478DA
+ 63FCFFFF3FC3A28DC7FF335009C4F95B3222F319611600254836ECEFDF7F40FC
+ 1F4C8380856F36C3C53DB3705BB0D7D21EC500E7E307711A8EACD674CF2E8679
+ ABF730CC5FB211BF05A4B8FC808D2383328B34C3B6D3CB19225F7E6358B87E1F
+ 610BB0F9005D0C046C0FEE63386CEFC470F3FC21303FECD91786259B0E50E683
+ FFFF80610DC47F80AE07B17FFF0386FF9F7F60DFFCF9F79761C596C3A4FB8018
+ 00F285EF83770C6B771C23CE0298B749015E77DF306CD87D82380BF0A51C6C00
+ A44771E55A864DFB4E126F01AEA082590E9387A9955BBE8661EB8153B4F381E4
+ 92550CBB0E9FA1AE0F6EAA108EABC75FEDC8F3C1B4584686847408FBE74F0686
+ 5F3F2018C4FEF903824F1C47B320DAC71C9C3B09F98058C3F9251818AEDC45B2
+ 20C2D30C9C3BF1F90064388B207EDFFD798F301C250E42DD4C188E39B910B400
+ E67A10F8F80EE2E21F5097FFFACEC070FA0C2468EC0D0F311C3C8FE483001723
+ 86D32E6E785D078A5890664200643808A058E0EB60002F5720E5FC3F70D90316
+ 0396F94FA343C11620FB001C247F81F83703C36F501C007D70ED3A420EC5022F
+ 5B3D9C8683E81771E11816FCFA05341888FF40E995ABD919D4357E32B0B160B1
+ C0CD5A1BA7E1A012F44D62248605A038005B00F201106FDACACE202D0FB1808D
+ 9581E1F865240B1CCD35C086FDFB0B29967FFF4514C7FFFE432C3ADD2D8F62C1
+ 9B1708C341166DDFCDCE202A0DB1E0F21D3B86F6750719E116D899A8814B447C
+ 806DAF0FDC0250F0BC7B89301C44EF39C0CEC02FFE93E1FE1388E128C9B477F2
+ 7C82A9235D7236D882A993D971AA79F7DB1C6E38DC0262417738C73AA00181F8
+ D4201B0E0200C20B50400F1E42A70000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001D44944415478DA
+ B5D4BD4B027118C0F1E737D552D0105843616F838519166551345443A32D2E0D
+ D15863FF416B2141353544144A2004114144431695841445D00BE950E7905618
+ 742F2257CFD9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F9
+ 8205AF5D7C611296C3FE33961802189F5909C13B1383EFF427B05FB94738B409
+ 76BB0DC6E756FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F1
+ 0DA9D798A5785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC5
+ 5B1B9A41E00510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B07
+ 0A81D97E52D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C36036
+ 9B95223C27C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C
+ 460EBF1CD601751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D0
+ 88473AD3C80ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3
+ 008D6C3DD41A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3D
+ F9962C00562315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371
+ FC0E388ECD03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B
+ 9C733EB03A5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actPedidosProveedor: TAction
+ Category = 'Log'#237'stica'
+ Caption = 'Pedidos a proveedor'
+ ImageIndex = 0
+ OnExecute = actPedidosProveedorExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Logistica2: TMenuItem
+ Tag = 200
+ Caption = 'Log'#237'stica'
+ GroupIndex = 1
+ ImageIndex = 0
+ object N1: TMenuItem
+ Tag = 3000
+ Caption = '-'
+ end
+ object Presupuestosdecliente1: TMenuItem
+ Tag = 3001
+ Action = actPedidosProveedor
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001864944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856AC05E4B2B14C5CEC78F81696471AB030719662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB001DDAD3B19966D3A84
+ DB0098B341E01F50EECF9F7F709BCFB93B33686EDCCEB06ADB11FC06C05C627B
+ E830C3613B5BB8CD97BDDD1954D66E6158BFEB387E0360367FBA7990E1C5C218
+ 7C3E72C130C0F1D85186FD56D66059719B070CAA2D350CECEC59183A7FFE9CC6
+ 303BB68501C30090B3617E7EDAACCCA0D3FD0CAC180EBE7F6760F8F19D61FA0E
+ 4306966DA9080372623D190EDAD8A0D80272018A0120CD1FDE81E9E9279D510D
+ 488F7463F805B4F9CF6F50A8FF61B8EAEB816A004CF37B20FEF19361FACD6054
+ 0312439DE19A415EB815E88D30E0432F42F3870F1017BC4A45352036C011AE19
+ 140320D7FC9E6A0031E041354233D80540037E95A31A10E163CBB062CB61D438
+ BA9A0A8E85E9CBE5B1C6218A01A084810EB478DF3058B39EC099081CE4195C00
+ 45135E518E0B4E380000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000022E4944415478DA
+ 8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
+ C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
+ A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
+ 2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
+ 8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
+ 4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
+ A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
+ 7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
+ 9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
+ 1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
+ 13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
+ AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
+ 352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
+ 3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
+ 12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
+ 84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
+ C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
+ 6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000003184944415478DA
+ BDD6DB4FD3501800F06F82F6C107E28391B8183418F14570720B48C655AEC328
+ 8A08A2F1CD3FC3F860F8030CC6784110C1B1B13137184C186C5CD62108084443
+ A2214613131FBC3C88BBB43DF6B4A3ACA36B3B48F8B6939EB6A7E777BE73D6B5
+ 1A8410EC6568303830BECAA9B8CE15861F84B0CF7EB86FA4CE0D92FB2248DA97
+ 24D9F1F5DA6C4D5CD0EA5E410DE567763C6A86ED83610749D30CD00C03858DB7
+ 60C9618C0F5AC696D1958A4C7017146E6B504EFAE242B1ED0B263CF0D8380A9D
+ 966E7560A281C18CBA0B40B956C1B96085D61F01E8308F2983FD6FDEA3AB9559
+ 7133943A5EEA9B8189C2F3B0B64C0AC79ABF6F4097755C1934BB965063D559D5
+ 99E175A269C46DF1DA5114231CEBB17B9441936B115DABD24966A23670A60D5F
+ FE8071704A0538C282D53C183D4589C6A5F5DF60724E2B837DC30BA8A9E61C07
+ CAFD2AE5025F7BCA3A0416974F19343ADF21F646DD3598DEEF00DBA85F197CE5
+ 9C47CDB5390228B7969B038A6EB379CD71931D1CEE5965B077680EB5D4E5EE3A
+ 436DAF0D46BC732AC041163424063EBCA951D56E33BEFED5439BD5ABE1C09EC1
+ B7E886214FF59462ECF69DEDE782418050802FB81E0CF0C54FC6802F1DB3A8B5
+ 3E5F55863BC1525201563F4783F659D4529FC7FD55C981184B3EA47E1AA95F5B
+ 180E017CF19A64D7301FBC4545B253BA769294CC2E80B3D9E0330A44320BFD03
+ 989BE7A7B2583709DE45BD186CAAC985E962BD6286B88344026338446097CD87
+ 1AAB73802C2D5104A53214A690664B18208CD790CDF0C3C7AD7322B07360065D
+ AEC886F9CA32D9D1C69B521CA1100BB1858A6CFBCC04649C0EC281E438E0C532
+ 5DE491438B5E1768867F7DA0D8FD89BBA992602C86B3B4D8083891CE82FB8143
+ 45E073EB343294E86431BC3F79EFE836500A0BB3C53E4480368DCF10A3E44A14
+ D8619942B5C559B2184D2198B9AF1581F1305C1F1E25E0B09607573EF118BE86
+ 039FF54FA21A7D962C86B7FEB663022887E1ED98878094234158FFB68509E053
+ B31755156572CF32B938E0367060FB0342D52DF1339C2FC204F089C983DABB1F
+ 2976A027FC7090495385E188C504702FE33F1F65CAE7611BEC0A000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD2520000020F4944415478DA
+ E5D4DB2B04511800F06FB659D7CD2D892816B984258992242129E5924BDEE491
+ 47FF81571E9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC39
+ 63C7EEEC65CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2
+ FAD2709B5EB8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FB
+ AB986B9619D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3
+ 368FB0AE8E5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2D
+ A0D150E4E0402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0
+ B13C701C87DBA58555282E2B045A4B83D691AE685040578C6339585DDC808292
+ 3C0CC9D13F83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB7
+ 7D08593919222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A7
+ 4EE2D4814A18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F2031
+ 29016FA11C9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE
+ 21818F0F5688D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7
+ C53196FD5D1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F
+ 186ADFDFDE1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA
+ 0D53044B0DADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048
+ F8C2FC82A1889083DF93D867F65E51168D0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.pas
new file mode 100644
index 0000000..7367fce
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uPluginControllerPedidosProveedor.pas
@@ -0,0 +1,73 @@
+unit uPluginControllerPedidosProveedor;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCPedidosProveedor = interface(IInterface)
+ ['{6C7D0D0B-96B9-4A8A-B596-E7062A4A7564}']
+ end;
+
+ TModulePedidosProveedor = class(TModuleController, IMCPedidosProveedor)
+ actPedidosProveedor: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Logistica2: TMenuItem;
+ Presupuestosdecliente1: TMenuItem;
+ N1: TMenuItem;
+ procedure actPedidosProveedorExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uBizPedidosProveedor,
+ uDataModulePedidosProveedor, uEditorPedidosProveedor;
+
+function GetModule : TModuleController;
+begin
+ Result := TModulePedidosProveedor.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+{
+******************************* TModuleContactos *******************************
+}
+
+procedure TModulePedidosProveedor.actPedidosProveedorExecute(Sender: TObject);
+var
+ aObj: IEditorPedidosProveedor;
+ APedidos : IBizPedidosProveedor;
+begin
+ APedidos := dmPedidos.GetItems;
+ aObj := TfEditorPedidosProveedor.Create(Application);
+ try
+ with aObj do
+ begin
+ PedidosProveedor := APedidos;
+ ShowEmbedded;
+ end;
+ finally
+ APedidos := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModulePedidosProveedor);
+
+finalization
+ UnRegisterModuleClass(TModulePedidosProveedor);
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.dfm
new file mode 100644
index 0000000..a7f8fde
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.dfm
@@ -0,0 +1,161 @@
+inherited frViewAlbaranCliente: TfrViewAlbaranCliente
+ Width = 754
+ Height = 369
+ Align = alClient
+ Constraints.MinHeight = 330
+ Constraints.MinWidth = 754
+ inline frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto
+ Left = 362
+ Top = 0
+ Width = 391
+ Height = 228
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ inherited Label5: TLabel
+ Width = 40
+ Caption = 'Cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 56
+ Width = 321
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ Caption = 'Dar de alta un cliente'
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Height = 21
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ Height = 21
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ Height = 21
+ Width = 296
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ Height = 21
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ Height = 21
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ Left = 181
+ ButtonWidth = 178
+ inherited ToolButton4: TToolButton
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ end
+ end
+ end
+ inline frViewDatosAlbaranCliente1: TfrViewDatosAlbaranCliente
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 110
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ inherited edtFecha: TcxDBDateEdit
+ Width = 245
+ end
+ inherited edtFechaPago: TcxDBDateEdit
+ Width = 245
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Width = 245
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 0
+ Top = 221
+ Width = 360
+ Height = 170
+ Anchors = [akLeft, akTop, akBottom]
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ inherited Bevel1: TBevel
+ Width = 252
+ end
+ inherited memFormaPago: TcxDBMemo
+ Height = 134
+ Width = 329
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 368
+ Top = 221
+ Width = 391
+ Height = 170
+ Anchors = [akLeft, akTop, akBottom]
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ inherited Bevel1: TBevel
+ Width = 283
+ end
+ inherited memObservaciones: TcxDBMemo
+ Height = 134
+ Width = 360
+ end
+ end
+ inline frViewPresupuestoAlbaran1: TfrViewPresupuestoAlbaran
+ Left = 0
+ Top = 104
+ Width = 360
+ Height = 121
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ inherited edtlReferencia: TcxTextEdit
+ Height = 21
+ Width = 245
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.pas b/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.pas
new file mode 100644
index 0000000..ff1ab42
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewAlbaranCliente.pas
@@ -0,0 +1,78 @@
+unit uViewAlbaranCliente;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizAlbaranesCliente, DB, uDADataTable, uCustomView,
+ uViewDatosYSeleccionContacto, uViewDatosAlbaranCliente,
+ uViewObservaciones, uViewFormaPago, AppEvnts, uViewPresupuestoAlbaran;
+
+type
+ IViewAlbaranCliente = interface(IViewBase)
+ ['{4AF36827-838E-40AC-BEB5-72D69C721E6B}']
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente
+ write SetAlbaranCliente;
+ end;
+
+ TfrViewAlbaranCliente = class(TfrViewBase, IViewAlbaranCliente)
+ DADataSource: TDADataSource;
+ frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto;
+ frViewDatosAlbaranCliente1: TfrViewDatosAlbaranCliente;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewPresupuestoAlbaran1: TfrViewPresupuestoAlbaran;
+ private
+ FAlbaranCliente : IBizAlbaranesCliente;
+ procedure OnContactoChanged (Sender : TObject);
+ protected
+ function GetAlbaranCliente: IBizAlbaranesCliente;
+ procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente);
+ public
+ property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente
+ write SetAlbaranCliente;
+ end;
+
+var
+ frViewAlbaranCliente: TfrViewAlbaranCliente;
+
+implementation
+
+uses uBizContacto, uExceptions;
+
+{$R *.dfm}
+
+{ TfrViewAlbaranCliente }
+
+function TfrViewAlbaranCliente.GetAlbaranCliente: IBizAlbaranesCliente;
+begin
+ Result := FAlbaranCliente;
+end;
+
+procedure TfrViewAlbaranCliente.OnContactoChanged(Sender: TObject);
+begin
+ FAlbaranCliente.Cliente := (frViewDatosYSeleccionContacto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewAlbaranCliente.SetAlbaranCliente(
+ const Value: IBizAlbaranesCliente);
+begin
+ FAlbaranCliente := Value;
+ if Assigned(FAlbaranCliente) then
+ DADataSource.DataTable := FAlbaranCliente.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosAlbaranCliente1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewDatosYSeleccionContacto1.Contacto := FAlbaranCliente.Cliente;
+ frViewDatosYSeleccionContacto1.OnContactoChanged := OnContactoChanged;
+
+ frViewPresupuestoAlbaran1.AlbaranCliente := FAlbaranCliente;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.dfm
new file mode 100644
index 0000000..b27512b
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.dfm
@@ -0,0 +1,91 @@
+inherited frViewDatosPedido: TfrViewDatosPedido
+ Width = 443
+ Height = 124
+ Align = alTop
+ Visible = False
+ object GroupBox1: TGroupBox
+ Left = 8
+ Top = 8
+ Width = 553
+ Height = 105
+ Caption = 'Datos del pedido'
+ TabOrder = 0
+ object Label4: TLabel
+ Left = 16
+ Top = 34
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object Label2: TLabel
+ Left = 223
+ Top = 34
+ Width = 54
+ Height = 13
+ Caption = 'Proveedor:'
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 66
+ Width = 37
+ Height = 13
+ Caption = 'Cliente:'
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 84
+ Top = 31
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ Properties.ReadOnly = True
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.Color = clBtnFace
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 107
+ end
+ object cxDBTextEdit2: TcxDBTextEdit
+ Left = 291
+ Top = 31
+ DataBinding.DataField = 'NOMBRE'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ Properties.ReadOnly = True
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.Color = clBtnFace
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 243
+ end
+ object cxDBTextEdit1: TcxDBTextEdit
+ Left = 84
+ Top = 63
+ DataBinding.DataField = 'NOMBRECLIENTE'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ Properties.ReadOnly = True
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.Color = clBtnFace
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 450
+ end
+ end
+ object DADataSource: TDADataSource
+ DataTable = dmPresupuestos.tbl_DetallesPresupuestos
+ Left = 520
+ Top = 8
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.pas b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.pas
new file mode 100644
index 0000000..b61bd9e
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedido.pas
@@ -0,0 +1,61 @@
+unit uViewDatosPedido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, DB, uDADataTable, uBizPedidosProveedor;
+
+type
+ IViewDatosPedido = interface(IViewBase)
+ ['{0882CE51-5185-4809-983E-6B2F01BA5FD7}']
+ function GetPedido: IBizPedidosProveedor;
+ procedure SetPedido(const Value: IBizPedidosProveedor);
+ property Pedido: IBizPedidosProveedor read GetPedido write SetPedido;
+ end;
+
+ TfrViewDatosPedido = class(TfrViewBase, IViewDatosPedido)
+ DADataSource: TDADataSource;
+ GroupBox1: TGroupBox;
+ Label4: TLabel;
+ eReferencia: TcxDBTextEdit;
+ Label2: TLabel;
+ cxDBTextEdit2: TcxDBTextEdit;
+ Label1: TLabel;
+ cxDBTextEdit1: TcxDBTextEdit;
+ private
+ FPedido : IBizPedidosProveedor;
+ function GetPedido: IBizPedidosProveedor;
+ procedure SetPedido(const Value: IBizPedidosProveedor);
+ public
+ property Pedido: IBizPedidosProveedor read GetPedido write SetPedido;
+ end;
+
+var
+ frViewDatosPedido: TfrViewDatosPedido;
+
+implementation
+
+{$R *.dfm}
+
+{ TfrViewDatosPedido }
+
+function TfrViewDatosPedido.GetPedido: IBizPedidosProveedor;
+begin
+ Result := FPedido;
+end;
+
+procedure TfrViewDatosPedido.SetPedido(const Value: IBizPedidosProveedor);
+begin
+ FPedido := Value;
+ if Assigned(FPedido) then
+ begin
+ DADataSource.DataTable := FPedido.DataTable;
+ Self.Visible := True;
+ end
+ else
+ DADataSource.DataTable := NIL;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.dfm
new file mode 100644
index 0000000..1eebad1
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.dfm
@@ -0,0 +1,179 @@
+inherited frViewDatosPedidoProveedor: TfrViewDatosPedidoProveedor
+ Width = 360
+ Height = 135
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 135)
+ object Bevel1: TBevel
+ Left = 114
+ Top = 8
+ Width = 233
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 97
+ Height = 13
+ Caption = 'Datos del pedido'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 62
+ Width = 47
+ Height = 13
+ Caption = 'Situaci'#243'n:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 86
+ Width = 67
+ Height = 13
+ Caption = 'Fecha confir.:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 110
+ Width = 74
+ Height = 13
+ Caption = 'Fecha entrega:'
+ end
+ object Label6: TLabel
+ Left = 16
+ Top = 37
+ Width = 68
+ Height = 13
+ Caption = 'Fecha pedido:'
+ end
+ object cbSituacion: TcxDBImageComboBox
+ Left = 100
+ Top = 57
+ DataBinding.DataField = 'SITUACION'
+ DataBinding.DataSource = DADataSource
+ Properties.Images = ImageList
+ Properties.ImmediatePost = True
+ Properties.Items = <>
+ Style.LookAndFeel.Kind = lfUltraFlat
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfUltraFlat
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfUltraFlat
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfUltraFlat
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtFechaConfirmacion: TcxDBDateEdit
+ Left = 100
+ Top = 82
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHACONFIRMACION'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object edtFechaEntrega: TcxDBDateEdit
+ Left = 100
+ Top = 106
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAENTREGA'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Width = 245
+ end
+ object edtFechaPedido: TcxDBDateEdit
+ Left = 100
+ Top = 33
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAPEDIDO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+ object ImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000014B4944415478DA
+ 6364C007F47A8C9999FE9F6162FCCFF0FB2F9309C3A592B31CC61DFF7F9CAD60
+ 0449F398B6FF67C4A79FD9A0FBFFDF0BA56035EC469DFF7F9E2B87AB0769FE72
+ BA9211AF01AC865DFF7F9F2F03AB41B719A419C4C66B001BD0805F5003B84C3A
+ FE7F3B53C188AC59D0A20DBF17909DCD6DD2FEFFEB994A0CF5780D00052217DB
+ 9F338C0CFF19BEFE620507226906100118B327BDFCFFE7EF6F86BF7F20F80F8C
+ FEFB07C14762FFF9FD0B48FF82D2BF1918D3FB9FFCB734944631F5CFDF7F0CBF
+ 7EFF65F809C67FE0EC5F403688FEF1EB0F185F3AB2938131A5FBFE7F1B530592
+ 35FFF8F597E1DAB16D0C8C89EDB7FEDB5BAA92AC1944DF3ABE858131B6F9EA7F
+ 675B2D923583F0BD139B1918A3EA2FFC77B2D32559F3AF3F7F191E9CD8C0C018
+ 5673E6BF838D1EC99A41006C4070C5F1FF84A2EA3732FFF76F301B9E0EFEFFFF
+ 4F514202003F5091819E0016AB0000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000010E4944415478DA
+ 63648001BD9EFF0CC8E052092350CC18C83A031531018A9D05AB03C941F530A2
+ 180093C026862E0FE5230B10B40D1B1BD546749BB16922CA0BF80C400384BC80
+ 2986D300320163F0AC3BFFFFFEFECBF0E70F100369301BCA87B1FFFE81F2FFFC
+ 63F8FDEB0FC31F20FE0D9203D28C01536FFE6F705663F80033F20784FA00657F
+ 4016FB815003129F367B3503A3CFC46BFF4BDC3549D208634F9CB79C81D1A3E7
+ F2FF4375E638FDD8B6EE2B8646984573672C6660746DBFF0FF68B3154E03CA96
+ 7DC56A3B08CC98BD8081D1B1E9ECFF783B23BC4E45D7080353A6CE6160B4AD3B
+ F53FD8CA94248D303061C24C0646ABCAE3FF0945D59F5F7F816C3431200D4E07
+ FFFFFF67A00400007E51EECD81D1728E0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F54944415478DA
+ 6364D0EBF9CF70A98411481B3330309C61800013A0D8591C6210F52000643322
+ 19802281530C06A07CF20C4062936E00D5BC00058C24072286011402C6EC492F
+ FFFFF9FB9BE1EF1F08FE03A3FFFE41F091D87F7EFF02D2BFA0F46F06C6F4FE27
+ FF2D0DA5514CFDF3F71FC3AFDF7F197E82F11F38FB17900DA27FFCFA03C6978E
+ EC64604CE9BEFFDFC6548164CD3F7EFD65B8766C1B036362FBADFF2B9B0DC8F2
+ BF9C7D2303636CF3D5FF6BDB4DC93240CAAA868131AAFEC27F273B5DA29D0D63
+ FFFAF397E1C1890D0C8C613567FE3BD8E891AC1904C00604571CFF4F28AA7E23
+ F37FFF06B3E1E9E0FFFFFF1425240089FD645E7C3F344D0000000049454E44AE
+ 426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 104
+ Top = 65528
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.pas
new file mode 100644
index 0000000..bbd0143
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDatosPedidoProveedor.pas
@@ -0,0 +1,69 @@
+unit uViewDatosPedidoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxGraphics, ImgList, PngImageList,
+ cxImageComboBox;
+
+type
+ TfrViewDatosPedidoProveedor = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFechaConfirmacion: TcxDBDateEdit;
+ Label3: TLabel;
+ edtFechaEntrega: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ Label6: TLabel;
+ edtFechaPedido: TcxDBDateEdit;
+ ImageList: TPngImageList;
+ cbSituacion: TcxDBImageComboBox;
+ private
+ { Private declarations }
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+var
+ frViewDatosPedidoProveedor: TfrViewDatosPedidoProveedor;
+
+implementation
+
+uses uBizPedidosProveedor;
+
+{$R *.dfm}
+
+constructor TfrViewDatosPedidoProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ with cbSituacion.Properties.Items do
+ begin
+ Clear;
+ with Add do
+ begin
+ Description := SITUACION_PENDIENTE;
+ ImageIndex := 0;
+ Value := SITUACION_PENDIENTE;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_PARCIAL;
+ ImageIndex := 1;
+ Value := SITUACION_PARCIAL;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_RECIBIDO;
+ ImageIndex := 2;
+ Value := SITUACION_RECIBIDO;
+ end;
+ end;
+ cbSituacion.ItemIndex := 0;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.dfm
new file mode 100644
index 0000000..7f0359b
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.dfm
@@ -0,0 +1,113 @@
+inherited frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor
+ Width = 377
+ Height = 197
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 377
+ 197)
+ object Bevel1: TBevel
+ Left = 123
+ Top = 8
+ Width = 241
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 107
+ Height = 13
+ Caption = 'Destino del pedido'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object cbAlmacen: TcxDBLookupComboBox
+ Left = 36
+ Top = 54
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'CODIGOALMACEN'
+ DataBinding.DataSource = DADataSource
+ Properties.DropDownListStyle = lsFixedList
+ Properties.GridMode = True
+ Properties.ImmediatePost = True
+ Properties.KeyFieldNames = 'CODIGO'
+ Properties.ListColumns = <
+ item
+ FieldName = 'NOMBRE'
+ end>
+ Properties.ListOptions.AnsiSort = True
+ Properties.ListOptions.GridLines = glNone
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListSource = DADataSource2
+ Properties.OnEditValueChanged = cbAlmacenPropertiesEditValueChanged
+ Properties.OnValidate = cbAlmacenPropertiesValidate
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 325
+ end
+ object rdxDestino1: TRadioButton
+ Left = 18
+ Top = 33
+ Width = 255
+ Height = 17
+ Action = actAlmacen
+ Caption = 'Recibir el pedido en el almac'#233'n:'
+ TabOrder = 0
+ TabStop = True
+ end
+ object rdxDestino2: TRadioButton
+ Left = 18
+ Top = 89
+ Width = 287
+ Height = 17
+ Action = actOtro
+ Caption = 'Recibir el pedido en esta direcci'#243'n:'
+ TabOrder = 2
+ end
+ object memDireccion: TcxDBMemo
+ Left = 36
+ Top = 113
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'DIRECCIONCOMPLETA'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Height = 71
+ Width = 326
+ end
+ object DADataSource: TDADataSource
+ Top = 48
+ end
+ object ActionList1: TActionList
+ Left = 216
+ Top = 24
+ object actAlmacen: TAction
+ Caption = 'Almac'#233'n'
+ Checked = True
+ GroupIndex = 1
+ OnExecute = actAlmacenExecute
+ end
+ object actOtro: TAction
+ Caption = 'Otro'
+ GroupIndex = 1
+ OnExecute = actOtroExecute
+ end
+ end
+ object DADataSource2: TDADataSource
+ Left = 248
+ Top = 24
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.pas
new file mode 100644
index 0000000..b6e3b39
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.pas
@@ -0,0 +1,155 @@
+unit uViewDestinoPedidoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxGraphics, cxMemo, ActnList, cxLookupEdit,
+ cxDBLookupEdit, cxDBLookupComboBox, uBizAlmacenes, uBizPedidosProveedor;
+
+type
+ IViewDestinoPedidoProveedor = interface(IViewBase)
+ ['{1DD198BD-9F21-47D1-804E-ED3B627C9FA9}']
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
+ write SetPedidoProveedor;
+ end;
+
+ TfrViewDestinoPedidoProveedor = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ DADataSource: TDADataSource;
+ rdxDestino1: TRadioButton;
+ rdxDestino2: TRadioButton;
+ memDireccion: TcxDBMemo;
+ ActionList1: TActionList;
+ actAlmacen: TAction;
+ actOtro: TAction;
+ DADataSource2: TDADataSource;
+ cbAlmacen: TcxDBLookupComboBox;
+ procedure actAlmacenExecute(Sender: TObject);
+ procedure actOtroExecute(Sender: TObject);
+ procedure cbAlmacenPropertiesEditValueChanged(Sender: TObject);
+ procedure cbAlmacenPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption;
+ var Error: Boolean);
+ private
+ FAlmacen: IBizAlmacen;
+ FPedido : IBizPedidosProveedor;
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
+ write SetPedidoProveedor;
+ end;
+
+var
+ frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor;
+
+implementation
+{$R *.dfm}
+
+uses
+ uDataModuleAlmacenes, schAlmacenesClient_Intf;
+
+procedure TfrViewDestinoPedidoProveedor.actAlmacenExecute(Sender: TObject);
+begin
+ cbAlmacen.Enabled := True;
+ memDireccion.Enabled := False;
+end;
+
+procedure TfrViewDestinoPedidoProveedor.actOtroExecute(Sender: TObject);
+begin
+ cbAlmacen.Enabled := False;
+ memDireccion.Enabled := True;
+
+ if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> 0) then
+ begin
+ FPedido.Edit;
+ FPedido.CODIGOALMACEN := 0;
+ end;
+end;
+
+constructor TfrViewDestinoPedidoProveedor.Create(AOwner: TComponent);
+begin
+ inherited;
+ FAlmacen := dmAlmacenes.GetItems;
+ DADataSource2.DataTable := FAlmacen.DataTable;
+ DADataSource2.DataTable.Active := True;
+ cbAlmacen.ItemIndex := 0;
+end;
+
+destructor TfrViewDestinoPedidoProveedor.Destroy;
+begin
+ FAlmacen := Nil;
+ inherited;
+end;
+
+function TfrViewDestinoPedidoProveedor.GetPedidoProveedor: IBizPedidosProveedor;
+begin
+ Result := FPedido;
+end;
+
+procedure TfrViewDestinoPedidoProveedor.SetPedidoProveedor(
+ const Value: IBizPedidosProveedor);
+begin
+ FPedido := Value;
+
+ if (FPedido.CODIGOALMACEN = 0) and
+ (Length(FPedido.DIRECCIONCOMPLETA.Text) = 0) then
+ // Nuevo pedido
+ begin
+ actAlmacen.Checked := True;
+ actOtro.Checked := False;
+ end
+ else begin
+ if (FPedido.CODIGOALMACEN <> 0) then
+ begin
+ actAlmacen.Checked := True;
+ actOtro.Checked := False;
+ end
+ else begin
+ if (Length(FPedido.DIRECCIONCOMPLETA.Text) <> 0) then
+ begin
+ actAlmacen.Checked := False;
+ actOtro.Checked := True;
+ actOtro.Execute;
+ end
+ end
+ end;
+
+ // Esto al final para que no salten los eventos del cxComboBox
+ DADataSource.DataTable := FPedido.DataTable;
+end;
+
+procedure TfrViewDestinoPedidoProveedor.cbAlmacenPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+{ if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> FAlmacen.CODIGO) then
+ begin
+ FPedido.Edit;
+ FPedido.DIRECCIONCOMPLETA.Text := FAlmacen.CALLE + #13#10 + FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION
+ end;}
+end;
+
+procedure TfrViewDestinoPedidoProveedor.cbAlmacenPropertiesValidate(
+ Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
+ var Error: Boolean);
+begin
+ inherited;
+ if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> FAlmacen.CODIGO) then
+ begin
+{ memDireccion.Lines.Clear;
+ memDireccion.Lines.Add(FAlmacen.CALLE);
+ memDireccion.Lines.Add(FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION);}
+ memDireccion.DataBinding.Field.AsString := FAlmacen.CALLE + #13#10 + FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION;
+ end;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.dfm
new file mode 100644
index 0000000..d643f62
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.dfm
@@ -0,0 +1,44 @@
+inherited frViewDetallesPedidosProveedor: TfrViewDetallesPedidosProveedor
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ OptionsSelection.InvertSelect = False
+ object cxGridViewPOSICION: TcxGridDBColumn
+ DataBinding.FieldName = 'POSICION'
+ Visible = False
+ SortIndex = 0
+ SortOrder = soAscending
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Width = 224
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ BestFitMaxWidth = 64
+ HeaderAlignmentHorz = taRightJustify
+ Width = 130
+ end
+ object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEUNIDAD'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Width = 130
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ BestFitMaxWidth = 120
+ HeaderAlignmentHorz = taRightJustify
+ Options.Editing = False
+ Width = 130
+ end
+ end
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.pas
new file mode 100644
index 0000000..fd3655b
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewDetallesPedidosProveedor.pas
@@ -0,0 +1,73 @@
+unit uViewDetallesPedidosProveedor;
+
+interface
+
+uses
+ Windows, Messages, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
+ cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, Controls,
+ PngImageList, uDADataTable, Classes, ActnList, ComCtrls, ToolWin,
+ cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
+ cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesFamilias,
+ cxCheckBox, cxMaskEdit, cxCurrencyEdit, uViewDetallesNormales;
+
+type
+ TfrViewDetallesPedidosProveedor = class(TfrViewDetallesNormales)
+ cxGridViewDESCRIPCION: TcxGridDBColumn;
+ cxGridViewCANTIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewPOSICION: TcxGridDBColumn;
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ end;
+
+
+implementation
+
+uses
+ Variants, uBizImportesDetalleBase, SysUtils;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesPedidosProveedor.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesPedidosProveedor.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+{ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;}
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.dfm
new file mode 100644
index 0000000..9987528
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.dfm
@@ -0,0 +1,52 @@
+inherited frViewIncidencias: TfrViewIncidencias
+ Width = 443
+ Height = 370
+ Align = alBottom
+ object pnlSup: TPanel
+ Left = 0
+ Top = 0
+ Width = 443
+ Height = 28
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 0
+ object eIncidenciaActiva: TcxDBCheckBox
+ Left = 2
+ Top = 4
+ Caption = 'Hay incidencias sin resolver'
+ DataBinding.DataField = 'INCIDENCIASACTIVAS'
+ DataBinding.DataSource = DADataSource
+ Properties.ValueChecked = 1
+ Properties.ValueUnchecked = 0
+ TabOrder = 0
+ Transparent = True
+ Width = 359
+ end
+ end
+ object GroupBox1: TGroupBox
+ Left = 0
+ Top = 28
+ Width = 443
+ Height = 342
+ Align = alClient
+ Caption = 'Incidencias'
+ TabOrder = 1
+ DesignSize = (
+ 443
+ 342)
+ object eIncidencias: TcxDBMemo
+ Left = 10
+ Top = 22
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'INCIDENCIAS'
+ DataBinding.DataSource = DADataSource
+ TabOrder = 0
+ Height = 305
+ Width = 420
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 560
+ Top = 8
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.pas b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.pas
new file mode 100644
index 0000000..b017d38
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewIncidencias.pas
@@ -0,0 +1,30 @@
+unit uViewIncidencias;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
+ cxCheckBox, cxMemo;
+
+type
+ TfrViewIncidencias = class(TfrViewBase)
+ DADataSource: TDADataSource;
+ pnlSup: TPanel;
+ eIncidenciaActiva: TcxDBCheckBox;
+ eIncidencias: TcxDBMemo;
+ GroupBox1: TGroupBox;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.dfm
new file mode 100644
index 0000000..ceb012f
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.dfm
@@ -0,0 +1,11 @@
+inherited frViewMontajePedido: TfrViewMontajePedido
+ inherited edtlReferencia: TcxDBTextEdit
+ Height = 21
+ Width = 245
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirMontaje: TAction
+ OnExecute = actElegirMontajeExecute
+ end
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.pas b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.pas
new file mode 100644
index 0000000..29de980
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewMontajePedido.pas
@@ -0,0 +1,48 @@
+unit uViewMontajePedido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewMontajeRelacionado, ImgList, PngImageList, ActnList,
+ cxControls, cxContainer, cxEdit, cxTextEdit, ComCtrls, ToolWin, ExtCtrls,
+ StdCtrls, DB, uDADataTable, cxDBEdit;
+
+type
+ TfrViewMontajePedido = class(TfrViewMontajeRelacionado)
+ procedure actElegirMontajeExecute(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewMontajePedido: TfrViewMontajePedido;
+
+implementation
+
+uses uDataModuleMontajes, uBizMontajes;
+
+{$R *.dfm}
+
+procedure TfrViewMontajePedido.actElegirMontajeExecute(Sender: TObject);
+var
+ AMontaje : IBizMontaje;
+begin
+ inherited;
+
+ AMontaje := dmMontajes.GetItemsPendientes(sitPendienteRecepcion);
+ try
+ if AMontaje.ShowForSelect = mrOK then
+ begin
+ AMontaje := dmMontajes.GetItemsSeleccionados(AMontaje);
+ AMontaje.DataTable.Active := True;
+ Self.Montaje := AMontaje;
+ end;
+ finally
+ AMontaje := NIL;
+ end;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.dfm
new file mode 100644
index 0000000..64c21bc
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.dfm
@@ -0,0 +1,160 @@
+inherited frViewObraPedido: TfrViewObraPedido
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 98
+ Height = 13
+ Caption = 'Obra relacionada'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 117
+ Top = 8
+ Width = 229
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 99
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirObra
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 103
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 111
+ Top = 0
+ Action = actVerObra
+ end
+ end
+ object edtlReferencia: TcxTextEdit
+ Left = 100
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ Enabled = False
+ ParentFont = False
+ Properties.ReadOnly = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirObra: TAction
+ Caption = 'Elegir una obra'
+ ImageIndex = 1
+ OnExecute = actElegirObraExecute
+ end
+ object actVerObra: TAction
+ Caption = 'Ver obra...'
+ ImageIndex = 1
+ OnExecute = actVerObraExecute
+ OnUpdate = actVerObraUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.pas b/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.pas
new file mode 100644
index 0000000..58793bb
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewObraPedido.pas
@@ -0,0 +1,108 @@
+unit uViewObraPedido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizPedidosProveedor, uBizPresupuestosCliente;
+
+type
+ IViewObraPedido = interface(IViewBase)
+ ['{127631C5-DDC6-44D4-B96F-70795357B2CF}']
+ function GetPedido: IBizPedidosProveedor;
+ procedure SetPedido(const Value: IBizPedidosProveedor);
+ property Pedido: IBizPedidosProveedor read GetPedido
+ write SetPedido;
+ end;
+
+ TfrViewObraPedido = class(TfrViewBase, IViewObraPedido)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirObra: TAction;
+ actVerObra: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ edtlReferencia: TcxTextEdit;
+ procedure actElegirObraExecute(Sender: TObject);
+ procedure actVerObraExecute(Sender: TObject);
+ procedure actVerObraUpdate(Sender: TObject);
+ private
+ FPedido: IBizPedidosProveedor;
+ function GetPedido: IBizPedidosProveedor;
+ procedure SetPedido(const Value: IBizPedidosProveedor);
+ public
+ property Pedido: IBizPedidosProveedor read GetPedido
+ write SetPedido;
+ end;
+
+var
+ frViewObraPedido: TfrViewObraPedido;
+
+implementation
+
+uses uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewPresupuestoAlbaran }
+
+function TfrViewObraPedido.GetPedido: IBizPedidosProveedor;
+begin
+ Result := FPedido;
+end;
+
+procedure TfrViewObraPedido.SetPedido(const Value: IBizPedidosProveedor);
+begin
+ FPedido := Value;
+ if Assigned(FPedido) and (IntToStr(FPedido.CODIGOOBRA) <> '') then
+ edtlReferencia.Text := dmPresupuestos.GetReferencia(FPedido.CODIGOOBRA);
+end;
+
+procedure TfrViewObraPedido.actElegirObraExecute(Sender: TObject);
+var
+ AObra : IBizPresupuestos;
+begin
+ inherited;
+
+ if Length(edtlReferencia.Text) > 0 then
+ if (MessageBox(0, 'Este pedido ya tiene asociado una obra. '+#13+#10+
+ '¿Desea continuar?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idNo) then
+ Exit;
+
+ AObra := dmPresupuestos.GetPresupuestosSinAlbaran;
+ try
+ if AObra.ShowForSelect = mrOK then
+ begin
+ if not (FPedido.DataTable.State in dsEditModes) then
+ FPedido.Edit;
+// FObra.CopyFrom(APresupuesto);
+ FPedido.CODIGOOBRA := AObra.CODIGO;
+ edtlReferencia.Text := AObra.REFERENCIA;
+ end;
+ finally
+ AObra := NIL;
+ end;
+end;
+
+procedure TfrViewObraPedido.actVerObraExecute(Sender: TObject);
+var
+ AObra : IBizPresupuestos;
+begin
+ AObra := dmPresupuestos.GetPresupuesto(FPedido.CODIGOOBRA);
+ AObra.Show;
+end;
+
+procedure TfrViewObraPedido.actVerObraUpdate(Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := (Length(edtlReferencia.Text) > 0)
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.dfm
new file mode 100644
index 0000000..a744ce9
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.dfm
@@ -0,0 +1,47 @@
+inherited frViewObservaciones: TfrViewObservaciones
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 240)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 85
+ Height = 13
+ Caption = 'Observaciones'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 96
+ Top = 8
+ Width = 192
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memObservaciones: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'OBSERVACIONES'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 193
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.pas b/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.pas
new file mode 100644
index 0000000..2430eba
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewObservaciones.pas
@@ -0,0 +1,26 @@
+unit uViewObservaciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewObservaciones = class(TfrViewBase)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ memObservaciones: TcxDBMemo;
+ DADataSource: TDADataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.dfm
new file mode 100644
index 0000000..3a7ae0e
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.dfm
@@ -0,0 +1,189 @@
+inherited frViewPedidoProveedor: TfrViewPedidoProveedor
+ Width = 753
+ Height = 491
+ Align = alClient
+ Constraints.MinHeight = 400
+ Constraints.MinWidth = 753
+ inline frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto
+ Left = 362
+ Top = 0
+ Width = 391
+ Height = 228
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 116
+ Caption = 'Datos del proveedor'
+ end
+ inherited Bevel1: TBevel
+ Left = 128
+ Width = 248
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 148
+ inherited ToolButton3: TToolButton
+ Left = 125
+ end
+ inherited ToolButton2: TToolButton
+ Left = 133
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 4
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 3
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ Left = 181
+ ButtonWidth = 197
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 32
+ end
+ inherited ActionList1: TActionList
+ Top = 40
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un proveedor'
+ end
+ inherited actAnadirContacto: TAction
+ Caption = 'Dar de alta un proveedor'
+ end
+ inherited actVerContacto: TAction
+ Caption = 'Ver ficha completa del proveedor...'
+ end
+ end
+ end
+ inline frViewObservaciones: TfrViewObservaciones
+ Left = 368
+ Top = 221
+ Width = 380
+ Height = 186
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 87
+ Caption = 'Caracter'#237'sticas'
+ end
+ inherited Bevel1: TBevel
+ Width = 272
+ end
+ inherited memObservaciones: TcxDBMemo
+ Height = 144
+ Width = 356
+ end
+ end
+ inline frViewDatosPedidoProveedor: TfrViewDatosPedidoProveedor
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 135
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited cbSituacion: TcxDBImageComboBox
+ Style.Color = clInfoBk
+ end
+ inherited edtFechaPedido: TcxDBDateEdit
+ Style.Color = clInfoBk
+ end
+ end
+ inline frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor
+ Left = 0
+ Top = 131
+ Width = 360
+ Height = 171
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited cbAlmacen: TcxDBLookupComboBox
+ Style.Color = clInfoBk
+ Width = 309
+ end
+ inherited rdxDestino1: TRadioButton
+ TabOrder = 2
+ end
+ inherited rdxDestino2: TRadioButton
+ Top = 82
+ TabOrder = 3
+ end
+ inherited memDireccion: TcxDBMemo
+ Top = 103
+ Style.Color = clInfoBk
+ TabOrder = 0
+ Height = 55
+ Width = 309
+ end
+ inherited DADataSource: TDADataSource
+ Left = 168
+ end
+ end
+ inline frViewMontajePedido: TfrViewMontajePedido
+ Left = 8
+ Top = 302
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.pas
new file mode 100644
index 0000000..1831a6c
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewPedidoProveedor.pas
@@ -0,0 +1,85 @@
+unit uViewPedidoProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizPedidosProveedor, DB, uDADataTable, uCustomView,
+ uViewDatosYSeleccionContacto, uViewObservaciones, AppEvnts,
+ uViewDestinoPedidoProveedor, uViewDatosPedidoProveedor,
+ StdCtrls, Mask, DBCtrls, uViewMontajeRelacionado, uViewMontajePedido;
+
+type
+ IViewPedidoProveedor = interface(IViewBase)
+ ['{CC768E3B-B3A6-463E-8D3F-B954715E6432}']
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
+ write SetPedidoProveedor;
+ end;
+
+ TfrViewPedidoProveedor = class(TfrViewBase, IViewPedidoProveedor)
+ DADataSource: TDADataSource;
+ frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto;
+ frViewObservaciones: TfrViewObservaciones;
+ frViewDatosPedidoProveedor: TfrViewDatosPedidoProveedor;
+ frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor;
+ frViewMontajePedido: TfrViewMontajePedido;
+ private
+ FPedidoProveedor : IBizPedidosProveedor;
+ procedure OnContactoChanged (Sender : TObject);
+ procedure OnMontajeChanged(Sender : TObject);
+ protected
+ function GetPedidoProveedor: IBizPedidosProveedor;
+ procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
+ public
+ property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
+ write SetPedidoProveedor;
+ end;
+
+var
+ frViewPedidoProveedor: TfrViewPedidoProveedor;
+
+implementation
+
+uses uBizContacto, uExceptions;
+
+{$R *.dfm}
+
+{ TfrViewAlbaranCliente }
+
+function TfrViewPedidoProveedor.GetPedidoProveedor: IBizPedidosProveedor;
+begin
+ Result := FPedidoProveedor;
+end;
+
+procedure TfrViewPedidoProveedor.OnContactoChanged(Sender: TObject);
+begin
+ FPedidoProveedor.Proveedor := (frViewDatosYSeleccionContacto.Contacto as IBizProveedor);
+end;
+
+procedure TfrViewPedidoProveedor.OnMontajeChanged(Sender: TObject);
+begin
+ FPedidoProveedor.Montaje := frViewMontajePedido.Montaje;
+end;
+
+procedure TfrViewPedidoProveedor.SetPedidoProveedor(const Value: IBizPedidosProveedor);
+begin
+ FPedidoProveedor := Value;
+ if Assigned(FPedidoProveedor) then
+ DADataSource.DataTable := FPedidoProveedor.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosPedidoProveedor.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones.DADataSource.DataTable := DADataSource.DataTable;
+ frViewDestinoPedidoProveedor.PedidoProveedor := FPedidoProveedor;
+
+ frViewDatosYSeleccionContacto.Contacto := FPedidoProveedor.Proveedor;
+ frViewDatosYSeleccionContacto.OnContactoChanged := OnContactoChanged;
+
+ frViewMontajePedido.Montaje := FPedidoProveedor.Montaje;
+ frViewMontajePedido.OnMontajeChanged := OnMontajeChanged;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.dfm
new file mode 100644
index 0000000..af977a6
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.dfm
@@ -0,0 +1,237 @@
+inherited frViewPedidosProveedor: TfrViewPedidosProveedor
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 pedidos'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end>
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn
+ DataBinding.FieldName = 'INCIDENCIASACTIVAS'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Sin incidencias'
+ Value = 0
+ end
+ item
+ Description = 'Con incidencias'
+ ImageIndex = 3
+ Tag = 1
+ Value = 1
+ end>
+ Properties.LargeImages = PngImageList
+ Properties.ShowDescriptions = False
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ ImageIndex = 0
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Parcialmente recibido'
+ ImageIndex = 1
+ Tag = 1
+ Value = 'Parcialmente recibido'
+ end
+ item
+ Description = 'Recibido'
+ ImageIndex = 2
+ Tag = 2
+ Value = 'Recibido'
+ end>
+ Properties.ShowDescriptions = False
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ Caption = 'Montaje'
+ DataBinding.FieldName = 'REFERENCIA'
+ end
+ object cxGridViewNOMBRECLIENTE: TcxGridDBColumn
+ Caption = 'Cliente'
+ DataBinding.FieldName = 'NOMBRECLIENTE'
+ end
+ object cxGridViewFECHAPEDIDO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAPEDIDO'
+ SortIndex = 0
+ SortOrder = soDescending
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Nombre proveedor'
+ DataBinding.FieldName = 'NOMBRE'
+ end
+ object cxGridViewFECHACONFIRMACION: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHACONFIRMACION'
+ end
+ object cxGridViewDIRECCIONCOMPLETA: TcxGridDBColumn
+ DataBinding.FieldName = 'DIRECCIONCOMPLETA'
+ Visible = False
+ end
+ object cxGridViewFECHAENTREGA: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAENTREGA'
+ end
+ object cxGridViewCODIGOALMACEN: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOALMACEN'
+ Visible = False
+ end
+ object cxGridViewNOMBREALMACEN: TcxGridDBColumn
+ Caption = 'Almac'#233'n destino'
+ DataBinding.FieldName = 'NOMBREALMACEN'
+ end
+ object cxGridViewCODIGOCONTACTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOCONTACTO'
+ Visible = False
+ end
+ object cxGridViewCODIGOMONTAJE: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOMONTAJE'
+ Visible = False
+ end
+ end
+ object cxGridDBTableView1: TcxGridDBTableView [1]
+ NavigatorButtons.ConfirmDelete = False
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ object cxGridLevel1: TcxGridLevel
+ Caption = 'Pendientes'
+ end
+ object cxGridLevel2: TcxGridLevel
+ Caption = 'Parcialmente recibidos'
+ end
+ object cxGridLevel3: TcxGridLevel
+ Caption = 'Recibidos'
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ Left = 248
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000014B4944415478DA
+ 6364C007F47A8C9999FE9F6162FCCFF0FB2F9309C3A592B31CC61DFF7F9CAD60
+ 0449F398B6FF67C4A79FD9A0FBFFDF0BA56035EC469DFF7F9E2B87AB0769FE72
+ BA9211AF01AC865DFF7F9F2F03AB41B719A419C4C66B001BD0805F5003B84C3A
+ FE7F3B53C188AC59D0A20DBF17909DCD6DD2FEFFEB994A0CF5780D00052217DB
+ 9F338C0CFF19BEFE620507226906100118B327BDFCFFE7EF6F86BF7F20F80F8C
+ FEFB07C14762FFF9FD0B48FF82D2BF1918D3FB9FFCB734944631F5CFDF7F0CBF
+ 7EFF65F809C67FE0EC5F403688FEF1EB0F185F3AB2938131A5FBFE7F1B530592
+ 35FFF8F597E1DAB16D0C8C89EDB7FEDB5BAA92AC1944DF3ABE858131B6F9EA7F
+ 675B2D923583F0BD139B1918A3EA2FFC77B2D32559F3AF3F7F191E9CD8C0C018
+ 5673E6BF838D1EC99A41006C4070C5F1FF84A2EA3732FFF76F301B9E0EFEFFFF
+ 4F514202003F5091819E0016AB0000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000010E4944415478DA
+ 63648001BD9EFF0CC8E052092350CC18C83A031531018A9D05AB03C941F530A2
+ 180093C026862E0FE5230B10B40D1B1BD546749BB16922CA0BF80C400384BC80
+ 2986D300320163F0AC3BFFFFFEFECBF0E70F100369301BCA87B1FFFE81F2FFFC
+ 63F8FDEB0FC31F20FE0D9203D28C01536FFE6F705663F80033F20784FA00657F
+ 4016FB815003129F367B3503A3CFC46BFF4BDC3549D208634F9CB79C81D1A3E7
+ F2FF4375E638FDD8B6EE2B8646984573672C6660746DBFF0FF68B3154E03CA96
+ 7DC56A3B08CC98BD8081D1B1E9ECFF783B23BC4E45D7080353A6CE6160B4AD3B
+ F53FD8CA94248D303061C24C0646ABCAE3FF0945D59F5F7F816C3431200D4E07
+ FFFFFF67A00400007E51EECD81D1728E0000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000F54944415478DA
+ 6364D0EBF9CF70A98411481B3330309C61800013A0D8591C6210F52000643322
+ 19802281530C06A07CF20C4062936E00D5BC00058C24072286011402C6EC492F
+ FFFFF9FB9BE1EF1F08FE03A3FFFE41F091D87F7EFF02D2BFA0F46F06C6F4FE27
+ FF2D0DA5514CFDF3F71FC3AFDF7F197E82F11F38FB17900DA27FFCFA03C6978E
+ EC64604CE9BEFFDFC6548164CD3F7EFD65B8766C1B036362FBADFF2B9B0DC8F2
+ BF9C7D2303636CF3D5FF6BDB4DC93240CAAA868131AAFEC27F273B5DA29D0D63
+ FFFAF397E1C1890D0C8C613567FE3BD8E891AC1904C00604571CFF4F28AA7E23
+ F37FFF06B3E1E9E0FFFFFF1425240089FD645E7C3F344D0000000049454E44AE
+ 426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA
+ 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440
+ A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450
+ 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3
+ C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE
+ FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78
+ 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D
+ BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB
+ 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF
+ D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E
+ 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A
+ C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611
+ E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF
+ 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5
+ D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0
+ 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68
+ 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075
+ 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346
+ 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462
+ 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54
+ 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51
+ CF0000000049454E44AE426082}
+ Name = 'PngImage3'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.pas b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.pas
new file mode 100644
index 0000000..9c4dcfb
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewPedidosProveedor.pas
@@ -0,0 +1,178 @@
+unit uViewPedidosProveedor;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles,
+ cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
+ cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
+ cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid, uBizPedidosProveedor, StdCtrls, ExtCtrls,
+ cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
+ dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList,
+ PngImageList, cxTextEdit, Grids, DBGrids, uViewFiltroBase;
+
+type
+ IViewPedidosProveedor = interface(IViewGrid)
+ ['{F21DDC5A-0A61-448A-A0B8-F8C82F8524AE}']
+ function GetPedidosProveedor: IBizPedidosProveedor;
+ procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
+ property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
+ SetPedidosProveedor;
+ end;
+
+ TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor)
+ cxGridDBTableView1: TcxGridDBTableView;
+ cxGridLevel1: TcxGridLevel;
+ cxGridLevel2: TcxGridLevel;
+ cxGridLevel3: TcxGridLevel;
+ PngImageList: TPngImageList;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewFECHAPEDIDO: TcxGridDBColumn;
+ cxGridViewFECHACONFIRMACION: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewFECHAENTREGA: TcxGridDBColumn;
+ cxGridViewDIRECCIONCOMPLETA: TcxGridDBColumn;
+ cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
+ cxGridViewCODIGOALMACEN: TcxGridDBColumn;
+ cxGridViewCODIGOCONTACTO: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
+ cxGridViewNOMBREALMACEN: TcxGridDBColumn;
+ cxGridViewNOMBRECLIENTE: TcxGridDBColumn;
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
+ TcxGridLevel);
+ procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView;
+ ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var
+ ADone: Boolean);
+ procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
+ ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
+ AStyle: TcxStyle);
+
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroSituaciones;
+ procedure AnadirFiltroFechas;
+
+ protected
+ FPedidosProveedor: IBizPedidosProveedor;
+ function GetPedidosProveedor: IBizPedidosProveedor;
+ procedure SetPedidosProveedor(const Value: IBizPedidosProveedor);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write
+ SetPedidosProveedor;
+ end;
+
+var
+ frViewPedidosProveedor: TfrViewPedidosProveedor;
+
+implementation
+
+uses uDataModulePedidosProveedor, schPedidosProveedorClient_Intf;
+
+{$R *.dfm}
+
+procedure TfrViewPedidosProveedor.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAPEDIDO');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+procedure TfrViewPedidosProveedor.AnadirFiltroSituaciones;
+var
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ FFiltro := AddFilterGrid(fboAnd);
+
+ case cxGrid.ActiveLevel.Index of
+ 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
+ 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PARCIAL, SITUACION_PARCIAL);
+ 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECIBIDO, SITUACION_RECIBIDO);
+ end;
+end;
+
+procedure TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+begin
+ inherited;
+ RefrescarFiltro;
+end;
+
+procedure TfrViewPedidosProveedor.cxGridViewCODIGOCustomDrawCell(Sender:
+ TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
+ TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R: TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewPedidosProveedor.cxGridViewStylesGetContentStyle(Sender:
+ TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
+ TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol: Integer;
+ ASituacion: string;
+begin
+{ inherited;
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index;
+ ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if ASituacion = SITUACION_ACEPTADO then
+ AStyle := cxStyleAceptado
+ else if ASituacion = SITUACION_RECHAZADO then
+ AStyle := cxStyleRechazado;
+ end;
+}
+end;
+
+function TfrViewPedidosProveedor.GetPedidosProveedor: IBizPedidosProveedor;
+begin
+ Result := FPedidosProveedor;
+end;
+
+procedure TfrViewPedidosProveedor.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroSituaciones;
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+procedure TfrViewPedidosProveedor.SetPedidosProveedor(const Value: IBizPedidosProveedor);
+begin
+ FPedidosProveedor := Value;
+ if Assigned(FPedidosProveedor) then
+ DADataSource.DataTable := FPedidosProveedor.DataTable;
+end;
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.ddp b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.dfm b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.dfm
new file mode 100644
index 0000000..40df534
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.dfm
@@ -0,0 +1,62 @@
+inherited frViewTotalPedido: TfrViewTotalPedido
+ Width = 465
+ Height = 71
+ Align = alBottom
+ object GroupBox1: TGroupBox
+ Left = 8
+ Top = 8
+ Width = 449
+ Height = 53
+ Caption = 'Importe total del pedido'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 0
+ object Label7: TLabel
+ Left = 19
+ Top = 22
+ Width = 80
+ Height = 13
+ Caption = 'Importe total:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object cxCurrencyEdit5: TcxDBCurrencyEdit
+ Left = 106
+ Top = 18
+ AutoSize = False
+ DataBinding.DataField = 'IMPORTETOTAL'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseLeftAlignmentOnEditing = False
+ Properties.UseThousandSeparator = True
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ Style.TextColor = clActiveCaption
+ Style.TextStyle = [fsBold]
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 21
+ Width = 137
+ end
+ end
+ object DADataSource: TDADataSource
+ Left = 264
+ Top = 24
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.pas b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.pas
new file mode 100644
index 0000000..4635942
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Cliente/uViewTotalPedido.pas
@@ -0,0 +1,28 @@
+unit uViewTotalPedido;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit;
+
+type
+ TfrViewTotalPedido = class(TfrViewBase)
+ DADataSource: TDADataSource;
+ GroupBox1: TGroupBox;
+ Label7: TLabel;
+ cxCurrencyEdit5: TcxDBCurrencyEdit;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorClient_Intf.pas b/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorClient_Intf.pas
new file mode 100644
index 0000000..011675d
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorClient_Intf.pas
@@ -0,0 +1,1614 @@
+unit schPedidosProveedorClient_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_darReferenciaPedido = '{505FD1BA-CDDC-4703-8DD7-3D2BDD241D2E}';
+ RID_DetallesPedidosProveedor = '{FBD0F0E0-3295-4D79-863F-FC778E6787E2}';
+ RID_PedidosProveedor = '{45DBB351-50FF-4444-A2BA-305E6D011C02}';
+ RID_Refresh_PedidosProveedor = '{139C4281-92C5-4431-B4BB-E51B6D4CBC8A}';
+ RID_InformeCabeceraPedido = '{4D5A204C-EE0C-4C02-B954-C305CE082250}';
+ RID_InformeDetallesPedido = '{5EB109BB-A440-4768-A612-6A04E27E451D}';
+
+ { Data table names }
+ nme_darReferenciaPedido = 'darReferenciaPedido';
+ nme_DetallesPedidosProveedor = 'DetallesPedidosProveedor';
+ nme_PedidosProveedor = 'PedidosProveedor';
+ nme_Refresh_PedidosProveedor = 'Refresh_PedidosProveedor';
+ nme_InformeCabeceraPedido = 'InformeCabeceraPedido';
+ nme_InformeDetallesPedido = 'InformeDetallesPedido';
+
+ { darReferenciaPedido fields }
+
+ { darReferenciaPedido field indexes }
+
+ { DetallesPedidosProveedor fields }
+ fld_DetallesPedidosProveedorCODIGOPEDIDO = 'CODIGOPEDIDO';
+ fld_DetallesPedidosProveedorNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_DetallesPedidosProveedorDESCRIPCION = 'DESCRIPCION';
+ fld_DetallesPedidosProveedorCANTIDAD = 'CANTIDAD';
+ fld_DetallesPedidosProveedorIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_DetallesPedidosProveedorIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_DetallesPedidosProveedorPOSICION = 'POSICION';
+ fld_DetallesPedidosProveedorTIPO = 'TIPO';
+
+ { DetallesPedidosProveedor field indexes }
+ idx_DetallesPedidosProveedorCODIGOPEDIDO = 0;
+ idx_DetallesPedidosProveedorNUMCONCEPTO = 1;
+ idx_DetallesPedidosProveedorDESCRIPCION = 2;
+ idx_DetallesPedidosProveedorCANTIDAD = 3;
+ idx_DetallesPedidosProveedorIMPORTEUNIDAD = 4;
+ idx_DetallesPedidosProveedorIMPORTETOTAL = 5;
+ idx_DetallesPedidosProveedorPOSICION = 6;
+ idx_DetallesPedidosProveedorTIPO = 7;
+
+ { PedidosProveedor fields }
+ fld_PedidosProveedorCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_PedidosProveedorCODIGO = 'CODIGO';
+ fld_PedidosProveedorFECHAALTA = 'FECHAALTA';
+ fld_PedidosProveedorUSUARIO = 'USUARIO';
+ fld_PedidosProveedorREFERENCIA = 'REFERENCIA';
+ fld_PedidosProveedorFECHAPEDIDO = 'FECHAPEDIDO';
+ fld_PedidosProveedorFECHACONFIRMACION = 'FECHACONFIRMACION';
+ fld_PedidosProveedorSITUACION = 'SITUACION';
+ fld_PedidosProveedorFECHAENTREGA = 'FECHAENTREGA';
+ fld_PedidosProveedorOBSERVACIONES = 'OBSERVACIONES';
+ fld_PedidosProveedorIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_PedidosProveedorDIRECCIONCOMPLETA = 'DIRECCIONCOMPLETA';
+ fld_PedidosProveedorINCIDENCIAS = 'INCIDENCIAS';
+ fld_PedidosProveedorINCIDENCIASACTIVAS = 'INCIDENCIASACTIVAS';
+ fld_PedidosProveedorCODIGOALMACEN = 'CODIGOALMACEN';
+ fld_PedidosProveedorCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_PedidosProveedorNOMBRE = 'NOMBRE';
+ fld_PedidosProveedorCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_PedidosProveedorNOMBREALMACEN = 'NOMBREALMACEN';
+ fld_PedidosProveedorCODIGOCONTACTO1 = 'CODIGOCONTACTO1';
+ fld_PedidosProveedorNOMBRECLIENTE = 'NOMBRECLIENTE';
+
+ { PedidosProveedor field indexes }
+ idx_PedidosProveedorCODIGOEMPRESA = 0;
+ idx_PedidosProveedorCODIGO = 1;
+ idx_PedidosProveedorFECHAALTA = 2;
+ idx_PedidosProveedorUSUARIO = 3;
+ idx_PedidosProveedorREFERENCIA = 4;
+ idx_PedidosProveedorFECHAPEDIDO = 5;
+ idx_PedidosProveedorFECHACONFIRMACION = 6;
+ idx_PedidosProveedorSITUACION = 7;
+ idx_PedidosProveedorFECHAENTREGA = 8;
+ idx_PedidosProveedorOBSERVACIONES = 9;
+ idx_PedidosProveedorIMPORTETOTAL = 10;
+ idx_PedidosProveedorDIRECCIONCOMPLETA = 11;
+ idx_PedidosProveedorINCIDENCIAS = 12;
+ idx_PedidosProveedorINCIDENCIASACTIVAS = 13;
+ idx_PedidosProveedorCODIGOALMACEN = 14;
+ idx_PedidosProveedorCODIGOCONTACTO = 15;
+ idx_PedidosProveedorNOMBRE = 16;
+ idx_PedidosProveedorCODIGOMONTAJE = 17;
+ idx_PedidosProveedorNOMBREALMACEN = 18;
+ idx_PedidosProveedorCODIGOCONTACTO1 = 19;
+ idx_PedidosProveedorNOMBRECLIENTE = 20;
+
+ { Refresh_PedidosProveedor fields }
+ fld_Refresh_PedidosProveedorCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_Refresh_PedidosProveedorCODIGO = 'CODIGO';
+ fld_Refresh_PedidosProveedorFECHAALTA = 'FECHAALTA';
+ fld_Refresh_PedidosProveedorUSUARIO = 'USUARIO';
+ fld_Refresh_PedidosProveedorREFERENCIA = 'REFERENCIA';
+ fld_Refresh_PedidosProveedorFECHAPEDIDO = 'FECHAPEDIDO';
+ fld_Refresh_PedidosProveedorFECHACONFIRMACION = 'FECHACONFIRMACION';
+ fld_Refresh_PedidosProveedorSITUACION = 'SITUACION';
+ fld_Refresh_PedidosProveedorFECHAENTREGA = 'FECHAENTREGA';
+ fld_Refresh_PedidosProveedorOBSERVACIONES = 'OBSERVACIONES';
+ fld_Refresh_PedidosProveedorIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_Refresh_PedidosProveedorDIRECCIONCOMPLETA = 'DIRECCIONCOMPLETA';
+ fld_Refresh_PedidosProveedorINCIDENCIAS = 'INCIDENCIAS';
+ fld_Refresh_PedidosProveedorINCIDENCIASACTIVAS = 'INCIDENCIASACTIVAS';
+ fld_Refresh_PedidosProveedorCODIGOALMACEN = 'CODIGOALMACEN';
+ fld_Refresh_PedidosProveedorCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_Refresh_PedidosProveedorNOMBRE = 'NOMBRE';
+ fld_Refresh_PedidosProveedorCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_Refresh_PedidosProveedorNOMBREALMACEN = 'NOMBREALMACEN';
+ fld_Refresh_PedidosProveedorCODIGOCONTACTO1 = 'CODIGOCONTACTO1';
+ fld_Refresh_PedidosProveedorNOMBRECLIENTE = 'NOMBRECLIENTE';
+
+ { Refresh_PedidosProveedor field indexes }
+ idx_Refresh_PedidosProveedorCODIGOEMPRESA = 0;
+ idx_Refresh_PedidosProveedorCODIGO = 1;
+ idx_Refresh_PedidosProveedorFECHAALTA = 2;
+ idx_Refresh_PedidosProveedorUSUARIO = 3;
+ idx_Refresh_PedidosProveedorREFERENCIA = 4;
+ idx_Refresh_PedidosProveedorFECHAPEDIDO = 5;
+ idx_Refresh_PedidosProveedorFECHACONFIRMACION = 6;
+ idx_Refresh_PedidosProveedorSITUACION = 7;
+ idx_Refresh_PedidosProveedorFECHAENTREGA = 8;
+ idx_Refresh_PedidosProveedorOBSERVACIONES = 9;
+ idx_Refresh_PedidosProveedorIMPORTETOTAL = 10;
+ idx_Refresh_PedidosProveedorDIRECCIONCOMPLETA = 11;
+ idx_Refresh_PedidosProveedorINCIDENCIAS = 12;
+ idx_Refresh_PedidosProveedorINCIDENCIASACTIVAS = 13;
+ idx_Refresh_PedidosProveedorCODIGOALMACEN = 14;
+ idx_Refresh_PedidosProveedorCODIGOCONTACTO = 15;
+ idx_Refresh_PedidosProveedorNOMBRE = 16;
+ idx_Refresh_PedidosProveedorCODIGOMONTAJE = 17;
+ idx_Refresh_PedidosProveedorNOMBREALMACEN = 18;
+ idx_Refresh_PedidosProveedorCODIGOCONTACTO1 = 19;
+ idx_Refresh_PedidosProveedorNOMBRECLIENTE = 20;
+
+ { InformeCabeceraPedido fields }
+ fld_InformeCabeceraPedidoCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraPedidoCODIGO = 'CODIGO';
+ fld_InformeCabeceraPedidoREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraPedidoFECHAPEDIDO = 'FECHAPEDIDO';
+ fld_InformeCabeceraPedidoFECHAENTREGA = 'FECHAENTREGA';
+ fld_InformeCabeceraPedidoOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraPedidoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeCabeceraPedidoDIRECCIONCOMPLETA = 'DIRECCIONCOMPLETA';
+ fld_InformeCabeceraPedidoNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraPedidoCALLE = 'CALLE';
+ fld_InformeCabeceraPedidoCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraPedidoPROVINCIA = 'PROVINCIA';
+ fld_InformeCabeceraPedidoPOBLACION = 'POBLACION';
+ fld_InformeCabeceraPedidoCODIGOMONTAJE = 'CODIGOMONTAJE';
+ fld_InformeCabeceraPedidoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraPedidoNOMBRECLIENTE = 'NOMBRECLIENTE';
+
+ { InformeCabeceraPedido field indexes }
+ idx_InformeCabeceraPedidoCODIGOEMPRESA = 0;
+ idx_InformeCabeceraPedidoCODIGO = 1;
+ idx_InformeCabeceraPedidoREFERENCIA = 2;
+ idx_InformeCabeceraPedidoFECHAPEDIDO = 3;
+ idx_InformeCabeceraPedidoFECHAENTREGA = 4;
+ idx_InformeCabeceraPedidoOBSERVACIONES = 5;
+ idx_InformeCabeceraPedidoIMPORTETOTAL = 6;
+ idx_InformeCabeceraPedidoDIRECCIONCOMPLETA = 7;
+ idx_InformeCabeceraPedidoNOMBRE = 8;
+ idx_InformeCabeceraPedidoCALLE = 9;
+ idx_InformeCabeceraPedidoCODIGOPOSTAL = 10;
+ idx_InformeCabeceraPedidoPROVINCIA = 11;
+ idx_InformeCabeceraPedidoPOBLACION = 12;
+ idx_InformeCabeceraPedidoCODIGOMONTAJE = 13;
+ idx_InformeCabeceraPedidoCODIGOCONTACTO = 14;
+ idx_InformeCabeceraPedidoNOMBRECLIENTE = 15;
+
+ { InformeDetallesPedido fields }
+ fld_InformeDetallesPedidoCODIGOPEDIDO = 'CODIGOPEDIDO';
+ fld_InformeDetallesPedidoNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_InformeDetallesPedidoDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesPedidoCANTIDAD = 'CANTIDAD';
+ fld_InformeDetallesPedidoIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_InformeDetallesPedidoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeDetallesPedidoPOSICION = 'POSICION';
+ fld_InformeDetallesPedidoTIPO = 'TIPO';
+
+ { InformeDetallesPedido field indexes }
+ idx_InformeDetallesPedidoCODIGOPEDIDO = 0;
+ idx_InformeDetallesPedidoNUMCONCEPTO = 1;
+ idx_InformeDetallesPedidoDESCRIPCION = 2;
+ idx_InformeDetallesPedidoCANTIDAD = 3;
+ idx_InformeDetallesPedidoIMPORTEUNIDAD = 4;
+ idx_InformeDetallesPedidoIMPORTETOTAL = 5;
+ idx_InformeDetallesPedidoPOSICION = 6;
+ idx_InformeDetallesPedidoTIPO = 7;
+
+type
+ { IdarReferenciaPedido }
+ IdarReferenciaPedido = interface(IDAStronglyTypedDataTable)
+ ['{0F22273C-9C50-4C0B-A525-91B8A4A2B810}']
+ { Property getters and setters }
+
+
+ { Properties }
+ end;
+
+ { TdarReferenciaPedidoDataTableRules }
+ TdarReferenciaPedidoDataTableRules = class(TDADataTableRules, IdarReferenciaPedido)
+ private
+ protected
+ { Property getters and setters }
+
+ { Properties }
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesPedidosProveedor }
+ IDetallesPedidosProveedor = interface(IDAStronglyTypedDataTable)
+ ['{85D589DA-23C9-4E5C-A8D5-E9C5FE0C299C}']
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ end;
+
+ { TDetallesPedidosProveedorDataTableRules }
+ TDetallesPedidosProveedorDataTableRules = class(TDADataTableRules, IDetallesPedidosProveedor)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPedidosProveedor }
+ IPedidosProveedor = interface(IDAStronglyTypedDataTable)
+ ['{A3234350-6EC1-44E2-914A-4F402CAD1C21}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetFECHAPEDIDOValue: DateTime;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime);
+ function GetFECHACONFIRMACIONValue: DateTime;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHAENTREGAValue: DateTime;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetDIRECCIONCOMPLETAValue: IROStrings;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+ function GetINCIDENCIASValue: IROStrings;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings);
+ function GetINCIDENCIASACTIVASValue: Integer;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer);
+ function GetCODIGOALMACENValue: Integer;
+ procedure SetCODIGOALMACENValue(const aValue: Integer);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetNOMBREALMACENValue: String;
+ procedure SetNOMBREALMACENValue(const aValue: String);
+ function GetCODIGOCONTACTO1Value: Integer;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer);
+ function GetNOMBRECLIENTEValue: String;
+ procedure SetNOMBRECLIENTEValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHACONFIRMACION: DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property INCIDENCIASACTIVAS: Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NOMBREALMACEN: String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property CODIGOCONTACTO1: Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ end;
+
+ { TPedidosProveedorDataTableRules }
+ TPedidosProveedorDataTableRules = class(TDADataTableRules, IPedidosProveedor)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHACONFIRMACIONValue: DateTime; virtual;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASValue: IROStrings; virtual;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASACTIVASValue: Integer; virtual;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNOMBREALMACENValue: String; virtual;
+ procedure SetNOMBREALMACENValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTO1Value: Integer; virtual;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHACONFIRMACION: DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property INCIDENCIASACTIVAS: Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NOMBREALMACEN: String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property CODIGOCONTACTO1: Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_PedidosProveedor }
+ IRefresh_PedidosProveedor = interface(IDAStronglyTypedDataTable)
+ ['{6F81940D-E091-4CCF-87B5-3D18484BF359}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetFECHAPEDIDOValue: DateTime;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime);
+ function GetFECHACONFIRMACIONValue: DateTime;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHAENTREGAValue: DateTime;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetDIRECCIONCOMPLETAValue: IROStrings;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+ function GetINCIDENCIASValue: IROStrings;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings);
+ function GetINCIDENCIASACTIVASValue: Integer;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer);
+ function GetCODIGOALMACENValue: Integer;
+ procedure SetCODIGOALMACENValue(const aValue: Integer);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetNOMBREALMACENValue: String;
+ procedure SetNOMBREALMACENValue(const aValue: String);
+ function GetCODIGOCONTACTO1Value: Integer;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer);
+ function GetNOMBRECLIENTEValue: String;
+ procedure SetNOMBRECLIENTEValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHACONFIRMACION: DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property INCIDENCIASACTIVAS: Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NOMBREALMACEN: String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property CODIGOCONTACTO1: Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ end;
+
+ { TRefresh_PedidosProveedorDataTableRules }
+ TRefresh_PedidosProveedorDataTableRules = class(TDADataTableRules, IRefresh_PedidosProveedor)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHACONFIRMACIONValue: DateTime; virtual;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASValue: IROStrings; virtual;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASACTIVASValue: Integer; virtual;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNOMBREALMACENValue: String; virtual;
+ procedure SetNOMBREALMACENValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTO1Value: Integer; virtual;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHACONFIRMACION: DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS: IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property INCIDENCIASACTIVAS: Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN: Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property NOMBREALMACEN: String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property CODIGOCONTACTO1: Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPedido }
+ IInformeCabeceraPedido = interface(IDAStronglyTypedDataTable)
+ ['{D3E6B5DA-06AA-442B-89E8-53CF2ACC19ED}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetFECHAPEDIDOValue: DateTime;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime);
+ function GetFECHAENTREGAValue: DateTime;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+ function GetDIRECCIONCOMPLETAValue: IROStrings;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPROVINCIAValue: String;
+ procedure SetPROVINCIAValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetCODIGOMONTAJEValue: Integer;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBRECLIENTEValue: String;
+ procedure SetNOMBRECLIENTEValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ end;
+
+ { TInformeCabeceraPedidoDataTableRules }
+ TInformeCabeceraPedidoDataTableRules = class(TDADataTableRules, IInformeCabeceraPedido)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property FECHAPEDIDO: DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property FECHAENTREGA: DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA: IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property CODIGOMONTAJE: Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRECLIENTE: String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPedido }
+ IInformeDetallesPedido = interface(IDAStronglyTypedDataTable)
+ ['{7800BEA2-1E81-406B-9107-3E56B0A796B6}']
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ end;
+
+ { TInformeDetallesPedidoDataTableRules }
+ TInformeDetallesPedidoDataTableRules = class(TDADataTableRules, IInformeDetallesPedido)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOPEDIDO: Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TdarReferenciaPedidoDataTableRules }
+constructor TdarReferenciaPedidoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TdarReferenciaPedidoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+
+{ TDetallesPedidosProveedorDataTableRules }
+constructor TDetallesPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDetallesPedidosProveedorDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorCODIGOPEDIDO].AsInteger;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorCODIGOPEDIDO].AsInteger := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorNUMCONCEPTO].AsInteger;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorDESCRIPCION].AsString;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorDESCRIPCION].AsString := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorCANTIDAD].AsInteger;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorCANTIDAD].AsInteger := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorPOSICION].AsInteger;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorPOSICION].AsInteger := aValue;
+end;
+
+function TDetallesPedidosProveedorDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPedidosProveedorTIPO].AsString;
+end;
+
+procedure TDetallesPedidosProveedorDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPedidosProveedorTIPO].AsString := aValue;
+end;
+
+
+{ TPedidosProveedorDataTableRules }
+constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPedidosProveedorDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGO].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGO].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorFECHAALTA].AsDateTime;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PedidosProveedorFECHAALTA].AsDateTime := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorUSUARIO].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorUSUARIO].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorREFERENCIA].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorREFERENCIA].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorFECHAPEDIDO].AsDateTime;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PedidosProveedorFECHAPEDIDO].AsDateTime := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetFECHACONFIRMACIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorFECHACONFIRMACION].AsDateTime;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetFECHACONFIRMACIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PedidosProveedorFECHACONFIRMACION].AsDateTime := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorSITUACION].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorSITUACION].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorFECHAENTREGA].AsDateTime;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PedidosProveedorFECHAENTREGA].AsDateTime := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PedidosProveedorOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TPedidosProveedorDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidosProveedorIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PedidosProveedorDIRECCIONCOMPLETA].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PedidosProveedorDIRECCIONCOMPLETA].AsString := aValue.Text;
+end;
+
+function TPedidosProveedorDataTableRules.GetINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PedidosProveedorINCIDENCIAS].AsString := aValue.Text;
+end;
+
+function TPedidosProveedorDataTableRules.GetINCIDENCIASACTIVASValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorINCIDENCIASACTIVAS].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetINCIDENCIASACTIVASValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorINCIDENCIASACTIVAS].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGOALMACEN].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGOALMACEN].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorNOMBRE].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorNOMBRE].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetNOMBREALMACENValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorNOMBREALMACEN].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetNOMBREALMACENValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorNOMBREALMACEN].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetCODIGOCONTACTO1Value: Integer;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorCODIGOCONTACTO1].AsInteger;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetCODIGOCONTACTO1Value(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidosProveedorCODIGOCONTACTO1].AsInteger := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorNOMBRECLIENTE].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorNOMBRECLIENTE].AsString := aValue;
+end;
+
+
+{ TRefresh_PedidosProveedorDataTableRules }
+constructor TRefresh_PedidosProveedorDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TRefresh_PedidosProveedorDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGO].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGO].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorFECHAALTA].AsDateTime;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorFECHAALTA].AsDateTime := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorUSUARIO].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorUSUARIO].AsString := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorREFERENCIA].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorREFERENCIA].AsString := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorFECHAPEDIDO].AsDateTime;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorFECHAPEDIDO].AsDateTime := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetFECHACONFIRMACIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorFECHACONFIRMACION].AsDateTime;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetFECHACONFIRMACIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorFECHACONFIRMACION].AsDateTime := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorSITUACION].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorSITUACION].AsString := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorFECHAENTREGA].AsDateTime;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorFECHAENTREGA].AsDateTime := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_Refresh_PedidosProveedorOBSERVACIONES].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_Refresh_PedidosProveedorDIRECCIONCOMPLETA].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorDIRECCIONCOMPLETA].AsString := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_Refresh_PedidosProveedorINCIDENCIAS].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetINCIDENCIASValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorINCIDENCIAS].AsString := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetINCIDENCIASACTIVASValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorINCIDENCIASACTIVAS].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetINCIDENCIASACTIVASValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorINCIDENCIASACTIVAS].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOALMACEN].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOALMACEN].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorNOMBRE].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorNOMBRE].AsString := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetNOMBREALMACENValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorNOMBREALMACEN].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetNOMBREALMACENValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorNOMBREALMACEN].AsString := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetCODIGOCONTACTO1Value: Integer;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOCONTACTO1].AsInteger;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetCODIGOCONTACTO1Value(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorCODIGOCONTACTO1].AsInteger := aValue;
+end;
+
+function TRefresh_PedidosProveedorDataTableRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_Refresh_PedidosProveedorNOMBRECLIENTE].AsString;
+end;
+
+procedure TRefresh_PedidosProveedorDataTableRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Refresh_PedidosProveedorNOMBRECLIENTE].AsString := aValue;
+end;
+
+
+{ TInformeCabeceraPedidoDataTableRules }
+constructor TInformeCabeceraPedidoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPedidoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoFECHAPEDIDO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoFECHAPEDIDO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoFECHAENTREGA].AsDateTime;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoFECHAENTREGA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPedidoOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoIMPORTETOTAL].AsFloat;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoIMPORTETOTAL].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPedidoDIRECCIONCOMPLETA].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoDIRECCIONCOMPLETA].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCALLE].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetPROVINCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoPROVINCIA].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetPROVINCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoPROVINCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCODIGOMONTAJE].AsInteger;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCODIGOMONTAJE].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPedidoDataTableRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPedidoNOMBRECLIENTE].AsString;
+end;
+
+procedure TInformeCabeceraPedidoDataTableRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPedidoNOMBRECLIENTE].AsString := aValue;
+end;
+
+
+{ TInformeDetallesPedidoDataTableRules }
+constructor TInformeDetallesPedidoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPedidoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoCODIGOPEDIDO].AsInteger;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoCODIGOPEDIDO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoNUMCONCEPTO].AsInteger;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoCANTIDAD].AsInteger;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoCANTIDAD].AsInteger := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoPOSICION].AsInteger;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoPOSICION].AsInteger := aValue;
+end;
+
+function TInformeDetallesPedidoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPedidoTIPO].AsString;
+end;
+
+procedure TInformeDetallesPedidoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPedidoTIPO].AsString := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_darReferenciaPedido, TdarReferenciaPedidoDataTableRules);
+ RegisterDataTableRules(RID_DetallesPedidosProveedor, TDetallesPedidosProveedorDataTableRules);
+ RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules);
+ RegisterDataTableRules(RID_Refresh_PedidosProveedor, TRefresh_PedidosProveedorDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraPedido, TInformeCabeceraPedidoDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesPedido, TInformeDetallesPedidoDataTableRules);
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorServer_Intf.pas b/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorServer_Intf.pas
new file mode 100644
index 0000000..bff05e3
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Reglas/schPedidosProveedorServer_Intf.pas
@@ -0,0 +1,1881 @@
+unit schPedidosProveedorServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schPedidosProveedorClient_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_darReferenciaPedidoDelta = '{BD698220-2611-41EB-89F0-E844371835DD}';
+ RID_DetallesPedidosProveedorDelta = '{A69EEC04-2DA2-41D3-90B3-F3DDFDF124AB}';
+ RID_PedidosProveedorDelta = '{C14C1230-236A-46C3-91AF-903D77FA30EE}';
+ RID_Refresh_PedidosProveedorDelta = '{9FC9D322-C920-4E9A-8CEA-23CD43B052ED}';
+ RID_InformeCabeceraPedidoDelta = '{FF0381B3-8498-47B0-96EA-FE9723B370A6}';
+ RID_InformeDetallesPedidoDelta = '{011AA7C9-CDEC-493F-BA61-F01B37E0F0C3}';
+
+type
+ { IdarReferenciaPedidoDelta }
+ IdarReferenciaPedidoDelta = interface(IdarReferenciaPedido)
+ ['{BD698220-2611-41EB-89F0-E844371835DD}']
+ { Property getters and setters }
+
+ { Properties }
+ end;
+
+ { TdarReferenciaPedidoBusinessProcessorRules }
+ TdarReferenciaPedidoBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferenciaPedido, IdarReferenciaPedidoDelta)
+ private
+ protected
+ { Property getters and setters }
+
+ { Properties }
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesPedidosProveedorDelta }
+ IDetallesPedidosProveedorDelta = interface(IDetallesPedidosProveedor)
+ ['{A69EEC04-2DA2-41D3-90B3-F3DDFDF124AB}']
+ { Property getters and setters }
+ function GetOldCODIGOPEDIDOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldTIPOValue : String;
+
+ { Properties }
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ end;
+
+ { TDetallesPedidosProveedorBusinessProcessorRules }
+ TDetallesPedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IDetallesPedidosProveedor, IDetallesPedidosProveedorDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ function GetOldCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOPEDIDO : Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPedidosProveedorDelta }
+ IPedidosProveedorDelta = interface(IPedidosProveedor)
+ ['{C14C1230-236A-46C3-91AF-903D77FA30EE}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldFECHAPEDIDOValue : DateTime;
+ function GetOldFECHACONFIRMACIONValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHAENTREGAValue : DateTime;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldDIRECCIONCOMPLETAValue : IROStrings;
+ function GetOldINCIDENCIASValue : IROStrings;
+ function GetOldINCIDENCIASACTIVASValue : Integer;
+ function GetOldCODIGOALMACENValue : Integer;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldNOMBREALMACENValue : String;
+ function GetOldCODIGOCONTACTO1Value : Integer;
+ function GetOldNOMBRECLIENTEValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property OldFECHACONFIRMACION : DateTime read GetOldFECHACONFIRMACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue;
+ property OldINCIDENCIASACTIVAS : Integer read GetOldINCIDENCIASACTIVASValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldNOMBREALMACEN : String read GetOldNOMBREALMACENValue;
+ property OldCODIGOCONTACTO1 : Integer read GetOldCODIGOCONTACTO1Value;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+ end;
+
+ { TPedidosProveedorBusinessProcessorRules }
+ TPedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidosProveedor, IPedidosProveedorDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ function GetOldFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHACONFIRMACIONValue: DateTime; virtual;
+ function GetOldFECHACONFIRMACIONValue: DateTime; virtual;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ function GetOldFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ function GetOldDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASValue: IROStrings; virtual;
+ function GetOldINCIDENCIASValue: IROStrings; virtual;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASACTIVASValue: Integer; virtual;
+ function GetOldINCIDENCIASACTIVASValue: Integer; virtual;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ function GetOldCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNOMBREALMACENValue: String; virtual;
+ function GetOldNOMBREALMACENValue: String; virtual;
+ procedure SetNOMBREALMACENValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTO1Value: Integer; virtual;
+ function GetOldCODIGOCONTACTO1Value: Integer; virtual;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ function GetOldNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property FECHAPEDIDO : DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property FECHACONFIRMACION : DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property OldFECHACONFIRMACION : DateTime read GetOldFECHACONFIRMACIONValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHAENTREGA : DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA : IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue;
+ property INCIDENCIASACTIVAS : Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property OldINCIDENCIASACTIVAS : Integer read GetOldINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN : Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property NOMBREALMACEN : String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property OldNOMBREALMACEN : String read GetOldNOMBREALMACENValue;
+ property CODIGOCONTACTO1 : Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property OldCODIGOCONTACTO1 : Integer read GetOldCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE : String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IRefresh_PedidosProveedorDelta }
+ IRefresh_PedidosProveedorDelta = interface(IRefresh_PedidosProveedor)
+ ['{9FC9D322-C920-4E9A-8CEA-23CD43B052ED}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldFECHAPEDIDOValue : DateTime;
+ function GetOldFECHACONFIRMACIONValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHAENTREGAValue : DateTime;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldDIRECCIONCOMPLETAValue : IROStrings;
+ function GetOldINCIDENCIASValue : IROStrings;
+ function GetOldINCIDENCIASACTIVASValue : Integer;
+ function GetOldCODIGOALMACENValue : Integer;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldNOMBREALMACENValue : String;
+ function GetOldCODIGOCONTACTO1Value : Integer;
+ function GetOldNOMBRECLIENTEValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property OldFECHACONFIRMACION : DateTime read GetOldFECHACONFIRMACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue;
+ property OldINCIDENCIASACTIVAS : Integer read GetOldINCIDENCIASACTIVASValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldNOMBREALMACEN : String read GetOldNOMBREALMACENValue;
+ property OldCODIGOCONTACTO1 : Integer read GetOldCODIGOCONTACTO1Value;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+ end;
+
+ { TRefresh_PedidosProveedorBusinessProcessorRules }
+ TRefresh_PedidosProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IRefresh_PedidosProveedor, IRefresh_PedidosProveedorDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ function GetOldFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHACONFIRMACIONValue: DateTime; virtual;
+ function GetOldFECHACONFIRMACIONValue: DateTime; virtual;
+ procedure SetFECHACONFIRMACIONValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ function GetOldFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ function GetOldDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASValue: IROStrings; virtual;
+ function GetOldINCIDENCIASValue: IROStrings; virtual;
+ procedure SetINCIDENCIASValue(const aValue: IROStrings); virtual;
+ function GetINCIDENCIASACTIVASValue: Integer; virtual;
+ function GetOldINCIDENCIASACTIVASValue: Integer; virtual;
+ procedure SetINCIDENCIASACTIVASValue(const aValue: Integer); virtual;
+ function GetCODIGOALMACENValue: Integer; virtual;
+ function GetOldCODIGOALMACENValue: Integer; virtual;
+ procedure SetCODIGOALMACENValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetNOMBREALMACENValue: String; virtual;
+ function GetOldNOMBREALMACENValue: String; virtual;
+ procedure SetNOMBREALMACENValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTO1Value: Integer; virtual;
+ function GetOldCODIGOCONTACTO1Value: Integer; virtual;
+ procedure SetCODIGOCONTACTO1Value(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ function GetOldNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property FECHAPEDIDO : DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property FECHACONFIRMACION : DateTime read GetFECHACONFIRMACIONValue write SetFECHACONFIRMACIONValue;
+ property OldFECHACONFIRMACION : DateTime read GetOldFECHACONFIRMACIONValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHAENTREGA : DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA : IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property INCIDENCIAS : IROStrings read GetINCIDENCIASValue write SetINCIDENCIASValue;
+ property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue;
+ property INCIDENCIASACTIVAS : Integer read GetINCIDENCIASACTIVASValue write SetINCIDENCIASACTIVASValue;
+ property OldINCIDENCIASACTIVAS : Integer read GetOldINCIDENCIASACTIVASValue;
+ property CODIGOALMACEN : Integer read GetCODIGOALMACENValue write SetCODIGOALMACENValue;
+ property OldCODIGOALMACEN : Integer read GetOldCODIGOALMACENValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property NOMBREALMACEN : String read GetNOMBREALMACENValue write SetNOMBREALMACENValue;
+ property OldNOMBREALMACEN : String read GetOldNOMBREALMACENValue;
+ property CODIGOCONTACTO1 : Integer read GetCODIGOCONTACTO1Value write SetCODIGOCONTACTO1Value;
+ property OldCODIGOCONTACTO1 : Integer read GetOldCODIGOCONTACTO1Value;
+ property NOMBRECLIENTE : String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPedidoDelta }
+ IInformeCabeceraPedidoDelta = interface(IInformeCabeceraPedido)
+ ['{FF0381B3-8498-47B0-96EA-FE9723B370A6}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldREFERENCIAValue : String;
+ function GetOldFECHAPEDIDOValue : DateTime;
+ function GetOldFECHAENTREGAValue : DateTime;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldIMPORTETOTALValue : Float;
+ function GetOldDIRECCIONCOMPLETAValue : IROStrings;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPROVINCIAValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldCODIGOMONTAJEValue : Integer;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBRECLIENTEValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+ end;
+
+ { TInformeCabeceraPedidoBusinessProcessorRules }
+ TInformeCabeceraPedidoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraPedido, IInformeCabeceraPedidoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetFECHAPEDIDOValue: DateTime; virtual;
+ function GetOldFECHAPEDIDOValue: DateTime; virtual;
+ procedure SetFECHAPEDIDOValue(const aValue: DateTime); virtual;
+ function GetFECHAENTREGAValue: DateTime; virtual;
+ function GetOldFECHAENTREGAValue: DateTime; virtual;
+ procedure SetFECHAENTREGAValue(const aValue: DateTime); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ function GetOldDIRECCIONCOMPLETAValue: IROStrings; virtual;
+ procedure SetDIRECCIONCOMPLETAValue(const aValue: IROStrings); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPROVINCIAValue: String; virtual;
+ function GetOldPROVINCIAValue: String; virtual;
+ procedure SetPROVINCIAValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetCODIGOMONTAJEValue: Integer; virtual;
+ function GetOldCODIGOMONTAJEValue: Integer; virtual;
+ procedure SetCODIGOMONTAJEValue(const aValue: Integer); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBRECLIENTEValue: String; virtual;
+ function GetOldNOMBRECLIENTEValue: String; virtual;
+ procedure SetNOMBRECLIENTEValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property FECHAPEDIDO : DateTime read GetFECHAPEDIDOValue write SetFECHAPEDIDOValue;
+ property OldFECHAPEDIDO : DateTime read GetOldFECHAPEDIDOValue;
+ property FECHAENTREGA : DateTime read GetFECHAENTREGAValue write SetFECHAENTREGAValue;
+ property OldFECHAENTREGA : DateTime read GetOldFECHAENTREGAValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property DIRECCIONCOMPLETA : IROStrings read GetDIRECCIONCOMPLETAValue write SetDIRECCIONCOMPLETAValue;
+ property OldDIRECCIONCOMPLETA : IROStrings read GetOldDIRECCIONCOMPLETAValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
+ property OldPROVINCIA : String read GetOldPROVINCIAValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property CODIGOMONTAJE : Integer read GetCODIGOMONTAJEValue write SetCODIGOMONTAJEValue;
+ property OldCODIGOMONTAJE : Integer read GetOldCODIGOMONTAJEValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRECLIENTE : String read GetNOMBRECLIENTEValue write SetNOMBRECLIENTEValue;
+ property OldNOMBRECLIENTE : String read GetOldNOMBRECLIENTEValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPedidoDelta }
+ IInformeDetallesPedidoDelta = interface(IInformeDetallesPedido)
+ ['{011AA7C9-CDEC-493F-BA61-F01B37E0F0C3}']
+ { Property getters and setters }
+ function GetOldCODIGOPEDIDOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldTIPOValue : String;
+
+ { Properties }
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ end;
+
+ { TInformeDetallesPedidoBusinessProcessorRules }
+ TInformeDetallesPedidoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesPedido, IInformeDetallesPedidoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPEDIDOValue: Integer; virtual;
+ function GetOldCODIGOPEDIDOValue: Integer; virtual;
+ procedure SetCODIGOPEDIDOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOPEDIDO : Integer read GetCODIGOPEDIDOValue write SetCODIGOPEDIDOValue;
+ property OldCODIGOPEDIDO : Integer read GetOldCODIGOPEDIDOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TdarReferenciaPedidoBusinessProcessorRules }
+constructor TdarReferenciaPedidoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TdarReferenciaPedidoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+
+{ TDetallesPedidosProveedorBusinessProcessorRules }
+constructor TDetallesPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDetallesPedidosProveedorBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorCODIGOPEDIDO];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorCODIGOPEDIDO];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorCODIGOPEDIDO] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorNUMCONCEPTO];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorNUMCONCEPTO];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorNUMCONCEPTO] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorDESCRIPCION];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorDESCRIPCION];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorDESCRIPCION] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorCANTIDAD];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorCANTIDAD];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorCANTIDAD] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorIMPORTEUNIDAD];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorIMPORTEUNIDAD];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorIMPORTEUNIDAD] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorIMPORTETOTAL];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorIMPORTETOTAL];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorIMPORTETOTAL] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorPOSICION];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorPOSICION];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorPOSICION] := aValue;
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorTIPO];
+end;
+
+function TDetallesPedidosProveedorBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPedidosProveedorTIPO];
+end;
+
+procedure TDetallesPedidosProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPedidosProveedorTIPO] := aValue;
+end;
+
+
+{ TPedidosProveedorBusinessProcessorRules }
+constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPedidosProveedorBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOEMPRESA];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGOEMPRESA];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOEMPRESA] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGO];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGO] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAALTA];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHAALTA];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAALTA] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorUSUARIO];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorUSUARIO] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAPEDIDO];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHAPEDIDO];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAPEDIDO] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetFECHACONFIRMACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHACONFIRMACION];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldFECHACONFIRMACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHACONFIRMACION];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetFECHACONFIRMACIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHACONFIRMACION] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorSITUACION];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorSITUACION] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAENTREGA];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorFECHAENTREGA];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorFECHAENTREGA] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorOBSERVACIONES];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorOBSERVACIONES] := aValue.Text;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTETOTAL];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorIMPORTETOTAL];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTETOTAL] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDIRECCIONCOMPLETA];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorDIRECCIONCOMPLETA];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorDIRECCIONCOMPLETA] := aValue.Text;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIAS];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIAS] := aValue.Text;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetINCIDENCIASACTIVASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIASACTIVAS];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASACTIVASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorINCIDENCIASACTIVAS];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetINCIDENCIASACTIVASValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorINCIDENCIASACTIVAS] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOALMACEN];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGOALMACEN];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOALMACEN] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOCONTACTO];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGOCONTACTO];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOCONTACTO] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRE];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRE] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOMONTAJE];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGOMONTAJE];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOMONTAJE] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetNOMBREALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBREALMACEN];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldNOMBREALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBREALMACEN];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetNOMBREALMACENValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBREALMACEN] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetCODIGOCONTACTO1Value: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOCONTACTO1];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldCODIGOCONTACTO1Value: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorCODIGOCONTACTO1];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetCODIGOCONTACTO1Value(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorCODIGOCONTACTO1] := aValue;
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRECLIENTE];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorNOMBRECLIENTE];
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorNOMBRECLIENTE] := aValue;
+end;
+
+
+{ TRefresh_PedidosProveedorBusinessProcessorRules }
+constructor TRefresh_PedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TRefresh_PedidosProveedorBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOEMPRESA];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGOEMPRESA];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOEMPRESA] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGO];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGO];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGO] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAALTA];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorFECHAALTA];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAALTA] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorUSUARIO];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorUSUARIO];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorUSUARIO] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorREFERENCIA];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorREFERENCIA];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorREFERENCIA] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAPEDIDO];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorFECHAPEDIDO];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAPEDIDO] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetFECHACONFIRMACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHACONFIRMACION];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldFECHACONFIRMACIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorFECHACONFIRMACION];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetFECHACONFIRMACIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHACONFIRMACION] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorSITUACION];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorSITUACION];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorSITUACION] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAENTREGA];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorFECHAENTREGA];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorFECHAENTREGA] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorOBSERVACIONES];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorOBSERVACIONES];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorOBSERVACIONES] := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorIMPORTETOTAL];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorIMPORTETOTAL];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorIMPORTETOTAL] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorDIRECCIONCOMPLETA];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorDIRECCIONCOMPLETA];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorDIRECCIONCOMPLETA] := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorINCIDENCIAS];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorINCIDENCIAS];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetINCIDENCIASValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorINCIDENCIAS] := aValue.Text;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetINCIDENCIASACTIVASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorINCIDENCIASACTIVAS];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldINCIDENCIASACTIVASValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorINCIDENCIASACTIVAS];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetINCIDENCIASACTIVASValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorINCIDENCIASACTIVAS] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOALMACEN];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOALMACENValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGOALMACEN];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOALMACEN] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBRE];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorNOMBRE];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBRE] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOMONTAJE];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGOMONTAJE];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOMONTAJE] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetNOMBREALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBREALMACEN];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldNOMBREALMACENValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorNOMBREALMACEN];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetNOMBREALMACENValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBREALMACEN] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetCODIGOCONTACTO1Value: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO1];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldCODIGOCONTACTO1Value: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO1];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetCODIGOCONTACTO1Value(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorCODIGOCONTACTO1] := aValue;
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBRECLIENTE];
+end;
+
+function TRefresh_PedidosProveedorBusinessProcessorRules.GetOldNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Refresh_PedidosProveedorNOMBRECLIENTE];
+end;
+
+procedure TRefresh_PedidosProveedorBusinessProcessorRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Refresh_PedidosProveedorNOMBRECLIENTE] := aValue;
+end;
+
+
+{ TInformeCabeceraPedidoBusinessProcessorRules }
+constructor TInformeCabeceraPedidoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPedidoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGO];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCODIGO];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGO] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoREFERENCIA];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoREFERENCIA];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoFECHAPEDIDO];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldFECHAPEDIDOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoFECHAPEDIDO];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetFECHAPEDIDOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoFECHAPEDIDO] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoFECHAENTREGA];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldFECHAENTREGAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoFECHAENTREGA];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetFECHAENTREGAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoFECHAENTREGA] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoOBSERVACIONES];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoIMPORTETOTAL];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoIMPORTETOTAL];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoDIRECCIONCOMPLETA];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldDIRECCIONCOMPLETAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoDIRECCIONCOMPLETA];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetDIRECCIONCOMPLETAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoDIRECCIONCOMPLETA] := aValue.Text;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoNOMBRE];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoNOMBRE];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCALLE];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCALLE];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCALLE] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoPROVINCIA];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldPROVINCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoPROVINCIA];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoPROVINCIA] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoPOBLACION];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoPOBLACION];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOMONTAJE];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCODIGOMONTAJEValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCODIGOMONTAJE];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCODIGOMONTAJEValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOMONTAJE] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoNOMBRECLIENTE];
+end;
+
+function TInformeCabeceraPedidoBusinessProcessorRules.GetOldNOMBRECLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPedidoNOMBRECLIENTE];
+end;
+
+procedure TInformeCabeceraPedidoBusinessProcessorRules.SetNOMBRECLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPedidoNOMBRECLIENTE] := aValue;
+end;
+
+
+{ TInformeDetallesPedidoBusinessProcessorRules }
+constructor TInformeDetallesPedidoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPedidoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoCODIGOPEDIDO];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldCODIGOPEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoCODIGOPEDIDO];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetCODIGOPEDIDOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoCODIGOPEDIDO] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoNUMCONCEPTO];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoNUMCONCEPTO];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoNUMCONCEPTO] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoDESCRIPCION];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoDESCRIPCION];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoCANTIDAD];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoCANTIDAD];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoCANTIDAD] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoIMPORTEUNIDAD];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoIMPORTEUNIDAD];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoIMPORTEUNIDAD] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoIMPORTETOTAL];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoIMPORTETOTAL];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoPOSICION];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoPOSICION];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoPOSICION] := aValue;
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoTIPO];
+end;
+
+function TInformeDetallesPedidoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPedidoTIPO];
+end;
+
+procedure TInformeDetallesPedidoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPedidoTIPO] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_darReferenciaPedidoDelta, TdarReferenciaPedidoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_DetallesPedidosProveedorDelta, TDetallesPedidosProveedorBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Refresh_PedidosProveedorDelta, TRefresh_PedidosProveedorBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraPedidoDelta, TInformeCabeceraPedidoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesPedidoDelta, TInformeDetallesPedidoBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Reglas/uBizPedidosProveedor.pas b/Modulos/Pedidos a proveedor/Reglas/uBizPedidosProveedor.pas
new file mode 100644
index 0000000..baeb4af
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Reglas/uBizPedidosProveedor.pas
@@ -0,0 +1,615 @@
+unit uBizPedidosProveedor;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, Classes, Controls,
+ uBizContacto, schPedidosProveedorClient_Intf, uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uExceptions, uBizInformesBase, DB, uDBSelectionList,
+ uBizPresupuestosCliente, uBizMontajes;
+
+const
+ BIZ_PEDIDOSPROVEEDOR = 'Client.PedidoProveedor';
+ BIZ_DETALLESPEDIDOSPROVEEDOR = 'Client.DetallesPedidoProveedor';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_PARCIAL = 'Parcialmente recibido';
+ SITUACION_RECIBIDO = 'Recibido';
+
+type
+ IBizDetallesPedidoProveedor = interface(IDetallesPedidosProveedor)
+ ['{4B5CF17E-23E1-489F-B591-AC19C7A5BDDC}']
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto); overload;
+ procedure CopyFrom(ADetallesPedido : IBizDetallesPedidoProveedor); overload;
+ end;
+
+ IBizPedidosProveedor = interface(IPedidosProveedor)
+ ['{0A258465-6526-483B-AEE9-3DB3750D3C12}']
+ function GetDetalles: IBizDetallesPedidoProveedor;
+ procedure SetDetalles(const Value: IBizDetallesPedidoProveedor);
+ property Detalles: IBizDetallesPedidoProveedor read GetDetalles write
+ SetDetalles;
+
+ function GetProveedor: IBizProveedor;
+ procedure SetProveedor(const Value: IBizProveedor);
+ property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
+
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+
+ procedure Show;
+ function ShowForSelect : TModalResult;
+ procedure CopyFrom(APedido : IBizPedidosProveedor);
+ procedure CambiarSituacion(ASituacion: String);
+// procedure Preview;
+// procedure CalcularTotal;
+ end;
+
+ TBizDetallesPedidoProveedor = class(TDetallesPedidosProveedorDataTableRules,
+ IBizDetallesPedidoProveedor,
+ IBizImportesDetalle,
+ IParche) // PARCHE ***********************
+ private
+ FIsAppend : Boolean;
+ FPosicionNueva : Integer;
+ FPuedoLanzarEvento : Boolean; // PARCHE ***********************
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterInsert(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+
+ // PARCHE ***********************
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ public
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor destroy; override;
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto); overload;
+ procedure CopyFrom(ADetallesPedido : IBizDetallesPedidoProveedor); overload;
+ end;
+
+
+ TBizPedidosProveedor = class(TPedidosProveedorDataTableRules, IBizPedidosProveedor,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException, IBizInformesAware)
+
+ private
+ FProveedor : IBizProveedor;
+ FMontaje : IBizMontaje;
+ FDetalles: IBizDetallesPedidoProveedor;
+ FDetallesLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+ protected
+ procedure SetCODIGOALMACENValue(const aValue: Integer); override;
+ procedure ShowApplyUpdateFailed(const Error: EDAApplyUpdateFailed);
+ function GetDetalles: IBizDetallesPedidoProveedor;
+ procedure SetDetalles(const Value: IBizDetallesPedidoProveedor);
+ function GetProveedor: IBizProveedor;
+ procedure SetProveedor(const Value: IBizProveedor);
+ function GetMontaje: IBizMontaje;
+ procedure SetMontaje(const Value: IBizMontaje);
+
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+ public
+ property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
+ property Montaje: IBizMontaje read GetMontaje write SetMontaje;
+ property Detalles: IBizDetallesPedidoProveedor read GetDetalles write
+ SetDetalles;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+ procedure RecalcularImporte;
+ procedure Show; virtual;
+ function ShowForSelect : TModalResult;
+ procedure Preview;
+ procedure Print;
+ procedure CopyFrom(APedido : IBizPedidosProveedor);
+ procedure CambiarSituacion(ASituacion: String);
+
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+ end;
+
+ procedure ValidarPedido (const APedido : IBizPedidosProveedor);
+
+implementation
+
+uses
+ Dialogs, uDACDSDataTable, SysUtils, uEditorUtils,
+ uDataModuleContactos, Variants, Math, Windows, uROClasses,
+ uDataModulePedidosProveedor, uDataModuleBase, uDataModuleUsuarios,
+ FactuGES_Intf, uDataTableUtils, Forms, uDataModuleMontajes;
+
+var
+ FMasterDeleting : Boolean;
+ FCancelInsert : Boolean;
+
+procedure ValidarPedido (const APedido : IBizPedidosProveedor);
+begin
+ if (APedido.CODIGOALMACEN = 0) and
+ (Length(APedido.DIRECCIONCOMPLETA.Text) = 0) then
+ raise Exception.Create('Debe indicar un almacén o una dirección alternativa donde recibir el pedido');
+end;
+
+
+{ TBizPedidosProveedor }
+
+procedure TBizPedidosProveedor.AfterDelete(Sender: TDADataTable);
+begin
+ inherited;
+ FMasterDeleting := False;
+end;
+
+procedure TBizPedidosProveedor.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarPedido(Self);
+ //ctDelete :
+ end;
+end;
+
+procedure TBizPedidosProveedor.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmPedidos.PuedoEliminarPedido(CODIGO) then
+ raise Exception.Create('No se puede borrar este pedido porque tiene ya se han recibido artículos suyos en algún almacén');
+ FMasterDeleting := True; // Para que los detalles se borren de golpe y no recalcule posiciones ni totales
+end;
+
+procedure TBizPedidosProveedor.CambiarSituacion(ASituacion: String);
+begin
+ if not (Self.DataTable.State in dsEditModes) then
+ Self.DataTable.Edit;
+
+ Self.SITUACION := ASituacion;
+ Self.FECHAENTREGA := Date;
+ Self.Post;
+ Self.DataTable.ApplyUpdates;
+end;
+
+procedure TBizPedidosProveedor.CopyFrom(APedido: IBizPedidosProveedor);
+begin
+ DataTable.DisableEventHandlers;
+ try
+ if not APedido.DataTable.Active then
+ APedido.DataTable.Active := True;
+
+ CODIGOEMPRESA := APedido.CODIGOEMPRESA;
+ CODIGOCONTACTO := APedido.CODIGOCONTACTO;
+ REFERENCIA := APedido.REFERENCIA;
+ IMPORTETOTAL := APedido.IMPORTETOTAL;
+ OBSERVACIONES := APedido.OBSERVACIONES;
+ DIRECCIONCOMPLETA := APedido.DIRECCIONCOMPLETA;
+ INCIDENCIAS := APedido.INCIDENCIAS;
+ if not APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOALMACEN).IsNull then
+ CODIGOALMACEN := APedido.CODIGOALMACEN;
+ if not APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGOMONTAJE).IsNull then
+ CODIGOMONTAJE := APedido.CODIGOMONTAJE;
+
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ Post;
+ Detalles.CopyFrom(APedido.Detalles);
+end;
+
+constructor TBizPedidosProveedor.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FProveedor := NIL;
+// FMontaje := NIL;
+ FDetallesLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+end;
+
+destructor TBizPedidosProveedor.Destroy;
+begin
+ FProveedor := NIL;
+// FMontaje := NIL;
+ FDetalles := NIL;
+ FDetallesLink.Free;
+ FSelectedRows.Free;
+ inherited;
+end;
+
+function TBizPedidosProveedor.GetDetalles: IBizDetallesPedidoProveedor;
+begin
+ Result := FDetalles;
+
+{
+ if not Assigned(FDetalles) then
+ FDetalles := (dmPedidos.GetItem(CODIGO)).detalles;
+{ else
+ if (CODIGOMONTAJE <> FMontaje.Codigo) and
+ not (FMontaje.DataTable.State in dsEditModes) then
+ FMontaje := dmMontajes.GetItem(CODIGOMONTAJE);
+
+ if not FMontaje.DataTable.Active then
+ FMontaje.DataTable.Active := True;
+
+ Result := FDetalles;
+}
+end;
+
+function TBizPedidosProveedor.GetMontaje: IBizMontaje;
+begin
+ if not Assigned(FMontaje) then
+ FMontaje := dmMontajes.GetItem(CODIGOMONTAJE)
+ else
+ if (CODIGOMONTAJE <> FMontaje.Codigo) and
+ not (FMontaje.DataTable.State in dsEditModes) then
+ FMontaje := dmMontajes.GetItem(CODIGOMONTAJE);
+
+ if not FMontaje.DataTable.Active then
+ FMontaje.DataTable.Active := True;
+
+ Result := FMontaje;
+end;
+
+function TBizPedidosProveedor.GetProveedor: IBizProveedor;
+begin
+ if not Assigned(FProveedor) then
+ FProveedor := dmContactos.GetProveedor(CODIGOCONTACTO)
+ else
+ if (CODIGOCONTACTO <> FProveedor.Codigo) and
+ not (FProveedor.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FProveedor, CODIGOCONTACTO);
+
+ if not FProveedor.DataTable.Active then
+ FProveedor.DataTable.Active := True;
+
+ Result := FProveedor;
+end;
+
+function TBizPedidosProveedor.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizPedidosProveedor.OnNewRecord(Sender: TDADataTable);
+var
+ Cadenas: TStringList;
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAPEDIDO := Date;
+ FECHACONFIRMACION := FECHAPEDIDO + 3;
+ SITUACION := SITUACION_PENDIENTE;
+ CODIGO := dmPedidos.GetNextAutoinc;
+
+//Rellenamos las caracteristicas por defecto del pedido
+ Cadenas := TStringList.Create;
+ Cadenas.Append('Modelo: ');
+ Cadenas.Append('');
+ Cadenas.Append('Tirador: ');
+ Cadenas.Append('');
+ Cadenas.Append('Color de casco: ');
+ Cadenas.Append('');
+ Cadenas.Append('Cristal: ');
+ Self.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsString := Cadenas.Text;
+ FreeAndNil(Cadenas);
+end;
+
+procedure TBizPedidosProveedor.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el proveedor de este pedido', 'Atención', MB_ICONWARNING or MB_OK);
+ if (Pos('Fecha pedido', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de este pedido', 'Atención', MB_ICONWARNING or MB_OK);
+ end
+ else
+ raise Error;
+end;
+
+procedure TBizPedidosProveedor.Preview;
+begin
+ dmPedidos.Preview(CODIGO);
+end;
+
+procedure TBizPedidosProveedor.Print;
+begin
+ dmPedidos.Print(CODIGO);
+end;
+
+procedure TBizPedidosProveedor.RecalcularImporte;
+begin
+// No hay que recalcular importes
+// RecalcularImportesCabecera(Self.DataTable, Detalles.DataTable);
+end;
+
+procedure TBizPedidosProveedor.SetCODIGOALMACENValue(const aValue: Integer);
+begin
+ if aValue = 0 then
+ DataTable.Fields[idx_PedidosProveedorCODIGOALMACEN].AsVariant := NULL
+ else
+ inherited;
+end;
+
+procedure TBizPedidosProveedor.SetDetalles(const Value: IBizDetallesPedidoProveedor);
+begin
+ FDetalles := Value;
+ FDetallesLink.DataTable := Self.DataTable;
+ FDetalles.DataTable.MasterSource := FDetallesLink;
+end;
+
+procedure TBizPedidosProveedor.SetMontaje(const Value: IBizMontaje);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FMontaje := Value;
+ if Assigned(FMontaje) then
+ begin
+ CODIGOMONTAJE := FMontaje.CODIGO;
+ REFERENCIA := FMontaje.REFERENCIA;
+ Post;
+
+ if (MessageBox(0, 'Si lo desea, puede utilizar los conceptos del presupuesto ' + #10#13 +
+ 'de este montaje para rellenar el pedido nuevo que va a hacer.' + #10#13 + #10#13 +
+ '¿Desea copiar los conceptos del presupuesto al pedido nuevo?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idYes) then
+ Self.Detalles.CopyFrom(FMontaje.Presupuesto.Detalles);
+
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizPedidosProveedor.SetProveedor(const Value: IBizProveedor);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FProveedor := Value;
+ if Assigned(FProveedor) then
+ begin
+ CODIGOCONTACTO := FProveedor.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizPedidosProveedor.Show;
+begin
+ ShowEditor(IBizPedidosProveedor, Self, etItem);
+end;
+
+procedure TBizPedidosProveedor.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este pedido porque tiene un algo asociado', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+function TBizPedidosProveedor.ShowForSelect: TModalResult;
+begin
+ Result := ShowEditor(IBizPedidosProveedor, Self, etSelectItems);
+end;
+
+{ TBizDetallesPedidoProveedor }
+
+procedure TBizDetallesPedidoProveedor.ActivarEventos;
+begin
+ FPuedoLanzarEvento := True;
+end;
+
+procedure TBizDetallesPedidoProveedor.AfterDelete(Sender: TDADataTable);
+var
+ ACabecera : IBizImportesCabecera;
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (not FMasterDeleting) and (not FCancelInsert) then
+ begin
+ ReasignarPosiciones(Self.DataTable);
+ if Assigned(DataTable.MasterSource) and
+ Supports(DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+ FCancelInsert := False;
+end;
+
+procedure TBizDetallesPedidoProveedor.AfterInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ FIsAppend := DataTable.EOF;
+ Post; // Para lanzar AfterPost y asigne posición
+ Edit; // Para volver a dejarlo en modo de edición
+end;
+
+procedure TBizDetallesPedidoProveedor.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if POSICION < 0 then
+ AsignarPosicion(Self.DataTable, FIsAppend);
+
+ if NUMCONCEPTO < 0 then
+ AsignarNumConcepto(Self.DataTable);
+
+ FIsAppend := False;
+end;
+
+procedure TBizDetallesPedidoProveedor.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (DataTable.State in dsEditModes) then
+ DataTable.Cancel;
+
+ if not FMasterDeleting then
+ FCancelInsert := not (DataTable.MasterSource.DataTable.FieldByName('CODIGO').AsInteger = CODIGOPEDIDO);
+end;
+
+procedure TBizDetallesPedidoProveedor.BeforeInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if Assigned(DataTable.MasterSource) and
+ (DataTable.MasterSource.DataTable.State in dsEditModes) then
+ DataTable.MasterSource.DataTable.Post;
+
+ if GetRecordCount = 0 then
+ FPosicionNueva := -1
+ else
+ FPosicionNueva := POSICION * (-1);
+end;
+
+procedure TBizDetallesPedidoProveedor.CopyFrom(ADetallesPresupuesto: IBizDetallesPresupuesto);
+begin
+ DeleteAllTable(Self.DataTable);
+
+ ADetallesPresupuesto.First;
+ while not ADetallesPresupuesto.EOF do
+ begin
+ if (ADetallesPresupuesto.TIPO <> TIPODETALLE_SUBTOTAL) then
+ begin
+ try
+ Append;
+ DataTable.DisableEventHandlers;
+ TIPO := ADetallesPresupuesto.TIPO;
+ DESCRIPCION := ADetallesPresupuesto.DESCRIPCION;
+ CANTIDAD := ADetallesPresupuesto.CANTIDAD;
+
+//Por si lo piden para saber el precio de venta
+// IMPORTEUNIDAD := ADetallesPresupuesto.IMPORTEUNIDAD;
+// IMPORTETOTAL := ADetallesPresupuesto.IMPORTETOTAL;
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ Post;
+ end;
+ ADetallesPresupuesto.Next;
+ end;
+end;
+
+procedure TBizDetallesPedidoProveedor.CopyFrom(ADetallesPedido: IBizDetallesPedidoProveedor);
+begin
+ ADetallesPedido.First;
+ while not ADetallesPedido.EOF do
+ begin
+ Append;
+ DataTable.DisableEventHandlers;
+ NUMCONCEPTO := ADetallesPedido.NUMCONCEPTO;
+ POSICION := ADetallesPedido.POSICION;
+ TIPO := ADetallesPedido.TIPO;
+ DESCRIPCION := ADetallesPedido.DESCRIPCION;
+ CANTIDAD := ADetallesPedido.CANTIDAD;
+ if not ADetallesPedido.DataTable.FieldByName(fld_DetallesPedidosProveedorIMPORTEUNIDAD).IsNull then
+ IMPORTEUNIDAD := ADetallesPedido.IMPORTEUNIDAD;
+ if not ADetallesPedido.DataTable.FieldByName(fld_DetallesPedidosProveedorIMPORTETOTAL).IsNull then
+ IMPORTETOTAL := ADetallesPedido.IMPORTETOTAL;
+ DataTable.EnableEventHandlers;
+ Post;
+ ADetallesPedido.Next;
+ end;
+end;
+
+constructor TBizDetallesPedidoProveedor.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FPosicionNueva := 1; // Los conceptos empiezan a contar en 1
+ FPuedoLanzarEvento := True;
+end;
+
+function TBizDetallesPedidoProveedor.DarSumaTotalImportes: Currency;
+begin
+ Result := DarTotalDetalles(Self.DataTable, True, True);
+end;
+
+procedure TBizDetallesPedidoProveedor.DesactivarEventos;
+begin
+ FPuedoLanzarEvento := False;
+end;
+
+destructor TBizDetallesPedidoProveedor.destroy;
+begin
+showmessage('libero detalles');
+ inherited;
+end;
+
+procedure TBizDetallesPedidoProveedor.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ POSICION := FPosicionNueva;
+ NUMCONCEPTO := -1;
+ TIPO := TIPODETALLE_CONCEPTO;
+end;
+
+function TBizDetallesPedidoProveedor.PuedoLanzarEvento: Boolean;
+begin
+ Result := FPuedoLanzarEvento;
+end;
+
+procedure TBizDetallesPedidoProveedor.RecalcularImporte;
+begin
+ RecalcularImporteDetalle(Self.DataTable, False, False);
+end;
+
+procedure TBizDetallesPedidoProveedor.Refrescar;
+begin
+ DataTable.Refresh;
+end;
+
+initialization
+ FMasterDeleting := False;
+ RegisterDataTableRules(BIZ_DETALLESPEDIDOSPROVEEDOR, TBizDetallesPedidoProveedor);
+ RegisterDataTableRules(BIZ_PEDIDOSPROVEEDOR, TBizPedidosProveedor);
+
+finalization
+
+end.
diff --git a/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.ddp b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.ddp differ
diff --git a/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm
new file mode 100644
index 0000000..a90e4a1
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm
@@ -0,0 +1,1884 @@
+object srvPedidosProveedor: TsrvPedidosProveedor
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schPedidosProveedor
+ ServiceAdapter = DABINAdapter
+ Left = 445
+ Top = 306
+ Height = 459
+ Width = 300
+ object schPedidosProveedor: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL = 'SELECT * FROM DAR_REFERENCIA_PEDIDO'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'darReferenciaPedido'
+ Fields = <>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPEDIDOS'
+ SQL =
+ 'SELECT '#10' CODIGOPEDIDO, NUMCONCEPTO, DESCRIPCION, CANTIDAD, IM' +
+ 'PORTEUNIDAD, '#10' IMPORTETOTAL, POSICION, TIPO'#10' FROM'#10' DETALL' +
+ 'ESPEDIDOS'#10' WHERE CODIGOPEDIDO = :CODIGOPEDIDO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPEDIDO'
+ TableField = 'CODIGOPEDIDO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end>
+ end>
+ Name = 'DetallesPedidosProveedor'
+ Fields = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL =
+ 'SELECT '#10' PED.CODIGOEMPRESA, PED.CODIGO, PED.FECHAALTA, PED.US' +
+ 'UARIO, PED.REFERENCIA,'#10' PED.FECHAPEDIDO, PED.FECHACONFIRMACIO' +
+ 'N, PED.SITUACION, PED.FECHAENTREGA,'#10' PED.OBSERVACIONES, PED.I' +
+ 'MPORTETOTAL, PED.DIRECCIONCOMPLETA, PED.INCIDENCIAS,'#10' PED.INC' +
+ 'IDENCIASACTIVAS, PED.CODIGOCONTACTO, CON.NOMBRE,'#10' PED.CODIGOA' +
+ 'LMACEN, COALESCE(ALM.NOMBRE, '#39'Otro'#39') as NOMBREALMACEN,'#10' PED.C' +
+ 'ODIGOMONTAJE, MON.CODIGOCONTACTO, CON2.NOMBRE AS NOMBRECLIENTE'#10#10 +
+ 'FROM PEDIDOS PED'#10'LEFT JOIN CONTACTOS CON ON (PED.CODIGOCONTACTO ' +
+ '= CON.CODIGO)'#10'LEFT JOIN ALMACENES ALM ON (PED.CODIGOALMACEN = AL' +
+ 'M.CODIGO)'#10'LEFT JOIN MONTAJES MON ON (PED.CODIGOMONTAJE = MON.COD' +
+ 'IGO)'#10'LEFT JOIN CONTACTOS CON2 ON (MON.CODIGOCONTACTO = CON2.CODI' +
+ 'GO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAPEDIDO'
+ TableField = 'FECHAPEDIDO'
+ end
+ item
+ DatasetField = 'FECHACONFIRMACION'
+ TableField = 'FECHACONFIRMACION'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHAENTREGA'
+ TableField = 'FECHAENTREGA'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'DIRECCIONCOMPLETA'
+ TableField = 'DIRECCIONCOMPLETA'
+ end
+ item
+ DatasetField = 'INCIDENCIAS'
+ TableField = 'INCIDENCIAS'
+ end
+ item
+ DatasetField = 'CODIGOALMACEN'
+ TableField = 'CODIGOALMACEN'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOMONTAJE'
+ TableField = 'CODIGOMONTAJE'
+ end
+ item
+ DatasetField = 'NOMBREALMACEN'
+ TableField = 'NOMBREALMACEN'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO1'
+ TableField = 'CODIGOCONTACTO1'
+ end
+ item
+ DatasetField = 'NOMBRECLIENTE'
+ TableField = 'NOMBRECLIENTE'
+ end
+ item
+ DatasetField = 'INCIDENCIASACTIVAS'
+ TableField = 'INCIDENCIASACTIVAS'
+ end>
+ end>
+ Name = 'PedidosProveedor'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHACONFIRMACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Direcci'#243'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Incidencias'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIASACTIVAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DefaultValue = '0'
+ Required = True
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBREALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO1'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRECLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL =
+ 'SELECT'#10' PED.CODIGOEMPRESA, PED.CODIGO, PED.FECHAALTA, PED.USU' +
+ 'ARIO, PED.REFERENCIA,'#10' PED.FECHAPEDIDO, PED.FECHACONFIRMACION' +
+ ', PED.SITUACION, PED.FECHAENTREGA,'#10' PED.OBSERVACIONES, PED.IM' +
+ 'PORTETOTAL, PED.DIRECCIONCOMPLETA, PED.INCIDENCIAS,'#10' PED.INCI' +
+ 'DENCIASACTIVAS, PED.CODIGOCONTACTO, CON.NOMBRE,'#10' PED.CODIGOAL' +
+ 'MACEN, COALESCE(ALM.NOMBRE, '#39'Otro'#39') as NOMBREALMACEN,'#10' PED.CO' +
+ 'DIGOMONTAJE, MON.CODIGOCONTACTO, CON2.NOMBRE AS NOMBRECLIENTE'#10#10'F' +
+ 'ROM PEDIDOS PED'#10'LEFT JOIN CONTACTOS CON ON (PED.CODIGOCONTACTO =' +
+ ' CON.CODIGO)'#10'LEFT JOIN ALMACENES ALM ON (PED.CODIGOALMACEN = ALM' +
+ '.CODIGO)'#10'LEFT JOIN MONTAJES MON ON (PED.CODIGOMONTAJE = MON.CODI' +
+ 'GO)'#10'LEFT JOIN CONTACTOS CON2 ON (MON.CODIGOCONTACTO = CON2.CODIG' +
+ 'O)'#10'WHERE PED.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAPEDIDO'
+ TableField = 'FECHAPEDIDO'
+ end
+ item
+ DatasetField = 'FECHACONFIRMACION'
+ TableField = 'FECHACONFIRMACION'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHAENTREGA'
+ TableField = 'FECHAENTREGA'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'DIRECCIONCOMPLETA'
+ TableField = 'DIRECCIONCOMPLETA'
+ end
+ item
+ DatasetField = 'INCIDENCIAS'
+ TableField = 'INCIDENCIAS'
+ end
+ item
+ DatasetField = 'CODIGOALMACEN'
+ TableField = 'CODIGOALMACEN'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOMONTAJE'
+ TableField = 'CODIGOMONTAJE'
+ end
+ item
+ DatasetField = 'NOMBREALMACEN'
+ TableField = 'NOMBREALMACEN'
+ end
+ item
+ DatasetField = 'INCIDENCIASACTIVAS'
+ TableField = 'INCIDENCIASACTIVAS'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO1'
+ TableField = 'CODIGOCONTACTO1'
+ end
+ item
+ DatasetField = 'NOMBRECLIENTE'
+ TableField = 'NOMBRECLIENTE'
+ end>
+ end>
+ Name = 'Refresh_PedidosProveedor'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHACONFIRMACION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONPEDIDO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Direcci'#243'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Incidencias'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'INCIDENCIASACTIVAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGO (GENERICO)'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBREALMACEN'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO1'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRECLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = '43'
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL =
+ 'SELECT'#10' PED.CODIGOEMPRESA, PED.CODIGO, PED.REFERENCIA,'#10' PE' +
+ 'D.FECHAPEDIDO, PED.FECHAENTREGA, PED.OBSERVACIONES, PED.IMPORTET' +
+ 'OTAL,'#10' PED.DIRECCIONCOMPLETA, CON.NOMBRE, CON.CALLE, CON.CODI' +
+ 'GOPOSTAL,'#10' CON.PROVINCIA, CON.POBLACION,'#10' PED.CODIGOMONTAJ' +
+ 'E, MON.CODIGOCONTACTO, CON2.NOMBRE AS NOMBRECLIENTE'#10'FROM PEDIDOS' +
+ ' PED'#10'LEFT JOIN CONTACTOS CON ON (PED.CODIGOCONTACTO = CON.CODIGO' +
+ ')'#10'LEFT JOIN MONTAJES MON ON (PED.CODIGOMONTAJE = MON.CODIGO)'#10'LEF' +
+ 'T JOIN CONTACTOS CON2 ON (MON.CODIGOCONTACTO = CON2.CODIGO)'#10'WHER' +
+ 'E PED.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'FECHAPEDIDO'
+ TableField = 'FECHAPEDIDO'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'DIRECCIONCOMPLETA'
+ TableField = 'DIRECCIONCOMPLETA'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'PROVINCIA'
+ TableField = 'PROVINCIA'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end>
+ end>
+ Name = 'InformeCabeceraPedido'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRECLIENTE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPEDIDOS'
+ SQL =
+ 'SELECT '#10' CODIGOPEDIDO, NUMCONCEPTO, DESCRIPCION, CANTIDAD, IM' +
+ 'PORTEUNIDAD, '#10' IMPORTETOTAL, POSICION, TIPO'#10' FROM'#10' DETALL' +
+ 'ESPEDIDOS'#10' WHERE CODIGOPEDIDO = :CODIGOPEDIDO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPEDIDO'
+ TableField = 'CODIGOPEDIDO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end>
+ end>
+ Name = 'InformeDetallesPedido'
+ Fields = <
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPEDIDO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ 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 = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'INCIDENCIASACTIVAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL =
+ 'INSERT'#10' INTO PEDIDOS'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA, USU' +
+ 'ARIO, REFERENCIA, '#10' FECHAPEDIDO, FECHACONFIRMACION, SITUACIO' +
+ 'N, FECHAENTREGA, '#10' OBSERVACIONES, IMPORTETOTAL, DIRECCIONCOM' +
+ 'PLETA, INCIDENCIAS, INCIDENCIASACTIVAS,'#10' CODIGOALMACEN, CODI' +
+ 'GOCONTACTO, CODIGOMONTAJE)'#10' VALUES'#10' (:CODIGOEMPRESA, :CODIGO' +
+ ', :FECHAALTA, :USUARIO, :REFERENCIA, '#10' :FECHAPEDIDO, :FECHAC' +
+ 'ONFIRMACION, :SITUACION, :FECHAENTREGA, '#10' :OBSERVACIONES, :I' +
+ 'MPORTETOTAL, :DIRECCIONCOMPLETA, '#10' :INCIDENCIAS, :INCIDENCIA' +
+ 'SACTIVAS, :CODIGOALMACEN, :CODIGOCONTACTO, :CODIGOMONTAJE)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_PedidosProveedor'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL = 'DELETE '#10' FROM'#10' PEDIDOS'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_PedidosProveedor'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'INCIDENCIASACTIVAS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PEDIDOS'
+ SQL =
+ 'UPDATE PEDIDOS'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10' C' +
+ 'ODIGO = :CODIGO, '#10' FECHAALTA = :FECHAALTA, '#10' USUARIO = :US' +
+ 'UARIO, '#10' REFERENCIA = :REFERENCIA, '#10' FECHAPEDIDO = :FECHAP' +
+ 'EDIDO, '#10' FECHACONFIRMACION = :FECHACONFIRMACION, '#10' SITUACI' +
+ 'ON = :SITUACION, '#10' FECHAENTREGA = :FECHAENTREGA, '#10' OBSERVA' +
+ 'CIONES = :OBSERVACIONES, '#10' IMPORTETOTAL = :IMPORTETOTAL, '#10' ' +
+ ' DIRECCIONCOMPLETA = :DIRECCIONCOMPLETA, '#10' INCIDENCIAS = :INC' +
+ 'IDENCIAS,'#10' INCIDENCIASACTIVAS = :INCIDENCIASACTIVAS,'#10' CODI' +
+ 'GOALMACEN = :CODIGOALMACEN, '#10' CODIGOCONTACTO = :CODIGOCONTACT' +
+ 'O, '#10' CODIGOMONTAJE = :CODIGOMONTAJE'#10' WHERE'#10' (CODIGO = :OL' +
+ 'D_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_PedidosProveedor'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_DetallesPedidosProveedor_PedidosProveedor'
+ MasterDatasetName = 'PedidosProveedor'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'DetallesPedidosProveedor'
+ DetailFields = 'CODIGOPEDIDO'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert PedidosProveedor'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'PedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update PedidosProveedor'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'PedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete DetallesPedidosProveedor'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'DetallesPedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert DetallesPedidosProveedor'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'DetallesPedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update DetallesPedidosProveedor'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'DetallesPedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete PedidosProveedor'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'PedidosProveedor'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 48
+ Top = 24
+ end
+ object bpPedidosProveedor: TDABusinessProcessor
+ Schema = schPedidosProveedor
+ InsertCommandName = 'Insert_PedidosProveedor'
+ UpdateCommandName = 'Update_PedidosProveedor'
+ RefreshDatasetName = 'Refresh_PedidosProveedor'
+ ReferencedDataset = 'PedidosProveedor'
+ ProcessorOptions = [poAutoGenerateDelete, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 208
+ Top = 24
+ 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 = 39015.492018761570000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ '{ DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );}'
+ 'end;'
+ ''
+ 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'T'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto titulo'#39';'
+ ' end;'
+ ' end;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - PageFoote' +
+ 'r1.Height - 1;'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 128
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ 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 DADataCabecera: TDADataSource
+ DataTable = tbl_Pedido
+ Left = 120
+ Top = 176
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_DetallesPedido
+ Left = 200
+ Top = 176
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 128
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 200
+ Top = 128
+ end
+ object tbl_Pedido: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 120
+ Top = 240
+ end
+ object tbl_DetallesPedido: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 200
+ Top = 240
+ end
+ object IBDatabase1: TIBDatabase
+ DatabaseName = 'D:\Proyectos\FactuGES (Arribas)\Codigo\BD\BASEDATOS.FDB'
+ Params.Strings = (
+ 'user_name=sysdba'
+ 'password=masterkey'
+ 'lc_ctype=iSO8859_1')
+ LoginPrompt = False
+ DefaultTransaction = IBTransaction1
+ IdleTimer = 0
+ SQLDialect = 3
+ TraceFlags = []
+ Left = 32
+ Top = 208
+ end
+ object IBTransaction1: TIBTransaction
+ Active = False
+ AutoStopAction = saNone
+ Left = 32
+ Top = 256
+ end
+ object IBDataSet1: TIBDataSet
+ Database = IBDatabase1
+ Transaction = IBTransaction1
+ BufferChunks = 1000
+ CachedUpdates = False
+ SelectSQL.Strings = (
+ 'SELECT '
+ ' PED.CODIGOEMPRESA, PED.CODIGO, PED.REFERENCIA,'
+ ' PED.FECHAPEDIDO, PED.OBSERVACIONES, PED.IMPORTETOTAL,'
+ ' PED.DIRECCIONCOMPLETA,'
+ ' CON.NOMBRE, CON.CALLE, CON.CODIGOPOSTAL,'
+ ' CON.PROVINCIA, CON.POBLACION'
+ 'FROM PEDIDOS PED'
+ 'LEFT JOIN CONTACTOS CON ON (PED.CODIGOCONTACTO = CON.CODIGO)'
+ 'WHERE PED.CODIGO = 43')
+ Left = 120
+ Top = 296
+ end
+ object IBDataSet2: TIBDataSet
+ Database = IBDatabase1
+ Transaction = IBTransaction1
+ BufferChunks = 1000
+ CachedUpdates = False
+ SelectSQL.Strings = (
+ 'SELECT '
+
+ ' CODIGOPEDIDO, NUMCONCEPTO, DESCRIPCION, CANTIDAD, IMPORTEUNI' +
+ 'DAD, '
+ ' IMPORTETOTAL, POSICION, TIPO'
+ ' FROM'
+ ' DETALLESPEDIDOS'
+ ' WHERE CODIGOPEDIDO = 43')
+ Left = 200
+ Top = 296
+ end
+ object DataSource1: TDataSource
+ DataSet = IBDataSet1
+ Left = 120
+ Top = 352
+ end
+ object DataSource2: TDataSource
+ DataSet = IBDataSet2
+ Left = 200
+ Top = 352
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 72
+ end
+end
diff --git a/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas
new file mode 100644
index 0000000..67a8382
--- /dev/null
+++ b/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas
@@ -0,0 +1,126 @@
+unit srvPedidosProveedor_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDAInterfaces, uDADataTable, uDACDSDataTable,
+ frxClass, frxDBSet, DB, IBDatabase, IBCustomDataSet, uDABINAdapter;
+
+type
+ { TsrvPedidosProveedor }
+ TsrvPedidosProveedor = class(TDARemoteService, IsrvPedidosProveedor)
+ bpPedidosProveedor: TDABusinessProcessor;
+ DADataCabecera: TDADataSource;
+ DADataDetalles: TDADataSource;
+ frxDBCabecera: TfrxDBDataset;
+ frxDBDetalles: TfrxDBDataset;
+ tbl_Pedido: TDACDSDataTable;
+ tbl_DetallesPedido: TDACDSDataTable;
+ IBDatabase1: TIBDatabase;
+ IBTransaction1: TIBTransaction;
+ IBDataSet1: TIBDataSet;
+ IBDataSet2: TIBDataSet;
+ DataSource1: TDataSource;
+ DataSource2: TDataSource;
+ schPedidosProveedor: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ frxReport1: TfrxReport;
+ private
+ protected
+ function GetNextAutoinc: Integer;
+ function DarNuevaReferencia: String;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function PuedoEliminarPedido(const Codigo: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, dialogs;
+
+procedure Create_srvPedidosProveedor(out anInstance : IUnknown);
+begin
+ anInstance := TsrvPedidosProveedor.Create(NIL);
+end;
+
+{ srvPedidosProveedor }
+{ TsrvPedidosProveedor }
+
+function TsrvPedidosProveedor.DarNuevaReferencia: String;
+var
+ dsReferencia: IDADataset;
+begin
+ dsReferencia := schPedidosProveedor.NewDataset(Connection, 'DarReferenciaPedido');
+ dsReferencia.Active := True;
+ Result := dsReferencia.FieldByName('REFERENCIA').AsString;
+end;
+
+function TsrvPedidosProveedor.GenerateReport(
+ const Codigo: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schPedidosProveedor.NewDataset(Connection, 'InformeCabeceraPedido', ['CODIGO'], [Codigo]);
+ dsDetail := schPedidosProveedor.NewDataset(Connection, 'InformeDetallesPedido', ['CODIGOPEDIDO'], [Codigo], False);
+ dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Pedido, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_DetallesPedido, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfPedido.fr3', True);
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvPedidosProveedor.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_PEDIDOS');
+end;
+
+function TsrvPedidosProveedor.PuedoEliminarPedido(const Codigo: Integer): Boolean;
+var
+ dsData: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsData := schPedidosProveedor.NewCommand(Connection, 'Delete_PedidosProveedor', ['OLD_CODIGO'], [Codigo]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.ddp b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.dfm b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.dfm
new file mode 100644
index 0000000..89ff898
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.dfm
@@ -0,0 +1,48 @@
+object CustomView1: TCustomView1
+ Left = 0
+ Top = 0
+ Width = 347
+ Height = 291
+ TabOrder = 0
+ ReadOnly = False
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 347
+ Height = 291
+ Align = alClient
+ TabOrder = 0
+ AutoContentSizes = [acsWidth, acsHeight]
+ object DBGrid1: TDBGrid
+ Left = 24
+ Top = 30
+ Width = 320
+ Height = 116
+ BorderStyle = bsNone
+ TabOrder = 0
+ TitleFont.Charset = DEFAULT_CHARSET
+ TitleFont.Color = clWindowText
+ TitleFont.Height = -11
+ TitleFont.Name = 'MS Sans Serif'
+ TitleFont.Style = []
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ AutoAligns = [aaHorizontal]
+ AlignVert = avClient
+ Caption = 'Prueba'
+ object dxLayoutControl1Item1: TdxLayoutItem
+ AutoAligns = []
+ AlignHorz = ahClient
+ AlignVert = avClient
+ Caption = 'New Item'
+ ShowCaption = False
+ Control = DBGrid1
+ end
+ end
+ end
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.pas b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.pas
new file mode 100644
index 0000000..c62cf18
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Inicio/uViewInicio.pas
@@ -0,0 +1,36 @@
+unit uViewInicio;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uCustomView, dxLayoutControl, Grids, DBGrids, cxControls, uViewBase;
+
+type
+ TCustomView1 = class(TCustomView, IViewInicio)
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ DBGrid1: TDBGrid;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ private
+ function Control : TControl;
+ public
+ { Public declarations }
+ end;
+
+var
+ CustomView1: TCustomView1;
+
+implementation
+
+{$R *.dfm}
+
+{ TCustomView1 }
+
+function TCustomView1.Control: TControl;
+begin
+ Result := Self;
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos.bdsproj b/Modulos/Presupuestos/Cliente/Presupuestos.bdsproj
new file mode 100644
index 0000000..e694117
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Presupuestos.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
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\Output\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+ 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
+
+
+ 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/Modulos/Presupuestos/Cliente/Presupuestos.cfg b/Modulos/Presupuestos/Cliente/Presupuestos.cfg
new file mode 100644
index 0000000..2ddd81b
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos.dcp b/Modulos/Presupuestos/Cliente/Presupuestos.dcp
new file mode 100644
index 0000000..f0f0d45
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/Presupuestos.dcp differ
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos.dof b/Modulos/Presupuestos/Cliente/Presupuestos.dof
new file mode 100644
index 0000000..51474eb
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos.dof
@@ -0,0 +1,518 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+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
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Modulos/Presupuestos/Cliente/Presupuestos.dpk b/Modulos/Presupuestos/Cliente/Presupuestos.dpk
new file mode 100644
index 0000000..38b3ee3
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos.dpk
@@ -0,0 +1,61 @@
+package Presupuestos;
+
+{$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 OFF}
+
+requires
+ rtl,
+ DocumentosAsociados,
+ Contactos,
+ Montajes_Intf,
+ Almacenes,
+ vcl,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ GUISDK_D7,
+ dbrtl,
+ vcldb,
+ tb2k_d7,
+ tbx_d7,
+ JvCoreD7R,
+ vcljpg,
+ Jcl,
+ JclVcl,
+ JvSystemD7R,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R,
+ dsnap,
+ adortl,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ Presupuestos_Intf;
+
+contains
+ uPluginControllerPresupuestos in 'uPluginControllerPresupuestos.pas' {ModulePresupuestos: TModuleController},
+ uEditorPresupuesto in 'uEditorPresupuesto.pas' {fEditorPresupuesto: TCustomEditor},
+ uEditorPresupuestos in 'uEditorPresupuestos.pas' {fEditorPresupuestos: TCustomEditor};
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos.drc b/Modulos/Presupuestos/Cliente/Presupuestos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Presupuestos/Cliente/Presupuestos.res b/Modulos/Presupuestos/Cliente/Presupuestos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/Presupuestos.res differ
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos_Intf.bdsproj b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.bdsproj
new file mode 100644
index 0000000..8cda678
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Presupuestos_Intf.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
+ Presupuestos de cliente
+
+
+
+ .\
+ ..\..\..\Output\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Modulos/Presupuestos/Cliente/Presupuestos_Intf.cfg b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.cfg
new file mode 100644
index 0000000..34e1eaa
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dcp b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dcp
new file mode 100644
index 0000000..5f1e078
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dcp differ
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dof b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dof
new file mode 100644
index 0000000..cce71db
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dof
@@ -0,0 +1,201 @@
+[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=Presupuestos de cliente
+[Directories]
+OutputDir=
+UnitOutputDir=.\
+PackageDLLOutputDir=..\..\..\Output\Cliente
+PackageDCPOutputDir=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dpk b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dpk
new file mode 100644
index 0000000..3d3591b
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.dpk
@@ -0,0 +1,82 @@
+package Presupuestos_Intf;
+
+{$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}
+{$DESCRIPTION 'Presupuestos de cliente'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ BaseD7,
+ Contactos,
+ JvCtrlsD7R,
+ dbrtl,
+ dsnap,
+ adortl,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ Usuarios,
+ vcljpg,
+ cxExtEditorsVCLD7,
+ dclact,
+ dclstd,
+ designide,
+ DocumentosAsociados,
+ frx7,
+ fs7,
+ tee,
+ fqb70,
+ bdertl,
+ frxe7,
+ tb2k_d7,
+ tbx_d7,
+ JvCoreD7R,
+ Jcl,
+ JclVcl,
+ JvSystemD7R,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R;
+
+contains
+ uDataModulePresupuestos in 'uDataModulePresupuestos.pas' {dmPresupuestos: TDAClientDataModule},
+ uViewPresupuestos in 'uViewPresupuestos.pas' {frViewPresupuestos: TCustomView},
+ schPresupuestosClient_Intf in '..\Reglas\schPresupuestosClient_Intf.pas',
+ uViewPresupuesto in 'uViewPresupuesto.pas' {frViewPresupuesto: TFrame},
+ uViewSituacionPresupuesto in 'uViewSituacionPresupuesto.pas' {frViewSituacionPresupuesto: TFrame},
+ uViewDatosPresupuesto in 'uViewDatosPresupuesto.pas' {frViewDatosPresupuesto: TFrame},
+ uViewDetallesPresupuesto in 'uViewDetallesPresupuesto.pas' {frViewDetallesPresupuesto: TFrame},
+ uBizPresupuestosCliente in '..\Reglas\uBizPresupuestosCliente.pas',
+ uViewPresupuestoRelacionado in 'uViewPresupuestoRelacionado.pas' {frViewPresupuestoRelacionado: TFrame},
+ uEditorPreviewPresupuesto in 'uEditorPreviewPresupuesto.pas' {fEditorPreviewPresupuesto: TCustomEditor};
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/Presupuestos_Intf.drc b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Presupuestos/Cliente/Presupuestos_Intf.res b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/Presupuestos_Intf.res differ
diff --git a/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.ddp b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.dfm b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.dfm
new file mode 100644
index 0000000..e77399b
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.dfm
@@ -0,0 +1,705 @@
+object dmPresupuestos: TdmPresupuestos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 628
+ Top = 433
+ Height = 326
+ Width = 367
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvPresupuestos'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 32
+ Top = 16
+ end
+ object DABinAdapter: TDABINAdapter
+ Left = 32
+ Top = 80
+ end
+ object tbl_DetallesPresupuestos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Visible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOPRESUPUESTO=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ MasterSource = ds_Presupuestos
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'DetallesPresupuestos'
+ IndexDefs = <>
+ Left = 176
+ Top = 112
+ end
+ object ds_DetallesPresupuestos: TDADataSource
+ DataTable = tbl_DetallesPresupuestos
+ Left = 296
+ Top = 112
+ end
+ object tbl_Presupuestos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ Description = 'Cocina, ba'#241'o, etc'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vigencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'VIGENCIAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ Description = 'Pendiente, aceptado o rechazado'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'SITUACIONPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha decisi'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHADECISION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Plazo de entrega'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PLAZOENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALBARAN'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Presupuestos'
+ IndexDefs = <>
+ Left = 176
+ Top = 40
+ end
+ object ds_Presupuestos: TDADataSource
+ DataTable = tbl_Presupuestos
+ Left = 296
+ Top = 40
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.pas b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.pas
new file mode 100644
index 0000000..5514eff
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uDataModulePresupuestos.pas
@@ -0,0 +1,314 @@
+{
+===============================================================================
+ 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: 01-01-2006
+ Versión actual: 1.0.1
+ Fecha versión actual: 26-09-2006
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+ 26-09-2006 Se ha modificado la lógica al seleccionar un presupuesto para
+ generar un albarán, ahora un albarán se podrá generar a partir
+ de un presupuesto aunque no tenga asignado ningún montaje
+===============================================================================
+}
+
+
+
+unit uDataModulePresupuestos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizPresupuestosCliente, FactuGES_Intf,
+
+ frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode;
+
+type
+ TdmPresupuestos = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ DABinAdapter: TDABINAdapter;
+ tbl_DetallesPresupuestos: TDACDSDataTable;
+ ds_DetallesPresupuestos: TDADataSource;
+ tbl_Presupuestos: TDACDSDataTable;
+ ds_Presupuestos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ public
+ function PuedoEliminarPresupuesto (CodigoPresupuesto : Integer) : Boolean;
+ function GetReferencia (CodigoPresupuesto : Integer) : String;
+ function GetNextAutoinc : integer;
+ function GetPresupuestos: IBizPresupuestos;
+ function GetPresupuesto(CodigoPresupuesto : Integer) : IBizPresupuestos;
+ function GetPresupuestosSinAlbaran: IBizPresupuestos;
+ function GetPresupuestosSinMontaje: IBizPresupuestos;
+ function SetReferencia (APresupuesto: IBizPresupuestos; Referencia: Variant): Boolean;
+ procedure Preview(Const Codigo: Integer);
+ procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
+ procedure Print(Const Codigo: Integer);
+ function GetItemsSeleccionados(ASource : IBizPresupuestos): IBizPresupuestos;
+ end;
+
+var
+ dmPresupuestos: TdmPresupuestos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto, Dialogs, Variants,
+ uDataModuleContactos, uDataModuleBase, schPresupuestosClient_Intf,
+ uDAInterfaces, uEditorPreview, uEditorPreviewPresupuesto, uROTypes,
+ uDBSelectionList;
+
+function TdmPresupuestos.GetPresupuestos: IBizPresupuestos;
+var
+ dtPresupuestos: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtPresupuestos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Presupuestos, dtPresupuestos);
+ with dtPresupuestos do
+ begin
+ BusinessRulesID := BIZ_PRESUPUESTOCLIENTE;
+ FieldByName(fld_PresupuestosDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_PresupuestosIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesPresupuestos, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESPRESUPUESTOCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesPresupuestosCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesPresupuestosIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesPresupuestosTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+
+ FieldByName(fld_DetallesPresupuestosPUNTOS).BusinessRulesID := 'Client.Field.Puntos';
+ FieldByName(fld_DetallesPresupuestosIMPORTEPUNTOS).BusinessRulesID := 'Client.Field.ImportePuntos';
+
+ FieldByName(fld_DetallesPresupuestosVISIBLE).BusinessRulesID := 'Client.Field.Visible';
+ end;
+ (dtPresupuestos as IBizPresupuestos).Detalles := (dtDetalles as IBizDetallesPresupuesto);
+
+ Result := (dtPresupuestos as IBizPresupuestos);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmPresupuestos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+ Adapter := dmBase.Adapter;
+end;
+
+function TdmPresupuestos.GetPresupuestosSinAlbaran: IBizPresupuestos;
+var
+ dsPresupuestos : IBizPresupuestos;
+begin
+ dsPresupuestos := GetPresupuestos;
+ with dsPresupuestos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText(fld_PresupuestosCODIGOALBARAN + ' is null', False);
+ CloseBraket;
+ AddOperator(opAND);
+ OpenBraket;
+ AddText(fld_PresupuestosSITUACION + '=' + '''' + SITUACION_ACEPTADO + '''', False);
+ CloseBraket;
+
+// 26-09-2006
+//
+// AddOperator(opAND);
+// OpenBraket;
+// AddText('PRESUPUESTOS.' + fld_PresupuestosREFERENCIA + ' is not NULL', False);
+// CloseBraket;
+ end;
+ Result := dsPresupuestos;
+end;
+
+function TdmPresupuestos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvPresupuestos).GetNextAutoinc;
+end;
+
+procedure TdmPresupuestos.Preview(Const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreviewPresupuesto : TfEditorPreviewPresupuesto;
+begin
+ AEditorPreviewPresupuesto := TfEditorPreviewPresupuesto.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, 0);
+ AEditorPreviewPresupuesto.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreviewPresupuesto.Codigo := Codigo;
+ AEditorPreviewPresupuesto.ShowModal;
+ finally
+ AEditorPreviewPresupuesto.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPresupuestos.GetReferencia(CodigoPresupuesto: Integer): String;
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ APresupuesto := GetPresupuesto(CodigoPresupuesto);
+ APresupuesto.DataTable.Active := True;
+ Result := APresupuesto.REFERENCIA;
+end;
+
+function TdmPresupuestos.GetPresupuesto(
+ CodigoPresupuesto: Integer): IBizPresupuestos;
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ APresupuesto := GetPresupuestos;
+ with APresupuesto.DataTable.Where do
+ AddText(fld_PresupuestosCODIGO + ' = ' + IntToStr(CodigoPresupuesto));
+ Result := APresupuesto;
+end;
+
+function TdmPresupuestos.PuedoEliminarPresupuesto(
+ CodigoPresupuesto: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvPresupuestos).PuedoEliminarPresupuesto(CodigoPresupuesto);
+end;
+
+procedure TdmPresupuestos.Print(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, 0);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPresupuestos.GetPresupuestosSinMontaje: IBizPresupuestos;
+var
+ dsPresupuestos : IBizPresupuestos;
+begin
+ dsPresupuestos := GetPresupuestos;
+ with dsPresupuestos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText(fld_PresupuestosCODIGO + ' not in (select CODIGOPRESUPUESTO from MONTAJES where CODIGOEMPRESA = ' + IntToStr(dmBase.CodigoEmpresa) + ' and CODIGOPRESUPUESTO is not null)', False);
+ CloseBraket;
+ AddOperator(opAND);
+ OpenBraket;
+ AddText(fld_PresupuestosSITUACION + '=' + '''' + SITUACION_ACEPTADO + '''', False);
+ CloseBraket;
+
+
+ { AddOperator(opAND);
+ OpenBraket;
+ AddText(fld_PresupuestosREFERENCIA + ' is not NULL', False);
+ CloseBraket;}
+ end;
+ Result := dsPresupuestos;
+end;
+
+
+function TdmPresupuestos.GetItemsSeleccionados(
+ ASource: IBizPresupuestos): IBizPresupuestos;
+var
+ aObj : ISelectedRowList;
+ dtPresupuesto : IBizPresupuestos;
+ i : integer;
+begin
+ if Supports(ASource, ISelectedRowList, aObj) then
+ begin
+ if (aObj.SelectedRows.Count = 1) then
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
+ Result := GetPresupuesto(ASource.CODIGO);
+ Exit;
+ end
+ else
+ dtPresupuesto := GetPresupuestos;
+ end
+ else
+ raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
+
+ if dtPresupuesto.DataTable.Active then
+ dtPresupuesto.DataTable.Active := False;
+ with dtPresupuesto.DataTable.Where do
+ begin
+ Clear;
+ for i := 0 to aObj.SelectedRows.Count - 1 do
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
+ if i > 0 then
+ AddOperator(opAND);
+ AddText(fld_PresupuestosCODIGO + ' = ' + IntToStr(ASource.CODIGO));
+ end;
+ end;
+ Result := dtPresupuesto;
+end;
+
+function TdmPresupuestos.SetReferencia(APresupuesto: IBizPresupuestos; Referencia: Variant): Boolean;
+begin
+ Result:= False;
+ try
+ if not (APresupuesto.DataTable.State in dsEditModes) then
+ APresupuesto.DataTable.Edit;
+ APresupuesto.DataTable.FieldByName(fld_PresupuestosREFERENCIA).AsVariant := Referencia;
+ APresupuesto.Post;
+ Result:= True;
+ except
+ end;
+end;
+
+procedure TdmPresupuestos.Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+begin
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, TamLetra);
+ lReport.PreviewPages.LoadFromStream(AStream);
+ lReport.ShowPreparedReport;
+end;
+
+initialization
+ dmPresupuestos := TdmPresupuestos.Create(nil);
+
+finalization
+ FreeAndNil(dmPresupuestos);
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuesto.ddp b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.dfm
new file mode 100644
index 0000000..f1e2b60
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.dfm
@@ -0,0 +1,244 @@
+inherited fEditorPresupuesto: TfEditorPresupuesto
+ Left = 344
+ Top = 76
+ Width = 772
+ Height = 746
+ Caption = 'Nuevo presupuesto de cliente'
+ Constraints.MinWidth = 765
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 764
+ Caption = 'Nuevo presupuesto de cliente'
+ inherited Image1: TImage
+ Left = 737
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF
+ 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301
+ BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A
+ 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741
+ EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD
+ 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D
+ 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C
+ D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361
+ F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38
+ 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3
+ 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6
+ C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1
+ BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805
+ 00F0E629EF34B079A30000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 764
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 764
+ Height = 494
+ TabOrder = 1
+ inherited pagGeneral: TTabSheet
+ inline frViewPresupuesto1: TfrViewPresupuesto
+ Left = 0
+ Top = 0
+ Width = 756
+ Height = 466
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewDatosPresupuesto1: TfrViewDatosPresupuesto
+ inherited Bevel1: TBevel
+ Width = 200
+ end
+ inherited edtFechaPresupuesto: TcxDBDateEdit
+ Style.IsFontAssigned = True
+ Width = 240
+ end
+ inherited edtVigencia: TcxDBDateEdit
+ Width = 240
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Width = 240
+ end
+ inherited cbTipoPresupuesto: TcxDBComboBox
+ Style.IsFontAssigned = True
+ Width = 240
+ end
+ inherited eOpcion: TcxDBTextEdit
+ Width = 240
+ end
+ end
+ inherited frViewPlazoEntrega1: TfrViewPlazoEntrega
+ Constraints.MinWidth = 0
+ end
+ inherited frViewObservaciones1: TfrViewObservaciones
+ Constraints.MinWidth = 0
+ end
+ inherited frViewFormaPago1: TfrViewFormaPago
+ Constraints.MinWidth = 0
+ end
+ inherited frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto
+ inherited Bevel2: TBevel
+ Width = 276
+ end
+ end
+ inherited frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 313
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewClientePresupuesto1edtlNombrePropertiesChange
+ end
+ inherited ToolBar2: TToolBar
+ Width = 182
+ end
+ end
+ end
+ end
+ object pagContenido: TTabSheet
+ Caption = 'Contenido'
+ ImageIndex = 1
+ inline frViewDetallesPresupuesto1: TfrViewDetallesPresupuesto
+ Left = 0
+ Top = 0
+ Width = 756
+ Height = 466
+ 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 = 756
+ Height = 444
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ end
+ item
+ Format = '0 Conceptos'
+ Kind = skCount
+ Column = frViewDetallesPresupuesto1.cxGridViewDESCRIPCION
+ end>
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 756
+ inherited ToolButton4: TToolButton
+ Left = 323
+ end
+ inherited ToolButton5: TToolButton
+ Left = 331
+ end
+ inherited ToolButton6: TToolButton
+ Left = 436
+ end
+ end
+ end
+ end
+ object pagPlanos: TTabSheet
+ Caption = 'Planos'
+ ImageIndex = 2
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 692
+ Width = 764
+ Height = 20
+ end
+ inline frViewTotales1: TfrViewTotales [4]
+ Left = 0
+ Top = 570
+ Width = 764
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited TabControl1: TTabControl
+ Width = 764
+ inherited GroupBox1: TGroupBox
+ inherited lblBase: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit3: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit4: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit1: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit2: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ Top = 152
+ end
+ inherited SmallImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+ inherited dsDataTable: TDADataSource
+ Top = 152
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuesto.pas b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.pas
new file mode 100644
index 0000000..6c462c0
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPresupuesto.pas
@@ -0,0 +1,231 @@
+unit uEditorPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
+ TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uEditorDBItem, DB, uDADataTable, uBizPresupuestosCliente,
+ uViewPresupuesto, uCustomView, uViewBase, uViewTotales, uViewGrid,
+ uViewContenido, TBXDkPanels, ExtCtrls, uDAScriptingProvider,
+ uDACDSDataTable, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, uViewDetallesPresupuesto, pngimage, StdCtrls, Mask,
+ DBCtrls, uViewDetallesFamilias, uViewDocumentosAsociados, uBizDocumentosAsociados,
+ JvComponentBase;
+
+type
+ IEditorPresupuesto = interface(IEditorDBItem)
+ ['{E06BB9E1-A95D-4983-B08D-6E1719C48D91}']
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ end;
+
+ TfEditorPresupuesto = class(TfEditorDBItem, IEditorPresupuesto)
+ pagContenido: TTabSheet;
+ pagPlanos: TTabSheet;
+ frViewDetallesPresupuesto1: TfrViewDetallesPresupuesto;
+ frViewTotales1: TfrViewTotales;
+ frViewPresupuesto1: TfrViewPresupuesto;
+ procedure FormShow(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure frViewClientePresupuesto1edtlNombrePropertiesChange(
+ Sender: TObject);
+ procedure actGuardarExecute(Sender: TObject);
+ private
+ FPresupuesto : IBizPresupuestos;
+ FViewPresupuesto : IViewPresupuesto;
+ FViewDocumentosPresupuesto : IViewDocumentosAsociados;
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+
+ function GetViewPresupuesto: IViewPresupuesto;
+ procedure SetViewPresupuesto(const Value: IViewPresupuesto);
+ property ViewPresupuesto: IViewPresupuesto read GetViewPresupuesto write
+ SetViewPresupuesto;
+
+ //DOCUMENTOS ASOCIADOS
+ function GetViewDocumentosPresupuesto: IViewDocumentosAsociados;
+ procedure SetViewDocumentosPresupuesto(const Value: IViewDocumentosAsociados);
+ property ViewDocumentosPresupuesto: IViewDocumentosAsociados read GetViewDocumentosPresupuesto write
+ SetViewDocumentosPresupuesto;
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uEditorUtils, DateUtils, schPresupuestosClient_Intf, uDataModuleMontajes;
+
+function ShowEditorPresupuesto (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuesto;
+begin
+ AEditor := TfEditorPresupuesto.Create(Application);
+ try
+ AEditor.Presupuesto := (ABizObject as IBizPresupuestos);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPresupuesto }
+
+function TfEditorPresupuesto.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+function TfEditorPresupuesto.GetViewPresupuesto: IViewPresupuesto;
+begin
+ Result := FViewPresupuesto;
+end;
+
+procedure TfEditorPresupuesto.SetPresupuesto(const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+
+ if Assigned(FPresupuesto) then
+ begin
+ dsDataTable.DataTable := FPresupuesto.DataTable;
+ frViewTotales1.DADataSource.DataTable := FPresupuesto.DataTable;
+ frViewDetallesPresupuesto1.DADataSource.DataTable := FPresupuesto.Detalles.DataTable;
+
+ if Assigned(FViewPresupuesto) then
+ FViewPresupuesto.Presupuesto := Presupuesto;
+
+ //DOCUMENTOS ASOCIADOS
+ if Assigned(FViewDocumentosPresupuesto) then
+ begin
+ FViewDocumentosPresupuesto.GestorDocumentos := (Presupuesto as IBizDocumentosAsociados).GestorDocumentos;
+ FViewDocumentosPresupuesto.GestorDocumentos.ModoInsert := (Presupuesto.DataTable.State = dsInsert);
+ end;
+ end;
+end;
+
+procedure TfEditorPresupuesto.SetViewPresupuesto(
+ const Value: IViewPresupuesto);
+begin
+ FViewPresupuesto := Value;
+
+ if Assigned(FViewPresupuesto) and Assigned(Presupuesto) then
+ FViewPresupuesto.Presupuesto := Presupuesto;
+end;
+
+procedure TfEditorPresupuesto.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewPresupuesto) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Presupuesto) then
+ raise Exception.Create('No hay ningún presupuesto asignado');
+
+ //DOCUMENTOS ASOCIADOS
+ //En el caso de no existir el gestor de documentos no habilitamos la vista
+ if Assigned(Presupuesto.GestorDocumentos) then
+ begin
+ ViewDocumentosPresupuesto := CreateView(TfrViewDocumentosAsociados) as IViewDocumentosAsociados;
+ ViewDocumentosPresupuesto.ShowEmbedded(pagPlanos);
+ end
+ else
+ pagPlanos.TabVisible := False;
+
+ Presupuesto.DataTable.Active := True;
+ pgPaginas.ActivePage := pagGeneral;
+end;
+
+constructor TfEditorPresupuesto.Create(AOwner: TComponent);
+begin
+ inherited;
+ pgPaginas.ActivePageIndex := 0;
+ ViewPresupuesto := frViewPresupuesto1;
+
+ //DOCUMENTOS ASOCIADOS
+ FViewDocumentosPresupuesto := Nil;
+end;
+
+destructor TfEditorPresupuesto.Destroy;
+begin
+ FViewPresupuesto := NIL;
+ FPresupuesto := NIL;
+
+ //DOCUMENTOS ASOCIADOS
+ FViewDocumentosPresupuesto := NIL;
+
+ inherited;
+end;
+
+procedure TfEditorPresupuesto.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorPresupuesto.frViewClientePresupuesto1edtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewPresupuesto1.frViewClientePresupuesto1.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo presupuesto de cliente'
+ else
+ JvNavPanelHeader.Caption := 'Presupuesto de ' +
+ frViewPresupuesto1.frViewClientePresupuesto1.edtlNombre.Text +
+ ' (' + FPresupuesto.SITUACION + ')';
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+function TfEditorPresupuesto.GetViewDocumentosPresupuesto: IViewDocumentosAsociados;
+begin
+ Result := FViewDocumentosPresupuesto;
+end;
+
+procedure TfEditorPresupuesto.SetViewDocumentosPresupuesto(const Value: IViewDocumentosAsociados);
+begin
+ FViewDocumentosPresupuesto := Value;
+
+ if Assigned(FViewDocumentosPresupuesto) and Assigned(Presupuesto) then
+ FViewDocumentosPresupuesto.GestorDocumentos := (Presupuesto as IBizDocumentosASociados).GestorDocumentos;
+end;
+
+procedure TfEditorPresupuesto.actGuardarExecute(Sender: TObject);
+var
+ ADiasValidez : Integer;
+begin
+ if (FPresupuesto.SITUACION = SITUACION_PENDIENTE) and
+ (DateOf(FPresupuesto.FECHAPRESUPUESTO) < DateOf(Now)) then
+ begin
+ if (MessageDlg('La fecha del presupuesto es antigua. ¿Desea actualizarla a día de hoy?' + #10#13 +
+ '(La nueva fecha de validez del presupuesto se calculará automáticamente)',
+ mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
+ begin
+ ADiasValidez := DaysBetween(FPresupuesto.VIGENCIAPRESUPUESTO, FPresupuesto.FECHAPRESUPUESTO);
+ FPresupuesto.Edit;
+ FPresupuesto.FECHAPRESUPUESTO := DateOf(Now);
+ FPresupuesto.VIGENCIAPRESUPUESTO := FPresupuesto.FECHAPRESUPUESTO + ADiasValidez;
+ FPresupuesto.Post;
+ end;
+ end
+ else if (FPresupuesto.SITUACION = SITUACION_ACEPTADO)
+ and (FPresupuesto.REFERENCIA = '') then
+ if (Application.MessageBox('¿Desea crear un montaje asociado a este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ dmMontajes.NuevoMontaje(Nil, FPresupuesto);
+
+ inherited;
+end;
+
+initialization
+ RegisterEditor(IBizPresupuestos, ShowEditorPresupuesto, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuestos.ddp b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuestos.dfm b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.dfm
new file mode 100644
index 0000000..ba8df09
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.dfm
@@ -0,0 +1,1491 @@
+inherited fEditorPresupuestos: TfEditorPresupuestos
+ Left = 221
+ Top = 235
+ Width = 781
+ Caption = 'Lista de presupuestos'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 773
+ Caption = 'Lista de presupuestos'
+ inherited Image1: TImage
+ Left = 746
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF
+ 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301
+ BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A
+ 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741
+ EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD
+ 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D
+ 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C
+ D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361
+ F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38
+ 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3
+ 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6
+ C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1
+ BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805
+ 00F0E629EF34B079A30000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 773
+ inherited tbxMain: TTBXToolbar
+ object TBXSeparatorItem16: TTBXSeparatorItem
+ end
+ object TBXItem36: TTBXItem
+ Action = actRechazado
+ end
+ end
+ inherited tbxFiltro: TTBXToolbar
+ Left = 471
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Width = 773
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 773
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 773
+ inherited bSeleccionar: TButton
+ Left = 616
+ end
+ inherited bCancelar: TButton
+ Left = 695
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ OnUpdate = frViewBarraSeleccionactSeleccionarUpdate
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 24
+ OnExecute = actNuevoExecute
+ end
+ object actAceptado: TAction
+ Category = 'Situaciones'
+ Caption = 'Aceptado'
+ ImageIndex = 23
+ OnExecute = actAceptadoExecute
+ end
+ object actRechazado: TAction
+ Category = 'Situaciones'
+ Caption = 'Rechazado'
+ ImageIndex = 22
+ OnExecute = actRechazadoExecute
+ end
+ object actPendiente: TAction
+ Category = 'Situaciones'
+ Caption = 'Pendiente'
+ OnExecute = actPendienteExecute
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ 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
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage22'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage23'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage24'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000001CC4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3
+ 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E
+ C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07
+ FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131
+ 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800
+ 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389
+ 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631
+ 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8
+ 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359
+ BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2
+ 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814
+ 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5
+ DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A
+ 0C8701980500F0E629EF34B079A30000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+ inherited GridPopupMenu: TPopupMenu
+ object N3: TMenuItem
+ Caption = '-'
+ end
+ object Aceptado1: TMenuItem
+ Action = actAceptado
+ end
+ object Rechazado1: TMenuItem
+ Action = actRechazado
+ end
+ object Pendiente1: TMenuItem
+ Action = actPendiente
+ end
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uEditorPresupuestos.pas b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.pas
new file mode 100644
index 0000000..d533776
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPresupuestos.pas
@@ -0,0 +1,259 @@
+unit uEditorPresupuestos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ uCustomEditor, uEditorGrid, uBizPresupuestosCliente, ImgList,
+ PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
+ TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
+ uViewPresupuestos, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
+ uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
+ uViewBase, uViewBarraSeleccion, JvComponentBase;
+
+type
+ IEditorPresupuestos = interface(IEditorGrid)
+ ['{7E6689A4-BEE7-4B36-80D8-411FA1B344F7}']
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+ TfEditorPresupuestos = class(TfEditorGrid, IEditorPresupuestos)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ actAceptado: TAction;
+ actRechazado: TAction;
+ actPendiente: TAction;
+ N3: TMenuItem;
+ Aceptado1: TMenuItem;
+ Rechazado1: TMenuItem;
+ Pendiente1: TMenuItem;
+ TBXItem36: TTBXItem;
+ TBXSeparatorItem16: TTBXSeparatorItem;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarUpdate(Sender: TObject);
+ procedure actAceptadoExecute(Sender: TObject);
+ procedure actRechazadoExecute(Sender: TObject);
+ procedure actPendienteExecute(Sender: TObject);
+ private
+ FPresupuestos: IBizPresupuestos;
+ protected
+ function GetPresupuestos: IBizPresupuestos;
+ function GetSelectionBarVisible: Boolean;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ procedure CambiarEstado(const NuevoEstado: String);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ property SelectionBarVisible: Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+var
+ fEditorPresupuestos : TfEditorPresupuestos;
+
+implementation
+
+uses cxControls, uDataModulePresupuestos, uEditorUtils, uEditorBase,
+ DateUtils, uDataModuleMontajes;
+
+{$R *.DFM}
+
+function ShowEditorPresupuestos (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuestos;
+begin
+ AEditor := TfEditorPresupuestos.Create(Application);
+ try
+ AEditor.Presupuestos := (ABizObject as IBizPresupuestos);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorPresupuestos (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuestos;
+begin
+ AEditor := TfEditorPresupuestos.Create(Application);
+ try
+ AEditor.Presupuestos := (ABizObject as IBizPresupuestos);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPresupuestos }
+
+{
+***************************** TfEditorPresupuestos *****************************
+}
+constructor TfEditorPresupuestos.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewPresupuestos) as IViewPresupuestos;
+end;
+
+destructor TfEditorPresupuestos.Destroy;
+begin
+ FPresupuestos := NIL;
+ inherited;
+end;
+
+procedure TfEditorPresupuestos.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorPresupuestos.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Presupuestos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPresupuestos.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Presupuestos.Insert;
+ Presupuestos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ if (Presupuestos.DataTable.RecordCount > 0) then
+ begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+ end;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionbCancelarClick(Sender:
+ TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+function TfEditorPresupuestos.GetPresupuestos: IBizPresupuestos;
+begin
+ Result := FPresupuestos;
+end;
+
+function TfEditorPresupuestos.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
+begin
+ FPresupuestos := Value;
+ dsDataTable.DataTable := FPresupuestos.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
+end;
+
+procedure TfEditorPresupuestos.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorPresupuestos.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Presupuestos) then
+ (ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
+end;
+
+procedure TfEditorPresupuestos.actDuplicarExecute(Sender: TObject);
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ inherited;
+ APresupuesto := dmPresupuestos.GetPresupuesto(Presupuestos.CODIGO);
+ Presupuestos.Insert;
+ Presupuestos.CopyFrom(APresupuesto);
+ Presupuestos.DataTable.ApplyUpdates;
+ ViewGrid.RefreshGrid;
+ ViewGrid.GotoFirst;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionactSeleccionarUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := (Presupuestos.DataTable.RecordCount > 0);
+end;
+
+procedure TfEditorPresupuestos.actAceptadoExecute(Sender: TObject);
+begin
+ CambiarEstado(SITUACION_ACEPTADO);
+end;
+
+procedure TfEditorPresupuestos.actRechazadoExecute(Sender: TObject);
+begin
+ CambiarEstado(SITUACION_RECHAZADO);
+end;
+
+procedure TfEditorPresupuestos.actPendienteExecute(Sender: TObject);
+begin
+ CambiarEstado(SITUACION_PENDIENTE);
+end;
+
+procedure TfEditorPresupuestos.CambiarEstado(const NuevoEstado: String);
+begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ShowHourglassCursor;
+ Presupuestos.DataTable.DisableControls;
+ try
+ if not (Presupuestos.DataTable.State in dsEditModes) then
+ begin
+ Presupuestos.DataTable.Edit;
+ Presupuestos.SITUACION := NuevoEstado;
+ Presupuestos.FECHADECISION := Today;
+ Presupuestos.DataTable.Post;
+ Presupuestos.DataTable.ApplyUpdates;
+
+ if (NuevoEstado = SITUACION_ACEPTADO)
+ and (Presupuestos.REFERENCIA = '') then
+ if (Application.MessageBox('¿Desea crear un montaje asociado a este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ dmMontajes.NuevoMontaje(Nil, Presupuestos);
+ end;
+ finally
+ Presupuestos.DataTable.EnableControls;
+ HideHourglassCursor;
+ end;
+end;
+
+initialization
+ RegisterEditor(IBizPresupuestos, ShowEditorPresupuestos, etItems);
+ RegisterEditor(IBizPresupuestos, ShowSelectEditorPresupuestos, etSelectItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.ddp b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.dfm
new file mode 100644
index 0000000..dc09f54
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.dfm
@@ -0,0 +1,440 @@
+inherited fEditorPreviewPresupuesto: TfEditorPreviewPresupuesto
+ OnCreate = CustomEditorCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited TBXDock: TTBXDock
+ inherited TBXToolbar1: TTBXToolbar
+ object TBXItem38: TTBXItem
+ Action = actAumentarTamLetra
+ Images = PreviewSmallImageList
+ end
+ object TBXItem43: TTBXItem
+ Action = actDisminuirTamLetra
+ Images = PreviewSmallImageList
+ end
+ end
+ end
+ inherited PreviewActionList: TActionList
+ object actAumentarTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 11
+ OnExecute = actAumentarTamLetraExecute
+ end
+ object actDisminuirTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 12
+ OnExecute = actDisminuirTamLetraExecute
+ end
+ end
+ inherited 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000010A4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001ABF88321E3FEFBEF40CE8DFF8CB80C00299C0FC40EA09007E22540
+ 3C151A130B9E7FCF4878033440E7210E0370819F868CFF41368334BF0426AD47
+ 1F19187EFD252129BFD060FC8FAE19EC622C5E900352CF8001F607C8D607B21F
+ 01D9EF61F2F35918FF8334A7FF27D10BB0509F018C0C103B03C805D1009D9F97
+ 36069839440000000049454E44AE426082}
+ Name = 'PngImage11'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000000EC4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001AB0834E4012103400AE703B10328E4817809104F85C6C402A00189
+ 0463011BF869C8F8FFFD7706863740FC1298B41E7D6460F8F59784A4FC4283F1
+ 3FBA66B02BB078410E483D033AF50F90AD0F643F02B2DF633394242FE00200A6
+ 308833CD7332EF0000000049454E44AE426082}
+ Name = 'PngImage12'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited frxReport1: TfrxReport
+ Datasets = <>
+ Variables = <>
+ Style = <>
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.pas b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.pas
new file mode 100644
index 0000000..fce2f92
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uEditorPreviewPresupuesto.pas
@@ -0,0 +1,72 @@
+unit uEditorPreviewPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
+ JvNavigationPane;
+
+const
+ CTE_TamLetraIni = 10;
+ CTE_TamLetraMin = 5;
+ CTE_TamLetraMax = 30;
+ CTE_Aumento = 2;
+
+type
+ TfEditorPreviewPresupuesto = class(TfEditorPreview)
+ TBXItem38: TTBXItem;
+ actAumentarTamLetra: TAction;
+ TBXItem43: TTBXItem;
+ actDisminuirTamLetra: TAction;
+ procedure CustomEditorCreate(Sender: TObject);
+
+ procedure actAumentarTamLetraExecute(Sender: TObject);
+ procedure actDisminuirTamLetraExecute(Sender: TObject);
+ private
+ FCodigo: Integer;
+ TamLetra: Integer;
+ public
+ property Codigo: Integer read FCodigo write FCodigo;
+ end;
+
+var
+ fEditorPreviewPresupuesto: TfEditorPreviewPresupuesto;
+
+implementation
+{$R *.dfm}
+
+uses uDataModulePresupuestos;
+
+procedure TfEditorPreviewPresupuesto.actAumentarTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra >= CTE_TamLetraMax) then
+ Exit;
+
+ TamLetra := TamLetra + CTE_Aumento;
+ dmPresupuestos.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+procedure TfEditorPreviewPresupuesto.CustomEditorCreate(Sender: TObject);
+begin
+ inherited;
+ TamLetra := CTE_TamLetraIni;
+end;
+
+procedure TfEditorPreviewPresupuesto.actDisminuirTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra <= CTE_TamLetraMin) then
+ Exit;
+
+ TamLetra := TamLetra - CTE_Aumento;
+ dmPresupuestos.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uObservaciones.dfm b/Modulos/Presupuestos/Cliente/uObservaciones.dfm
new file mode 100644
index 0000000..a744ce9
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uObservaciones.dfm
@@ -0,0 +1,47 @@
+inherited frViewObservaciones: TfrViewObservaciones
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 240)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 85
+ Height = 13
+ Caption = 'Observaciones'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 96
+ Top = 8
+ Width = 192
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memObservaciones: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'OBSERVACIONES'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 193
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uObservaciones.pas b/Modulos/Presupuestos/Cliente/uObservaciones.pas
new file mode 100644
index 0000000..671c51f
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uObservaciones.pas
@@ -0,0 +1,26 @@
+unit uObservaciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewObservaciones = class(TfrViewBase)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ memObservaciones: TcxDBMemo;
+ DADataSource: TDADataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.dfm b/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.dfm
new file mode 100644
index 0000000..926c517
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.dfm
@@ -0,0 +1,215 @@
+object ModulePresupuestos: TModulePresupuestos
+ OldCreateOrder = True
+ DefaultAction = actPresupuestos
+ Description = 'Ventas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Presupuestos'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 652
+ Top = 457
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001CC4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3
+ 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E
+ C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07
+ FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131
+ 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800
+ 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389
+ 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631
+ 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8
+ 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359
+ BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2
+ 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814
+ 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5
+ DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A
+ 0C8701980500F0E629EF34B079A30000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actPresupuestos: TAction
+ Category = 'Ventas'
+ Caption = 'Presupuestos de cliente'
+ ImageIndex = 1
+ OnExecute = actPresupuestosExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Tag = 400
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 0
+ object N1: TMenuItem
+ Tag = 1999
+ Caption = '-'
+ end
+ object Presupuestosdecliente1: TMenuItem
+ Tag = 2000
+ Action = actPresupuestos
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002974944415478DA
+ BDD6CB6F12411800F00FEBCD180FC6C47830C6831A138BD8576C552A25A520D5
+ D896566B630F5E4D4CFC038C890713131313D3A451A9D08AA53CDB826B914240
+ 0A2DA520D2FAA889070F4D2F6AA2F1B8BB9FBBCB23D402B3B84D3F962C33ECCC
+ 6FBE9985591922C27686AC1874075784025F27BCD9EC778532F7128EDC67A1AD
+ 7020D4ECA829095CD1D5C9CA82AEC03276B59DF8EFD1B35C5F2C374886618161
+ 5968365C87B4C75A1E74CE66B05B5D0BAD81D39B3A0BB5CD9785FEBD9E6A09C3
+ 13AB1F4CCE317160B5C183CAA3EDF0950E82855A805F837F60C43E4B061D6FDE
+ 634FBBBC6C86A5EA83AA18A882CD105E5D2AD4FD1CF80D6657900CDA7D693468
+ 4E8ACE8C5F278641E1CCAF1D4DB3853ACB74880CDA7CEFB057A3289989D8E033
+ 5DEFFD01566F440438C3811D59B0788AAA8DB59EEF60A3E6C8E0C4EB14F6694F
+ 0960A5BBB252F06DC78E53E0F4C5C8A0954A22F743950C9A8E7961D2BF4006C7
+ A925BCAAAB2F8095D6323FA0E26BF26D8C473CE009C4C9E0CB5709ECBFD02039
+ C3E1C35330134E8800BD1CA8970E0E1D72833F92248316EF225ED3374A9ED2C7
+ 075D1088A6C8E00B4F1C073A9B2467F8E8800342F1B408703A8EFD9D8DC25F95
+ 14F0E17E1B44121932383A35CFAD6113A8432D92A6F4C1BE0988A596C5817DDA
+ 06D044CE4ACAF0FEDE7188A73F9041F3640C0D1DF5A08B2A2581F7F65820B9F2
+ 890C9ADC51BCACAE834B8BE74575CE0FCA4C1B0BE5C19D3704F0EE6E0EFAB82A
+ 0EBCA852E4B61C66C3E302C3661F1FE85CF9E6B7AE4DEB9C2FDFD9350A99CF5F
+ C8E073D71CEA5B15448CA1116EAD75979CF6AAC0116704754A3911E3CFB7D70D
+ 65A75A346874BC45ED393911DB30A0A21DBF384481CFEC61D49CA915F6B2AD08
+ 22F8D416C2A1B1E12DC1F25111DC8EF80B6B3D9AE763000D2B0000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.pas b/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.pas
new file mode 100644
index 0000000..3e00f50
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uPluginControllerPresupuestos.pas
@@ -0,0 +1,69 @@
+unit uPluginControllerPresupuestos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCPresupuestos = interface(IInterface)
+ ['{E148CA5A-63A0-4BE8-B634-6E7A92A90F25}']
+ end;
+
+ TModulePresupuestos = class(TModuleController, IMCPresupuestos)
+ actPresupuestos: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ Presupuestosdecliente1: TMenuItem;
+ N1: TMenuItem;
+ procedure actPresupuestosExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uEditorPresupuestos,
+ uDataModulePresupuestos, uBizPresupuestosCliente;
+
+function GetModule : TModuleController;
+begin
+ Result := TModulePresupuestos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TModulePresupuestos.actPresupuestosExecute(Sender: TObject);
+var
+ aObj: IEditorPresupuestos;
+ APresupuestos : IBizPresupuestos;
+begin
+ APresupuestos := dmPresupuestos.GetPresupuestos;
+ aObj := TfEditorPresupuestos.Create(Application);
+ try
+ with aObj do
+ begin
+ Presupuestos := APresupuestos;
+ ShowEmbedded;
+ end;
+ finally
+ APresupuestos := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModulePresupuestos);
+
+finalization
+ UnRegisterModuleClass(TModulePresupuestos);
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewContenido.dfm b/Modulos/Presupuestos/Cliente/uViewContenido.dfm
new file mode 100644
index 0000000..9dd11ea
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewContenido.dfm
@@ -0,0 +1,288 @@
+inherited frViewContenido: TfrViewContenido
+ Width = 634
+ Height = 349
+ object cxGrid: TcxGrid
+ Left = 0
+ Top = 24
+ Width = 634
+ Height = 325
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ OnCustomDrawCell = cxGridViewCustomDrawCell
+ DataController.DataSource = DADataSource
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ DataController.Summary.SummaryGroups = <>
+ Filtering.Visible = fvNever
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.Appending = True
+ OptionsSelection.InvertSelect = False
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.Footer = True
+ OptionsView.GridLineColor = cl3DLight
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.Indicator = True
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ Width = 49
+ end
+ object cxGridViewCODIGOPRESUPUESTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPRESUPUESTO'
+ Visible = False
+ Width = 157
+ end
+ object cxGridViewNUMCONCEPTO: TcxGridDBColumn
+ DataBinding.FieldName = 'NUMCONCEPTO'
+ Visible = False
+ Width = 119
+ end
+ object cxGridViewPOSICION: TcxGridDBColumn
+ DataBinding.FieldName = 'POSICION'
+ Visible = False
+ SortIndex = 0
+ SortOrder = soAscending
+ Width = 93
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ DataBinding.FieldName = 'TIPO'
+ PropertiesClassName = 'TcxComboBoxProperties'
+ Properties.DropDownListStyle = lsFixedList
+ Properties.ImmediatePost = True
+ Properties.Items.Strings = (
+ 'A'
+ 'C'
+ 'S')
+ Width = 120
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Width = 101
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ PropertiesClassName = 'TcxSpinEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Width = 77
+ end
+ object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEUNIDAD'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.UseThousandSeparator = True
+ Width = 124
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseThousandSeparator = True
+ Options.Editing = False
+ Options.Focusing = False
+ Options.Moving = False
+ Styles.Content = cxStyle_IMPORTETOTAL
+ Width = 107
+ end
+ end
+ object cxGridLevel: TcxGridLevel
+ GridView = cxGridView
+ end
+ end
+ object ToolBar1: TToolBar
+ Left = 0
+ Top = 0
+ Width = 634
+ Height = 24
+ AutoSize = True
+ ButtonWidth = 85
+ Caption = 'ToolBar1'
+ EdgeBorders = [ebBottom]
+ Flat = True
+ Images = ContenidoImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 1
+ Transparent = True
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ AutoSize = True
+ ImageIndex = 0
+ end
+ object ToolButton2: TToolButton
+ Left = 62
+ Top = 0
+ Action = actEliminar
+ AutoSize = True
+ ImageIndex = 1
+ end
+ object ToolButton4: TToolButton
+ Left = 129
+ Top = 0
+ Action = RichEditBold1
+ AutoSize = True
+ end
+ object ToolButton5: TToolButton
+ Left = 180
+ Top = 0
+ Action = RichEditItalic1
+ end
+ object ToolButton6: TToolButton
+ Left = 265
+ Top = 0
+ Action = RichEditStrikeOut1
+ end
+ object ToolButton3: TToolButton
+ Left = 350
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 2
+ Style = tbsSeparator
+ end
+ object ToolButton7: TToolButton
+ Left = 358
+ Top = 0
+ Action = RichEditUnderline1
+ end
+ object ToolButton8: TToolButton
+ Left = 443
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton8'
+ ImageIndex = 5
+ Style = tbsSeparator
+ end
+ object ToolButton9: TToolButton
+ Left = 451
+ Top = 0
+ Caption = 'ToolButton9'
+ ImageIndex = 5
+ OnClick = ToolButton9Click
+ end
+ end
+ object ActionListContenido: TActionList
+ Images = ContenidoImageList
+ Left = 8
+ Top = 104
+ object actAnadir: TAction
+ Caption = 'A'#241'adir'
+ OnExecute = actAnadirExecute
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar'
+ OnExecute = actEliminarExecute
+ end
+ object RichEditBold1: TRichEditBold
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Bold'
+ Hint = 'Bold'
+ ImageIndex = 2
+ ShortCut = 16450
+ end
+ object RichEditItalic1: TRichEditItalic
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Italic'
+ Hint = 'Italic'
+ ImageIndex = 3
+ ShortCut = 16457
+ end
+ object RichEditUnderline1: TRichEditUnderline
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Underline'
+ Hint = 'Underline'
+ ImageIndex = 4
+ ShortCut = 16469
+ end
+ object RichEditStrikeOut1: TRichEditStrikeOut
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Strikeout'
+ Hint = 'Strikeout'
+ ImageIndex = 5
+ end
+ end
+ object DADataSource: TDADataSource
+ DataTable = dmPresupuestos.tbl_DetallesPresupuestos
+ Left = 8
+ Top = 136
+ end
+ object ContenidoImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000D04944415478DA
+ 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
+ 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
+ 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
+ FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
+ 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
+ F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
+ 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000006E4944415478DA
+ 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
+ C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
+ CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
+ 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 264
+ Top = 40
+ Bitmap = {}
+ end
+ object cxStyleRepository1: TcxStyleRepository
+ Left = 264
+ Top = 80
+ object cxStyle_IMPORTETOTAL: TcxStyle
+ AssignedValues = [svColor]
+ Color = 16053492
+ end
+ object cxStyle_SUBTOTAL: TcxStyle
+ AssignedValues = [svFont, svTextColor]
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ TextColor = clHighlight
+ end
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.ddp b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.dfm
new file mode 100644
index 0000000..1ce6674
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.dfm
@@ -0,0 +1,141 @@
+inherited frViewDatosPresupuesto: TfrViewDatosPresupuesto
+ Width = 355
+ Height = 163
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 355
+ DesignSize = (
+ 355
+ 163)
+ object Bevel1: TBevel
+ Left = 144
+ Top = 8
+ Width = 200
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 128
+ Height = 13
+ Caption = 'Datos del presupuesto'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 82
+ Width = 64
+ Height = 13
+ Caption = 'Tipo presup.:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 106
+ Width = 73
+ Height = 13
+ Caption = 'Fecha presup.:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 130
+ Width = 62
+ Height = 13
+ Caption = 'V'#225'lido hasta:'
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 30
+ Width = 43
+ Height = 13
+ Caption = 'Montaje:'
+ end
+ object Label6: TLabel
+ Left = 17
+ Top = 55
+ Width = 37
+ Height = 13
+ Caption = 'Opci'#243'n:'
+ end
+ object edtFechaPresupuesto: TcxDBDateEdit
+ Left = 100
+ Top = 102
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAPRESUPUESTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 240
+ end
+ object edtVigencia: TcxDBDateEdit
+ Left = 100
+ Top = 126
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'VIGENCIAPRESUPUESTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 240
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 27
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Properties.OnEditValueChanged = eReferenciaPropertiesEditValueChanged
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 240
+ end
+ object cbTipoPresupuesto: TcxDBComboBox
+ Left = 100
+ Top = 77
+ DataBinding.DataField = 'TIPO'
+ DataBinding.DataSource = DADataSource
+ Properties.DropDownListStyle = lsFixedList
+ Properties.ImmediatePost = True
+ Properties.OnInitPopup = cbTipoPresupuestoPropertiesInitPopup
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Width = 240
+ end
+ object eOpcion: TcxDBTextEdit
+ Left = 100
+ Top = 52
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'OPCION'
+ DataBinding.DataSource = DADataSource
+ Properties.OnEditValueChanged = eReferenciaPropertiesEditValueChanged
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 4
+ Width = 240
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.pas b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.pas
new file mode 100644
index 0000000..0b8f7c5
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewDatosPresupuesto.pas
@@ -0,0 +1,68 @@
+unit uViewDatosPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxGraphics;
+
+type
+ TfrViewDatosPresupuesto = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFechaPresupuesto: TcxDBDateEdit;
+ Label3: TLabel;
+ edtVigencia: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ Label4: TLabel;
+ cbTipoPresupuesto: TcxDBComboBox;
+ eOpcion: TcxDBTextEdit;
+ Label6: TLabel;
+ procedure cbTipoPresupuestoPropertiesInitPopup(Sender: TObject);
+ procedure eReferenciaPropertiesEditValueChanged(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosPresupuesto: TfrViewDatosPresupuesto;
+
+implementation
+
+uses uBizPresupuestosCliente;
+
+{$R *.dfm}
+
+procedure TfrViewDatosPresupuesto.cbTipoPresupuestoPropertiesInitPopup(
+ Sender: TObject);
+begin
+ inherited;
+ with cbTipoPresupuesto.Properties.Items do
+ if Count = 0 then
+ begin
+ BeginUpdate;
+ try
+ Clear;
+ Add(TIPO_COCINA);
+ Add(TIPO_BANO);
+ finally
+ EndUpdate;
+ end;
+ end;
+end;
+
+procedure TfrViewDatosPresupuesto.eReferenciaPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ cbTipoPresupuesto.Enabled := not (Length(eReferencia.Text) > 0);
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.ddp b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.dfm
new file mode 100644
index 0000000..3b2fa0e
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.dfm
@@ -0,0 +1,74 @@
+inherited frViewDetallesPresupuesto: TfrViewDetallesPresupuesto
+ Width = 443
+ inherited cxGrid: TcxGrid
+ Width = 443
+ inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ end
+ item
+ Format = '0 Conceptos'
+ Kind = skCount
+ Column = cxGridViewDESCRIPCION
+ end
+ item
+ Format = '0 Unidades'
+ Kind = skSum
+ Column = cxGridViewCANTIDAD
+ end>
+ OptionsSelection.InvertSelect = False
+ OptionsView.Footer = True
+ inherited cxGridViewTIPO: TcxGridDBColumn
+ Width = 40
+ end
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ Width = 165
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn [3]
+ DataBinding.FieldName = 'PUNTOS'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewIMPORTEPUNTOSStylesGetContentStyle
+ Width = 33
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn [4]
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewIMPORTEPUNTOSStylesGetContentStyle
+ Width = 55
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Properties.Alignment.Horz = taRightJustify
+ Width = 29
+ end
+ inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ Width = 43
+ end
+ inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ Width = 43
+ end
+ inherited cxGridViewVISIBLE: TcxGridDBColumn
+ Styles.OnGetContentStyle = cxGridViewVISIBLEStylesGetContentStyle
+ Width = 21
+ end
+ end
+ end
+ inherited ToolBar1: TToolBar
+ Width = 443
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStyle_PUNTOS: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = 16053492
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ TextColor = clWindowText
+ end
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.pas b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.pas
new file mode 100644
index 0000000..c8fd2df
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewDetallesPresupuesto.pas
@@ -0,0 +1,98 @@
+unit uViewDetallesPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxStyles, cxCustomData, cxGraphics,
+ cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, ImgList, PngImageList, uDADataTable, ActnList,
+ ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
+ cxCheckBox, TB2Item, TBX, TB2Dock, TB2Toolbar, JvExComCtrls, JvToolBar,
+ uViewDetallesFamilias, cxMaskEdit, cxCurrencyEdit;
+
+type
+ TfrViewDetallesPresupuesto = class(TfrViewDetallesFamilias)
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxStyle_PUNTOS: TcxStyle;
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewIMPORTEPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+implementation
+
+uses uBizImportesDetalleBase, uViewContenido;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesPresupuesto.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesPresupuesto.cxGridViewIMPORTEPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesPresupuesto.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuesto.ddp b/Modulos/Presupuestos/Cliente/uViewPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uViewPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uViewPresupuesto.dfm
new file mode 100644
index 0000000..388f89d
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuesto.dfm
@@ -0,0 +1,239 @@
+inherited frViewPresupuesto: TfrViewPresupuesto
+ Width = 762
+ Height = 452
+ inline frViewDatosPresupuesto1: TfrViewDatosPresupuesto
+ Left = 0
+ Top = 0
+ Width = 355
+ Height = 148
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 355
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ DesignSize = (
+ 355
+ 148)
+ inherited Bevel1: TBevel
+ Width = 217
+ end
+ inherited edtFechaPresupuesto: TcxDBDateEdit
+ ParentFont = False
+ Style.Color = clInfoBk
+ Style.Font.Color = clBlack
+ Style.TextColor = clBlack
+ Style.IsFontAssigned = True
+ StyleFocused.Color = clInfoBk
+ Width = 247
+ end
+ inherited edtVigencia: TcxDBDateEdit
+ Width = 247
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Enabled = False
+ Properties.ReadOnly = True
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 248
+ end
+ inherited cbTipoPresupuesto: TcxDBComboBox
+ ParentFont = False
+ Style.Color = clInfoBk
+ Style.IsFontAssigned = True
+ StyleHot.Color = clInfoBk
+ Width = 248
+ end
+ inherited eOpcion: TcxDBTextEdit
+ Width = 248
+ end
+ inherited DADataSource: TDADataSource
+ Left = 296
+ Top = 16
+ end
+ end
+ inline frViewPlazoEntrega1: TfrViewPlazoEntrega
+ Left = 358
+ Top = 281
+ Width = 391
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 267
+ end
+ inherited memPlazoEntrega: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 360
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 0
+ Top = 358
+ Width = 751
+ Height = 86
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 643
+ end
+ inherited memObservaciones: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 720
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 0
+ Top = 281
+ Width = 361
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 253
+ end
+ inherited memFormaPago: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 330
+ end
+ end
+ inline frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto
+ Left = 0
+ Top = 168
+ Width = 360
+ Height = 97
+ Constraints.MinHeight = 85
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited Label6: TLabel
+ Width = 134
+ Caption = 'Estado del presupuesto'
+ end
+ inherited Bevel2: TBevel
+ Left = 152
+ Width = 196
+ end
+ inherited cbiSituacion: TcxDBImageComboBox
+ Style.Color = clInfoBk
+ StyleFocused.Color = clInfoBk
+ StyleHot.Color = clInfoBk
+ end
+ inherited ImageList: TPngImageList
+ Left = 64
+ Top = 40
+ end
+ end
+ inline frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto
+ Left = 360
+ Top = 0
+ Width = 391
+ Height = 219
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 5
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 251
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 4
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 3
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ ButtonWidth = 178
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 40
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ end
+ inherited actAnadirContacto: TAction
+ Caption = 'Dar de alta un cliente'
+ end
+ inherited actVerContacto: TAction
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuesto.pas b/Modulos/Presupuestos/Cliente/uViewPresupuesto.pas
new file mode 100644
index 0000000..c7a17fb
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuesto.pas
@@ -0,0 +1,76 @@
+unit uViewPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizPresupuestosCliente, cxControls, cxContainer,
+ cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, DB,
+ uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, cxGraphics, uCustomView,
+ uViewDatosPresupuesto, uViewSituacionPresupuesto,
+ uViewFormaPago, uViewPlazoEntrega, uViewObservaciones,
+ uViewDatosYSeleccionContacto, AppEvnts;
+
+type
+ IViewPresupuesto = interface(IViewBase)
+ ['{7FDBC909-C3F2-4778-9FE3-1D813FEA7FC1}']
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+ TfrViewPresupuesto = class(TfrViewBase, IViewPresupuesto)
+ DADataSource: TDADataSource;
+ frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto;
+ frViewDatosPresupuesto1: TfrViewDatosPresupuesto;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewPlazoEntrega1: TfrViewPlazoEntrega;
+ frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto;
+ private
+ FPresupuesto: IBizPresupuestos;
+ procedure OnContactoChanged(Sender : TObject);
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+implementation
+
+uses uBizContacto, uExceptions;
+
+{$R *.dfm}
+
+function TfrViewPresupuesto.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuesto.OnContactoChanged(Sender : TObject);
+begin
+ FPresupuesto.Cliente := (frViewClientePresupuesto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewPresupuesto.SetPresupuesto(const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ if Assigned(FPresupuesto) then
+ DADataSource.DataTable := FPresupuesto.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewSituacionPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewPlazoEntrega1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewClientePresupuesto1.Contacto := Presupuesto.Cliente;
+ frViewClientePresupuesto1.OnContactoChanged := OnContactoChanged;
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.ddp b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.dfm b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.dfm
new file mode 100644
index 0000000..0bf0202
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.dfm
@@ -0,0 +1,158 @@
+inherited frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 141
+ Height = 13
+ Caption = 'Presupuesto relacionado'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 152
+ Top = 8
+ Width = 197
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 131
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirPresupuesto
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 135
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 143
+ Top = 0
+ Action = actVerPresupuesto
+ end
+ end
+ object edtlReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirPresupuesto: TAction
+ Caption = 'Elegir un presupuesto'
+ ImageIndex = 1
+ end
+ object actVerPresupuesto: TAction
+ Caption = 'Ver el presupuesto...'
+ ImageIndex = 1
+ OnExecute = actVerPresupuestoExecute
+ OnUpdate = actVerPresupuestoUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+ object DADataSource: TDADataSource
+ Left = 320
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.pas b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.pas
new file mode 100644
index 0000000..8be171b
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuestoRelacionado.pas
@@ -0,0 +1,111 @@
+unit uViewPresupuestoRelacionado;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizPresupuestosCliente;
+
+type
+ IViewPresupuestoRelacionado = interface(IViewBase)
+ ['{42655AAC-2669-452D-8E56-C9AF657EF2BF}']
+
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+ TfrViewPresupuestoRelacionado = class(TfrViewBase, IViewPresupuestoRelacionado)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirPresupuesto: TAction;
+ actVerPresupuesto: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ DADataSource: TDADataSource;
+ edtlReferencia: TcxDBTextEdit;
+ procedure actVerPresupuestoExecute(Sender: TObject);
+ procedure actVerPresupuestoUpdate(Sender: TObject);
+ private
+ FPresupuesto : IBizPresupuestos;
+ FOnPresupuestoChanged : TNotifyEvent;
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+var
+ frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado;
+
+implementation
+
+uses
+ uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewPresupuestoAlbaran }
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoExecute(
+ Sender: TObject);
+begin
+ FPresupuesto.Show;
+end;
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Assigned(FPresupuesto);
+end;
+
+function TfrViewPresupuestoRelacionado.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetPresupuesto(
+ const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ DADataSource.DataTable := FPresupuesto.DataTable;
+
+ if not FPresupuesto.DataTable.Active then
+ FPresupuesto.DataTable.Active := True;
+
+ if Assigned(FOnPresupuestoChanged) then
+ FOnPresupuestoChanged(Self);
+end;
+
+
+function TfrViewPresupuestoRelacionado.GetOnPresupuestoChanged: TNotifyEvent;
+begin
+ Result := FOnPresupuestoChanged;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetOnPresupuestoChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnPresupuestoChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestos.ddp b/Modulos/Presupuestos/Cliente/uViewPresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Cliente/uViewPresupuestos.ddp differ
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestos.dfm b/Modulos/Presupuestos/Cliente/uViewPresupuestos.dfm
new file mode 100644
index 0000000..014ccf6
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuestos.dfm
@@ -0,0 +1,228 @@
+inherited frViewPresupuestos: TfrViewPresupuestos
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 Presupuestos'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Options.Sorting = False
+ Width = 20
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Aceptado'
+ ImageIndex = 0
+ Value = 'Aceptado'
+ end
+ item
+ Description = 'Rechazado'
+ ImageIndex = 1
+ Value = 'Rechazado'
+ end>
+ Properties.ShowDescriptions = False
+ BestFitMaxWidth = 25
+ Width = 20
+ IsCaptionAssigned = True
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAPRESUPUESTO'
+ SortIndex = 0
+ SortOrder = soDescending
+ Width = 63
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ Caption = 'Ref. montaje'
+ DataBinding.FieldName = 'REFERENCIA'
+ Width = 44
+ end
+ object cxGridViewALBARAN: TcxGridDBColumn
+ Caption = 'Albar'#225'n'
+ DataBinding.FieldName = 'ALBARAN'
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ Caption = 'Tipo'
+ DataBinding.FieldName = 'TIPO'
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Cliente'
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 315
+ end
+ object cxGridViewOPCION: TcxGridDBColumn
+ Caption = 'Opci'#243'n'
+ DataBinding.FieldName = 'OPCION'
+ end
+ object cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn
+ Caption = 'Vigencia'
+ DataBinding.FieldName = 'VIGENCIAPRESUPUESTO'
+ Width = 74
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ FooterAlignmentHorz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 86
+ end
+ end
+ object cxGridDBTableView1: TcxGridDBTableView [1]
+ NavigatorButtons.ConfirmDelete = False
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ OptionsView.NewItemRowInfoText = 'Click here to add a new row'
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ object cxGridLevel1: TcxGridLevel
+ Caption = 'Pendientes'
+ end
+ object cxGridLevel2: TcxGridLevel
+ Caption = 'Aceptados'
+ end
+ object cxGridLevel3: TcxGridLevel
+ Caption = 'Rechazados'
+ end
+ end
+ inherited frViewFiltroBase1: TfrViewFiltroBase
+ inherited TBXDock1: TTBXDock
+ inherited TBXDockablePanel1: TTBXDockablePanel
+ inherited dxLayoutControl1: TdxLayoutControl
+ inherited txtFiltroTodo: TcxTextEdit
+ Width = 273
+ end
+ inherited edtFechaIniFiltro: TcxDateEdit
+ Width = 121
+ end
+ inherited edtFechaFinFiltro: TcxDateEdit
+ Width = 121
+ end
+ end
+ end
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ Left = 240
+ object cxStyleRechazado: TcxStyle
+ AssignedValues = [svTextColor]
+ TextColor = clGrayText
+ end
+ object cxStyleAceptado: TcxStyle
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewPresupuestos.pas b/Modulos/Presupuestos/Cliente/uViewPresupuestos.pas
new file mode 100644
index 0000000..c44bbb3
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewPresupuestos.pas
@@ -0,0 +1,174 @@
+unit uViewPresupuestos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles,
+ cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
+ cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
+ cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid, uBizPresupuestosCliente, StdCtrls, ExtCtrls,
+ cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
+ dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList,
+ PngImageList, cxTextEdit, Grids, DBGrids, cxCurrencyEdit, uViewFiltroBase;
+
+type
+ IViewPresupuestos = interface(IViewGrid)
+ ['{8C0A5647-E0E7-40CD-80EC-88DD46383368}']
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+ TfrViewPresupuestos = class(TfrViewGrid, IViewPresupuestos)
+ cxGridDBTableView1: TcxGridDBTableView;
+ cxGridLevel1: TcxGridLevel;
+ cxGridLevel2: TcxGridLevel;
+ cxGridLevel3: TcxGridLevel;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn;
+ PngImageList: TPngImageList;
+ cxStyleRechazado: TcxStyle;
+ cxStyleAceptado: TcxStyle;
+ cxGridViewTIPO: TcxGridDBColumn;
+ cxGridViewALBARAN: TcxGridDBColumn;
+ cxGridViewOPCION: TcxGridDBColumn;
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+ procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView;
+ ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var
+ ADone: Boolean);
+ procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
+ ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
+ AStyle: TcxStyle);
+ private
+ //Filtros relativos a la vista
+ procedure AnadirFiltroSituaciones;
+ procedure AnadirFiltroFechas;
+
+ protected
+ FPresupuestos: IBizPresupuestos;
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ procedure AnadirOtrosFiltros; override;
+
+ public
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+var
+ frViewPresupuestos: TfrViewPresupuestos;
+
+implementation
+
+uses uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+procedure TfrViewPresupuestos.AnadirFiltroFechas;
+var
+ Columna: TcxGridDBColumn;
+ Fecha1, Fecha2: Variant;
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
+ Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
+
+ if not VarIsNull(Fecha1)
+ and not VarIsNull(Fecha2) then
+ begin
+ cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
+ FFiltro := AddFilterGrid(fboAnd);
+
+ Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAPRESUPUESTO');
+ FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
+ end;
+end;
+
+procedure TfrViewPresupuestos.AnadirFiltroSituaciones;
+var
+ FFiltro : TcxFilterCriteriaItemList;
+begin
+ FFiltro := AddFilterGrid(fboAnd);
+
+ case cxGrid.ActiveLevel.Index of
+ 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
+ 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ACEPTADO, SITUACION_ACEPTADO);
+ 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECHAZADO, SITUACION_RECHAZADO);
+ end;
+end;
+
+procedure TfrViewPresupuestos.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
+begin
+ inherited;
+ RefrescarFiltro;
+end;
+
+procedure TfrViewPresupuestos.cxGridViewCODIGOCustomDrawCell(Sender:
+ TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
+ TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R: TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewPresupuestos.cxGridViewStylesGetContentStyle(Sender:
+ TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
+ TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol: Integer;
+ ASituacion: string;
+begin
+ inherited;
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index;
+ ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if ASituacion = SITUACION_ACEPTADO then
+ AStyle := cxStyleAceptado
+ else if ASituacion = SITUACION_RECHAZADO then
+ AStyle := cxStyleRechazado;
+ end;
+end;
+
+function TfrViewPresupuestos.GetPresupuestos: IBizPresupuestos;
+begin
+ Result := FPresupuestos;
+end;
+
+procedure TfrViewPresupuestos.AnadirOtrosFiltros;
+begin
+ inherited;
+
+ AnadirFiltroSituaciones;
+ AnadirFiltroFechas;
+
+ //Finalmente activamos el filtro si tenemos algo
+ if cxGridView.DataController.Filter.IsEmpty
+ then cxGridView.DataController.Filter.Active := False
+ else cxGridView.DataController.Filter.Active := True;
+ cxGrid.ActiveLevel.GridView := cxGridView;
+end;
+
+procedure TfrViewPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
+begin
+ FPresupuestos := Value;
+ if Assigned(FPresupuestos) then
+ DADataSource.DataTable := FPresupuestos.DataTable;
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.dfm b/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.dfm
new file mode 100644
index 0000000..3572120
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.dfm
@@ -0,0 +1,156 @@
+inherited frViewSituacionPresupuesto: TfrViewSituacionPresupuesto
+ Width = 360
+ Height = 100
+ Constraints.MinHeight = 85
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 100)
+ object Label6: TLabel
+ Left = 8
+ Top = 9
+ Width = 54
+ Height = 13
+ Caption = 'Situaci'#243'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel2: TBevel
+ Left = 72
+ Top = 9
+ Width = 276
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 33
+ Width = 47
+ Height = 13
+ Caption = 'Situaci'#243'n:'
+ end
+ object Label7: TLabel
+ Left = 16
+ Top = 51
+ Width = 47
+ Height = 26
+ Caption = 'Fecha de decisi'#243'n:'
+ WordWrap = True
+ end
+ object edtFechaDecision: TcxDBDateEdit
+ Left = 100
+ Top = 53
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHADECISION'
+ DataBinding.DataSource = DADataSource
+ Properties.ImmediatePost = True
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object cbiSituacion: TcxDBImageComboBox
+ Left = 100
+ Top = 29
+ DataBinding.DataField = 'SITUACION'
+ DataBinding.DataSource = DADataSource
+ Properties.Images = ImageList
+ Properties.ImmediatePost = True
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Aceptado'
+ ImageIndex = 0
+ Value = 'Aceptado'
+ end
+ item
+ Description = 'Rechazado'
+ ImageIndex = 1
+ Value = 'Rechazado'
+ end>
+ Properties.OnCloseUp = cbiSituacionPropertiesCloseUp
+ Properties.OnEditValueChanged = cbiSituacionPropertiesEditValueChanged
+ Style.LookAndFeel.Kind = lfUltraFlat
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfUltraFlat
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfUltraFlat
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfUltraFlat
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 296
+ Top = 24
+ end
+ object ImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 104
+ Top = 65528
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.pas b/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.pas
new file mode 100644
index 0000000..c1c2dd5
--- /dev/null
+++ b/Modulos/Presupuestos/Cliente/uViewSituacionPresupuesto.pas
@@ -0,0 +1,96 @@
+unit uViewSituacionPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, cxGraphics, DB, uDADataTable, cxDropDownEdit,
+ cxCalendar, cxDBEdit, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, ExtCtrls, StdCtrls, ImgList, PngImageList, cxImageComboBox;
+
+type
+ TfrViewSituacionPresupuesto = class(TfrViewBase)
+ Bevel2: TBevel;
+ cbiSituacion: TcxDBImageComboBox;
+ DADataSource: TDADataSource;
+ edtFechaDecision: TcxDBDateEdit;
+ ImageList: TPngImageList;
+ Label4: TLabel;
+ Label6: TLabel;
+ Label7: TLabel;
+ procedure cbiSituacionPropertiesCloseUp(Sender: TObject);
+ procedure cbiSituacionPropertiesEditValueChanged(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+
+implementation
+
+uses
+ uBizPresupuestosCliente, cxDateUtils;
+
+{$R *.dfm}
+
+{ TfrViewSituacionPresupuesto }
+
+{
+************************* TfrViewSituacionPresupuesto **************************
+}
+constructor TfrViewSituacionPresupuesto.Create(AOwner: TComponent);
+begin
+ inherited;
+ with cbiSituacion.Properties.Items do
+ begin
+ Clear;
+ with Add do
+ begin
+ Description := SITUACION_PENDIENTE;
+ ImageIndex := -1;
+ Value := SITUACION_PENDIENTE;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_ACEPTADO;
+ ImageIndex := 0;
+ Value := SITUACION_ACEPTADO;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_RECHAZADO;
+ ImageIndex := 1;
+ Value := SITUACION_RECHAZADO;
+ end;
+ end;
+end;
+
+procedure TfrViewSituacionPresupuesto.cbiSituacionPropertiesCloseUp(
+ Sender: TObject);
+begin
+{ if Assigned(edtFechaDecision.DataBinding.Field) then
+ begin
+ if (cbiSituacion.ItemIndex > 0) then
+ begin
+ edtFechaDecision.Enabled := True;
+ if VarIsNull(edtFechaDecision.EditValue) then
+ begin
+ DADataSource.DataTable.Edit;
+ edtFechaDecision.DataBinding.Field.Value := Date;
+ end;
+ end
+ else begin
+ DADataSource.DataTable.Edit;
+ edtFechaDecision.DataBinding.Field.Value := Null;
+ edtFechaDecision.Enabled := False;
+ end
+ end;}
+end;
+
+procedure TfrViewSituacionPresupuesto.cbiSituacionPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ edtFechaDecision.Enabled := (cbiSituacion.ItemIndex > 0);
+end;
+
+end.
diff --git a/Modulos/Presupuestos/Reglas/schPresupuestosClient_Intf.pas b/Modulos/Presupuestos/Reglas/schPresupuestosClient_Intf.pas
new file mode 100644
index 0000000..01db959
--- /dev/null
+++ b/Modulos/Presupuestos/Reglas/schPresupuestosClient_Intf.pas
@@ -0,0 +1,1678 @@
+unit schPresupuestosClient_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_DetallesPresupuestos = '{A6A79145-2CF4-404F-AF3C-216C6C1C6220}';
+ RID_Presupuestos = '{5B155DB3-9C72-4E74-AF1E-2F5F54B8C085}';
+ RID_Presupuestos_RefreshDataset = '{A4DBCB7A-51D7-4CC6-AE4C-4F3E92E621C3}';
+ RID_InformeCabeceraPresupuesto = '{264277A9-3681-40C0-90A1-E3164B449B02}';
+ RID_InformeDetallesPresupuesto = '{31CD6A31-A8D3-4D6E-9AA5-FD7D0B85DDBA}';
+
+ { Data table names }
+ nme_DetallesPresupuestos = 'DetallesPresupuestos';
+ nme_Presupuestos = 'Presupuestos';
+ nme_Presupuestos_RefreshDataset = 'Presupuestos_RefreshDataset';
+ nme_InformeCabeceraPresupuesto = 'InformeCabeceraPresupuesto';
+ nme_InformeDetallesPresupuesto = 'InformeDetallesPresupuesto';
+
+ { DetallesPresupuestos fields }
+ fld_DetallesPresupuestosCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_DetallesPresupuestosNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_DetallesPresupuestosDESCRIPCION = 'DESCRIPCION';
+ fld_DetallesPresupuestosCANTIDAD = 'CANTIDAD';
+ fld_DetallesPresupuestosIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_DetallesPresupuestosIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_DetallesPresupuestosTIPO = 'TIPO';
+ fld_DetallesPresupuestosPOSICION = 'POSICION';
+ fld_DetallesPresupuestosVISIBLE = 'VISIBLE';
+ fld_DetallesPresupuestosPUNTOS = 'PUNTOS';
+ fld_DetallesPresupuestosIMPORTEPUNTOS = 'IMPORTEPUNTOS';
+
+ { DetallesPresupuestos field indexes }
+ idx_DetallesPresupuestosCODIGOPRESUPUESTO = 0;
+ idx_DetallesPresupuestosNUMCONCEPTO = 1;
+ idx_DetallesPresupuestosDESCRIPCION = 2;
+ idx_DetallesPresupuestosCANTIDAD = 3;
+ idx_DetallesPresupuestosIMPORTEUNIDAD = 4;
+ idx_DetallesPresupuestosIMPORTETOTAL = 5;
+ idx_DetallesPresupuestosTIPO = 6;
+ idx_DetallesPresupuestosPOSICION = 7;
+ idx_DetallesPresupuestosVISIBLE = 8;
+ idx_DetallesPresupuestosPUNTOS = 9;
+ idx_DetallesPresupuestosIMPORTEPUNTOS = 10;
+
+ { Presupuestos fields }
+ fld_PresupuestosCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_PresupuestosCODIGO = 'CODIGO';
+ fld_PresupuestosFECHAALTA = 'FECHAALTA';
+ fld_PresupuestosUSUARIO = 'USUARIO';
+ fld_PresupuestosCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_PresupuestosNOMBRE = 'NOMBRE';
+ fld_PresupuestosREFERENCIA = 'REFERENCIA';
+ fld_PresupuestosTIPO = 'TIPO';
+ fld_PresupuestosFECHAPRESUPUESTO = 'FECHAPRESUPUESTO';
+ fld_PresupuestosVIGENCIAPRESUPUESTO = 'VIGENCIAPRESUPUESTO';
+ fld_PresupuestosSITUACION = 'SITUACION';
+ fld_PresupuestosFECHADECISION = 'FECHADECISION';
+ fld_PresupuestosBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_PresupuestosDESCUENTO = 'DESCUENTO';
+ fld_PresupuestosIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_PresupuestosIVA = 'IVA';
+ fld_PresupuestosIMPORTEIVA = 'IMPORTEIVA';
+ fld_PresupuestosIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_PresupuestosOBSERVACIONES = 'OBSERVACIONES';
+ fld_PresupuestosPLAZOENTREGA = 'PLAZOENTREGA';
+ fld_PresupuestosFORMAPAGO = 'FORMAPAGO';
+ fld_PresupuestosCODIGOALBARAN = 'CODIGOALBARAN';
+ fld_PresupuestosALBARAN = 'ALBARAN';
+ fld_PresupuestosOPCION = 'OPCION';
+
+ { Presupuestos field indexes }
+ idx_PresupuestosCODIGOEMPRESA = 0;
+ idx_PresupuestosCODIGO = 1;
+ idx_PresupuestosFECHAALTA = 2;
+ idx_PresupuestosUSUARIO = 3;
+ idx_PresupuestosCODIGOCONTACTO = 4;
+ idx_PresupuestosNOMBRE = 5;
+ idx_PresupuestosREFERENCIA = 6;
+ idx_PresupuestosTIPO = 7;
+ idx_PresupuestosFECHAPRESUPUESTO = 8;
+ idx_PresupuestosVIGENCIAPRESUPUESTO = 9;
+ idx_PresupuestosSITUACION = 10;
+ idx_PresupuestosFECHADECISION = 11;
+ idx_PresupuestosBASEIMPONIBLE = 12;
+ idx_PresupuestosDESCUENTO = 13;
+ idx_PresupuestosIMPORTEDESCUENTO = 14;
+ idx_PresupuestosIVA = 15;
+ idx_PresupuestosIMPORTEIVA = 16;
+ idx_PresupuestosIMPORTETOTAL = 17;
+ idx_PresupuestosOBSERVACIONES = 18;
+ idx_PresupuestosPLAZOENTREGA = 19;
+ idx_PresupuestosFORMAPAGO = 20;
+ idx_PresupuestosCODIGOALBARAN = 21;
+ idx_PresupuestosALBARAN = 22;
+ idx_PresupuestosOPCION = 23;
+
+ { Presupuestos_RefreshDataset fields }
+ fld_Presupuestos_RefreshDatasetCODIGO = 'CODIGO';
+ fld_Presupuestos_RefreshDatasetNOMBRE = 'NOMBRE';
+ fld_Presupuestos_RefreshDatasetREFERENCIA = 'REFERENCIA';
+ fld_Presupuestos_RefreshDatasetCODIGOALBARAN = 'CODIGOALBARAN';
+ fld_Presupuestos_RefreshDatasetALBARAN = 'ALBARAN';
+
+ { Presupuestos_RefreshDataset field indexes }
+ idx_Presupuestos_RefreshDatasetCODIGO = 0;
+ idx_Presupuestos_RefreshDatasetNOMBRE = 1;
+ idx_Presupuestos_RefreshDatasetREFERENCIA = 2;
+ idx_Presupuestos_RefreshDatasetCODIGOALBARAN = 3;
+ idx_Presupuestos_RefreshDatasetALBARAN = 4;
+
+ { InformeCabeceraPresupuesto fields }
+ fld_InformeCabeceraPresupuestoCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraPresupuestoCODIGO = 'CODIGO';
+ fld_InformeCabeceraPresupuestoFECHAALTA = 'FECHAALTA';
+ fld_InformeCabeceraPresupuestoUSUARIO = 'USUARIO';
+ fld_InformeCabeceraPresupuestoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraPresupuestoREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraPresupuestoTIPO = 'TIPO';
+ fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO = 'FECHAPRESUPUESTO';
+ fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO = 'VIGENCIAPRESUPUESTO';
+ fld_InformeCabeceraPresupuestoSITUACION = 'SITUACION';
+ fld_InformeCabeceraPresupuestoFECHADECISION = 'FECHADECISION';
+ fld_InformeCabeceraPresupuestoBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_InformeCabeceraPresupuestoDESCUENTO = 'DESCUENTO';
+ fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_InformeCabeceraPresupuestoIVA = 'IVA';
+ fld_InformeCabeceraPresupuestoIMPORTEIVA = 'IMPORTEIVA';
+ fld_InformeCabeceraPresupuestoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeCabeceraPresupuestoOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraPresupuestoPLAZOENTREGA = 'PLAZOENTREGA';
+ fld_InformeCabeceraPresupuestoFORMAPAGO = 'FORMAPAGO';
+ fld_InformeCabeceraPresupuestoNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraPresupuestoNIF_CIF = 'NIF_CIF';
+ fld_InformeCabeceraPresupuestoNOMBRE1 = 'NOMBRE1';
+ fld_InformeCabeceraPresupuestoCALLE = 'CALLE';
+ fld_InformeCabeceraPresupuestoCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraPresupuestoPOBLACION = 'POBLACION';
+ fld_InformeCabeceraPresupuestoTELEFONO1 = 'TELEFONO1';
+ fld_InformeCabeceraPresupuestoTELEFONO2 = 'TELEFONO2';
+ fld_InformeCabeceraPresupuestoMOVIL = 'MOVIL';
+ fld_InformeCabeceraPresupuestoOPCION = 'OPCION';
+ fld_InformeCabeceraPresupuestoCODIGOALBARAN = 'CODIGOALBARAN';
+ fld_InformeCabeceraPresupuestoALBARAN = 'ALBARAN';
+
+ { InformeCabeceraPresupuesto field indexes }
+ idx_InformeCabeceraPresupuestoCODIGOEMPRESA = 0;
+ idx_InformeCabeceraPresupuestoCODIGO = 1;
+ idx_InformeCabeceraPresupuestoFECHAALTA = 2;
+ idx_InformeCabeceraPresupuestoUSUARIO = 3;
+ idx_InformeCabeceraPresupuestoCODIGOCONTACTO = 4;
+ idx_InformeCabeceraPresupuestoREFERENCIA = 5;
+ idx_InformeCabeceraPresupuestoTIPO = 6;
+ idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO = 7;
+ idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO = 8;
+ idx_InformeCabeceraPresupuestoSITUACION = 9;
+ idx_InformeCabeceraPresupuestoFECHADECISION = 10;
+ idx_InformeCabeceraPresupuestoBASEIMPONIBLE = 11;
+ idx_InformeCabeceraPresupuestoDESCUENTO = 12;
+ idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO = 13;
+ idx_InformeCabeceraPresupuestoIVA = 14;
+ idx_InformeCabeceraPresupuestoIMPORTEIVA = 15;
+ idx_InformeCabeceraPresupuestoIMPORTETOTAL = 16;
+ idx_InformeCabeceraPresupuestoOBSERVACIONES = 17;
+ idx_InformeCabeceraPresupuestoPLAZOENTREGA = 18;
+ idx_InformeCabeceraPresupuestoFORMAPAGO = 19;
+ idx_InformeCabeceraPresupuestoNOMBRE = 20;
+ idx_InformeCabeceraPresupuestoNIF_CIF = 21;
+ idx_InformeCabeceraPresupuestoNOMBRE1 = 22;
+ idx_InformeCabeceraPresupuestoCALLE = 23;
+ idx_InformeCabeceraPresupuestoCODIGOPOSTAL = 24;
+ idx_InformeCabeceraPresupuestoPOBLACION = 25;
+ idx_InformeCabeceraPresupuestoTELEFONO1 = 26;
+ idx_InformeCabeceraPresupuestoTELEFONO2 = 27;
+ idx_InformeCabeceraPresupuestoMOVIL = 28;
+ idx_InformeCabeceraPresupuestoOPCION = 29;
+ idx_InformeCabeceraPresupuestoCODIGOALBARAN = 30;
+ idx_InformeCabeceraPresupuestoALBARAN = 31;
+
+ { InformeDetallesPresupuesto fields }
+ fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_InformeDetallesPresupuestoNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_InformeDetallesPresupuestoDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesPresupuestoCANTIDAD = 'CANTIDAD';
+ fld_InformeDetallesPresupuestoIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_InformeDetallesPresupuestoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeDetallesPresupuestoTIPO = 'TIPO';
+ fld_InformeDetallesPresupuestoPOSICION = 'POSICION';
+
+ { InformeDetallesPresupuesto field indexes }
+ idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO = 0;
+ idx_InformeDetallesPresupuestoNUMCONCEPTO = 1;
+ idx_InformeDetallesPresupuestoDESCRIPCION = 2;
+ idx_InformeDetallesPresupuestoCANTIDAD = 3;
+ idx_InformeDetallesPresupuestoIMPORTEUNIDAD = 4;
+ idx_InformeDetallesPresupuestoIMPORTETOTAL = 5;
+ idx_InformeDetallesPresupuestoTIPO = 6;
+ idx_InformeDetallesPresupuestoPOSICION = 7;
+
+type
+ { IDetallesPresupuestos }
+ IDetallesPresupuestos = interface(IDAStronglyTypedDataTable)
+ ['{44CD0F43-9391-4901-9C68-B711CBCB7FDC}']
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetVISIBLEValue: String;
+ procedure SetVISIBLEValue(const aValue: String);
+ function GetPUNTOSValue: Integer;
+ procedure SetPUNTOSValue(const aValue: Integer);
+ function GetIMPORTEPUNTOSValue: Currency;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency);
+
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesPresupuestosDataTableRules }
+ TDetallesPresupuestosDataTableRules = class(TDADataTableRules, IDetallesPresupuestos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos }
+ IPresupuestos = interface(IDAStronglyTypedDataTable)
+ ['{27C72B9E-C122-4FA0-A412-B2681821A051}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetFECHAPRESUPUESTOValue: DateTime;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+ function GetVIGENCIAPRESUPUESTOValue: DateTime;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHADECISIONValue: DateTime;
+ procedure SetFECHADECISIONValue(const aValue: DateTime);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetPLAZOENTREGAValue: IROStrings;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+ function GetALBARANValue: String;
+ procedure SetALBARANValue(const aValue: String);
+ function GetOPCIONValue: String;
+ procedure SetOPCIONValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+ end;
+
+ { TPresupuestosDataTableRules }
+ TPresupuestosDataTableRules = class(TDADataTableRules, IPresupuestos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos_RefreshDataset }
+ IPresupuestos_RefreshDataset = interface(IDAStronglyTypedDataTable)
+ ['{36CACFE6-C6B9-497D-A821-2ABF5E3298F0}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+ function GetALBARANValue: String;
+ procedure SetALBARANValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+ end;
+
+ { TPresupuestos_RefreshDatasetDataTableRules }
+ TPresupuestos_RefreshDatasetDataTableRules = class(TDADataTableRules, IPresupuestos_RefreshDataset)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPresupuesto }
+ IInformeCabeceraPresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{B0CC1F1A-3AC1-4696-A03F-15F309307109}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetFECHAPRESUPUESTOValue: DateTime;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+ function GetVIGENCIAPRESUPUESTOValue: DateTime;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHADECISIONValue: DateTime;
+ procedure SetFECHADECISIONValue(const aValue: DateTime);
+ function GetBASEIMPONIBLEValue: Float;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Float;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Float;
+ procedure SetIMPORTEIVAValue(const aValue: Float);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetPLAZOENTREGAValue: IROStrings;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetNIF_CIFValue: String;
+ procedure SetNIF_CIFValue(const aValue: String);
+ function GetNOMBRE1Value: String;
+ procedure SetNOMBRE1Value(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+ function GetOPCIONValue: String;
+ procedure SetOPCIONValue(const aValue: String);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+ function GetALBARANValue: String;
+ procedure SetALBARANValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
+ property NOMBRE1: String read GetNOMBRE1Value write SetNOMBRE1Value;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+ end;
+
+ { TInformeCabeceraPresupuestoDataTableRules }
+ TInformeCabeceraPresupuestoDataTableRules = class(TDADataTableRules, IInformeCabeceraPresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIF_CIFValue: String; virtual;
+ procedure SetNIF_CIFValue(const aValue: String); virtual;
+ function GetNOMBRE1Value: String; virtual;
+ procedure SetNOMBRE1Value(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
+ property NOMBRE1: String read GetNOMBRE1Value write SetNOMBRE1Value;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ property OPCION: String read GetOPCIONValue write SetOPCIONValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property ALBARAN: String read GetALBARANValue write SetALBARANValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPresupuesto }
+ IInformeDetallesPresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{331BAA43-0C6C-45D7-A7C2-098D7686A53F}']
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ end;
+
+ { TInformeDetallesPresupuestoDataTableRules }
+ TInformeDetallesPresupuestoDataTableRules = class(TDADataTableRules, IInformeDetallesPresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TDetallesPresupuestosDataTableRules }
+constructor TDetallesPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDetallesPresupuestosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosNUMCONCEPTO].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosDESCRIPCION].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosDESCRIPCION].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosTIPO].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosTIPO].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosPOSICION].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosPOSICION].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetVISIBLEValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosVISIBLE].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetVISIBLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosVISIBLE].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetPUNTOSValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsCurrency := aValue;
+end;
+
+
+{ TPresupuestosDataTableRules }
+constructor TPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPresupuestosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGO].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGO].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHAALTA].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosUSUARIO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosUSUARIO].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosNOMBRE].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosNOMBRE].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosREFERENCIA].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosREFERENCIA].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosTIPO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosTIPO].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosVIGENCIAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosVIGENCIAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosSITUACION].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosSITUACION].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHADECISION].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHADECISION].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_PresupuestosDESCUENTO].AsFloat;
+end;
+
+procedure TPresupuestosDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PresupuestosDESCUENTO].AsFloat := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_PresupuestosIVA].AsFloat;
+end;
+
+procedure TPresupuestosDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PresupuestosIVA].AsFloat := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTEIVA].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosOBSERVACIONES].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosPLAZOENTREGA].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosPLAZOENTREGA].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosFORMAPAGO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOALBARAN].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOALBARAN].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetALBARANValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosALBARAN].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetALBARANValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosALBARAN].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetOPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosOPCION].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetOPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosOPCION].AsString := aValue;
+end;
+
+
+{ TPresupuestos_RefreshDatasetDataTableRules }
+constructor TPresupuestos_RefreshDatasetDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPresupuestos_RefreshDatasetDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGO].AsInteger;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGO].AsInteger := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetNOMBRE].AsString;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetNOMBRE].AsString := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetREFERENCIA].AsString;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetREFERENCIA].AsString := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGOALBARAN].AsInteger;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGOALBARAN].AsInteger := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetALBARANValue: String;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetALBARAN].AsString;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetALBARANValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetALBARAN].AsString := aValue;
+end;
+
+
+{ TInformeCabeceraPresupuestoDataTableRules }
+constructor TInformeCabeceraPresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAALTA].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAALTA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoUSUARIO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoUSUARIO].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTIPO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTIPO].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoSITUACION].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoSITUACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHADECISION].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHADECISION].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoBASEIMPONIBLE].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoBASEIMPONIBLE].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTEIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTETOTAL].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTETOTAL].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoPLAZOENTREGA].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoPLAZOENTREGA].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoFORMAPAGO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetNIF_CIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoNIF_CIF].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetNIF_CIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoNIF_CIF].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetNOMBRE1Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE1].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetNOMBRE1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE1].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCALLE].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO1].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO1].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO2].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO2].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoMOVIL].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoMOVIL].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetOPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoOPCION].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetOPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoOPCION].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOALBARAN].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOALBARAN].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetALBARANValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoALBARAN].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetALBARANValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoALBARAN].AsString := aValue;
+end;
+
+
+{ TInformeDetallesPresupuestoDataTableRules }
+constructor TInformeDetallesPresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoNUMCONCEPTO].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoCANTIDAD].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoCANTIDAD].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoTIPO].AsString;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoTIPO].AsString := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoPOSICION].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoPOSICION].AsInteger := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_DetallesPresupuestos, TDetallesPresupuestosDataTableRules);
+ RegisterDataTableRules(RID_Presupuestos, TPresupuestosDataTableRules);
+ RegisterDataTableRules(RID_Presupuestos_RefreshDataset, TPresupuestos_RefreshDatasetDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraPresupuesto, TInformeCabeceraPresupuestoDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesPresupuesto, TInformeDetallesPresupuestoDataTableRules);
+
+end.
diff --git a/Modulos/Presupuestos/Reglas/schPresupuestosServer_Intf.pas b/Modulos/Presupuestos/Reglas/schPresupuestosServer_Intf.pas
new file mode 100644
index 0000000..ee412ec
--- /dev/null
+++ b/Modulos/Presupuestos/Reglas/schPresupuestosServer_Intf.pas
@@ -0,0 +1,1973 @@
+unit schPresupuestosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schPresupuestosClient_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_DetallesPresupuestosDelta = '{27189DEC-DB55-4CFF-90D4-3CCC8C3789B7}';
+ RID_PresupuestosDelta = '{AD80280F-15D4-422B-9E7C-B413BD6D9270}';
+ RID_Presupuestos_RefreshDatasetDelta = '{F4E70462-4089-44C8-AFAA-B6FDEFE43DB9}';
+ RID_InformeCabeceraPresupuestoDelta = '{41A03000-031E-4727-B794-E79D553EC52B}';
+ RID_InformeDetallesPresupuestoDelta = '{741759BF-9981-4B00-A217-C5C769B36552}';
+
+type
+ { IDetallesPresupuestosDelta }
+ IDetallesPresupuestosDelta = interface(IDetallesPresupuestos)
+ ['{27189DEC-DB55-4CFF-90D4-3CCC8C3789B7}']
+ { Property getters and setters }
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldVISIBLEValue : String;
+ function GetOldPUNTOSValue : Integer;
+ function GetOldIMPORTEPUNTOSValue : Currency;
+
+ { Properties }
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesPresupuestosBusinessProcessorRules }
+ TDetallesPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IDetallesPresupuestos, IDetallesPresupuestosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetVISIBLEValue: String; virtual;
+ function GetOldVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ function GetOldPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ function GetOldIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property VISIBLE : String read GetVISIBLEValue write SetVISIBLEValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property PUNTOS : Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property IMPORTEPUNTOS : Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestosDelta }
+ IPresupuestosDelta = interface(IPresupuestos)
+ ['{AD80280F-15D4-422B-9E7C-B413BD6D9270}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldTIPOValue : String;
+ function GetOldFECHAPRESUPUESTOValue : DateTime;
+ function GetOldVIGENCIAPRESUPUESTOValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHADECISIONValue : DateTime;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldPLAZOENTREGAValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldCODIGOALBARANValue : Integer;
+ function GetOldALBARANValue : String;
+ function GetOldOPCIONValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+ end;
+
+ { TPresupuestosBusinessProcessorRules }
+ TPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestos, IPresupuestosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ function GetOldFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ function GetOldPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ function GetOldALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ function GetOldOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property FECHAPRESUPUESTO : DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO : DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHADECISION : DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property PLAZOENTREGA : IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property ALBARAN : String read GetALBARANValue write SetALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+ property OPCION : String read GetOPCIONValue write SetOPCIONValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos_RefreshDatasetDelta }
+ IPresupuestos_RefreshDatasetDelta = interface(IPresupuestos_RefreshDataset)
+ ['{F4E70462-4089-44C8-AFAA-B6FDEFE43DB9}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldCODIGOALBARANValue : Integer;
+ function GetOldALBARANValue : String;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+ end;
+
+ { TPresupuestos_RefreshDatasetBusinessProcessorRules }
+ TPresupuestos_RefreshDatasetBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestos_RefreshDataset, IPresupuestos_RefreshDatasetDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ function GetOldALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property ALBARAN : String read GetALBARANValue write SetALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPresupuestoDelta }
+ IInformeCabeceraPresupuestoDelta = interface(IInformeCabeceraPresupuesto)
+ ['{41A03000-031E-4727-B794-E79D553EC52B}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldREFERENCIAValue : String;
+ function GetOldTIPOValue : String;
+ function GetOldFECHAPRESUPUESTOValue : DateTime;
+ function GetOldVIGENCIAPRESUPUESTOValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHADECISIONValue : DateTime;
+ function GetOldBASEIMPONIBLEValue : Float;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Float;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Float;
+ function GetOldIMPORTETOTALValue : Float;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldPLAZOENTREGAValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldNOMBREValue : String;
+ function GetOldNIF_CIFValue : String;
+ function GetOldNOMBRE1Value : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+ function GetOldOPCIONValue : String;
+ function GetOldCODIGOALBARANValue : Integer;
+ function GetOldALBARANValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldNIF_CIF : String read GetOldNIF_CIFValue;
+ property OldNOMBRE1 : String read GetOldNOMBRE1Value;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+ end;
+
+ { TInformeCabeceraPresupuestoBusinessProcessorRules }
+ TInformeCabeceraPresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraPresupuesto, IInformeCabeceraPresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ function GetOldFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ function GetOldBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ function GetOldIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ function GetOldPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetNIF_CIFValue: String; virtual;
+ function GetOldNIF_CIFValue: String; virtual;
+ procedure SetNIF_CIFValue(const aValue: String); virtual;
+ function GetNOMBRE1Value: String; virtual;
+ function GetOldNOMBRE1Value: String; virtual;
+ procedure SetNOMBRE1Value(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+ function GetOPCIONValue: String; virtual;
+ function GetOldOPCIONValue: String; virtual;
+ procedure SetOPCIONValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+ function GetALBARANValue: String; virtual;
+ function GetOldALBARANValue: String; virtual;
+ procedure SetALBARANValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property FECHAPRESUPUESTO : DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO : DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHADECISION : DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property BASEIMPONIBLE : Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property PLAZOENTREGA : IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue;
+ property OldNIF_CIF : String read GetOldNIF_CIFValue;
+ property NOMBRE1 : String read GetNOMBRE1Value write SetNOMBRE1Value;
+ property OldNOMBRE1 : String read GetOldNOMBRE1Value;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+ property OPCION : String read GetOPCIONValue write SetOPCIONValue;
+ property OldOPCION : String read GetOldOPCIONValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ property ALBARAN : String read GetALBARANValue write SetALBARANValue;
+ property OldALBARAN : String read GetOldALBARANValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPresupuestoDelta }
+ IInformeDetallesPresupuestoDelta = interface(IInformeDetallesPresupuesto)
+ ['{741759BF-9981-4B00-A217-C5C769B36552}']
+ { Property getters and setters }
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+
+ { Properties }
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ end;
+
+ { TInformeDetallesPresupuestoBusinessProcessorRules }
+ TInformeDetallesPresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesPresupuesto, IInformeDetallesPresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TDetallesPresupuestosBusinessProcessorRules }
+constructor TDetallesPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDetallesPresupuestosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosNUMCONCEPTO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosNUMCONCEPTO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosNUMCONCEPTO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosDESCRIPCION];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosDESCRIPCION];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosDESCRIPCION] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCANTIDAD];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosCANTIDAD];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCANTIDAD] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTETOTAL];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTETOTAL];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTETOTAL] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosTIPO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosTIPO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosTIPO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPOSICION];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosPOSICION];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPOSICION] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosVISIBLE];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosVISIBLE];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetVISIBLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosVISIBLE] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPUNTOS];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosPUNTOS];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPUNTOS] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS] := aValue;
+end;
+
+
+{ TPresupuestosBusinessProcessorRules }
+constructor TPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPresupuestosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOEMPRESA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOEMPRESA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOEMPRESA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAALTA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHAALTA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAALTA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosUSUARIO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosUSUARIO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosUSUARIO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOCONTACTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOCONTACTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOCONTACTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosNOMBRE];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosNOMBRE];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosNOMBRE] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosREFERENCIA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosREFERENCIA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosREFERENCIA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosTIPO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosTIPO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosTIPO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAPRESUPUESTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHAPRESUPUESTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAPRESUPUESTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosSITUACION];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosSITUACION];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosSITUACION] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHADECISION];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHADECISION];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHADECISION] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosBASEIMPONIBLE];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosBASEIMPONIBLE];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosBASEIMPONIBLE] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosDESCUENTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosDESCUENTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosDESCUENTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEDESCUENTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTEDESCUENTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEDESCUENTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIVA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIVA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIVA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEIVA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTEIVA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEIVA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTETOTAL];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTETOTAL];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTETOTAL] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOBSERVACIONES];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosOBSERVACIONES];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOBSERVACIONES] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosPLAZOENTREGA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosPLAZOENTREGA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosPLAZOENTREGA] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFORMAPAGO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFORMAPAGO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFORMAPAGO] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOALBARAN];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOALBARAN];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOALBARAN] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosALBARAN];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosALBARAN];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetALBARANValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosALBARAN] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOPCION];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosOPCION];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetOPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOPCION] := aValue;
+end;
+
+
+{ TPresupuestos_RefreshDatasetBusinessProcessorRules }
+constructor TPresupuestos_RefreshDatasetBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPresupuestos_RefreshDatasetBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGO];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetCODIGO];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGO] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetNOMBRE];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetNOMBRE];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetNOMBRE] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetREFERENCIA];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetREFERENCIA];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetREFERENCIA] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetALBARAN];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetALBARAN];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetALBARANValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetALBARAN] := aValue;
+end;
+
+
+{ TInformeCabeceraPresupuestoBusinessProcessorRules }
+constructor TInformeCabeceraPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAALTA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHAALTA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAALTA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoUSUARIO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoUSUARIO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoUSUARIO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoREFERENCIA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoREFERENCIA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTIPO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTIPO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTIPO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoSITUACION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoSITUACION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoSITUACION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHADECISION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHADECISION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHADECISION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoDESCUENTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoDESCUENTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIVA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIVA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIVA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoNOMBRE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetNIF_CIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNIF_CIF];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldNIF_CIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoNIF_CIF];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetNIF_CIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNIF_CIF] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetNOMBRE1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE1];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldNOMBRE1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoNOMBRE1];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetNOMBRE1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE1] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCALLE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCALLE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCALLE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPOBLACION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoPOBLACION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO1];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTELEFONO1];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO1] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO2];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTELEFONO2];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO2] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoMOVIL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoMOVIL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoMOVIL] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOPCION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldOPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoOPCION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetOPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOPCION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOALBARAN];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOALBARAN];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOALBARAN] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoALBARAN];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldALBARANValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoALBARAN];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetALBARANValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoALBARAN] := aValue;
+end;
+
+
+{ TInformeDetallesPresupuestoBusinessProcessorRules }
+constructor TInformeDetallesPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoDESCRIPCION];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoDESCRIPCION];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCANTIDAD];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoCANTIDAD];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCANTIDAD] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoTIPO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoTIPO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoTIPO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoPOSICION];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoPOSICION];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoPOSICION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_DetallesPresupuestosDelta, TDetallesPresupuestosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_PresupuestosDelta, TPresupuestosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Presupuestos_RefreshDatasetDelta, TPresupuestos_RefreshDatasetBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraPresupuestoDelta, TInformeCabeceraPresupuestoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesPresupuestoDelta, TInformeDetallesPresupuestoBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Presupuestos/Reglas/uBizPresupuestosCliente.pas b/Modulos/Presupuestos/Reglas/uBizPresupuestosCliente.pas
new file mode 100644
index 0000000..a53d868
--- /dev/null
+++ b/Modulos/Presupuestos/Reglas/uBizPresupuestosCliente.pas
@@ -0,0 +1,619 @@
+unit uBizPresupuestosCliente;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schPresupuestosClient_Intf, Classes,
+ uBizContacto, uDBSelectionList, Controls, uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uExceptions, uBizInformesBase, DB,
+ uBizDocumentosAsociados;
+
+const
+ BIZ_PRESUPUESTOCLIENTE = 'Client.PresupuestoCliente';
+ BIZ_DETALLESPRESUPUESTOCLIENTE = 'Client.DetallesPresupuestoCliente';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_ACEPTADO = 'Aceptado';
+ SITUACION_RECHAZADO = 'Rechazado';
+
+ TIPO_COCINA = 'Cocina';
+ TIPO_BANO = 'Baño';
+
+type
+ IBizDetallesPresupuesto = interface(IDetallesPresupuestos)
+ ['{7233E1B0-5B76-4AE4-AB05-4F12EF74FBDD}']
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ end;
+
+ IBizPresupuestos = interface(IPresupuestos)
+ ['{C699A849-3F52-486B-93AC-1EB0E6B5632F}']
+ function GetDetalles: IBizDetallesPresupuesto;
+ procedure SetDetalles(Value: IBizDetallesPresupuesto);
+ property Detalles: IBizDetallesPresupuesto read GetDetalles write
+ SetDetalles;
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+
+ //DOCUMENTOS ASOCIADOS
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(Value: TGestorDocumentos);
+ property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
+
+ procedure Show;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+ function ShowForSelect : TModalResult;
+ end;
+
+ TBizDetallesPresupuesto = class(TDetallesPresupuestosDataTableRules,
+ IBizDetallesPresupuesto,
+ IBizImportesDetalle,
+ IBizPuntosDetalle,
+ IBizVisibleDetalle,
+ IParche) // PARCHE ***********************
+ private
+ FIsAppend : Boolean;
+ FPosicionNueva : Integer;
+ FPuedoLanzarEvento : Boolean; // PARCHE ***********************
+
+ procedure SetCANTIDADValue(const aValue: Integer); override;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); override;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); override;
+ procedure SetPUNTOSValue(const aValue: Integer); override;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); override;
+
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterInsert(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+
+ // PARCHE ***********************
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ public
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ constructor Create(aDataTable: TDADataTable); override;
+ end;
+
+
+ TBizPresupuestos = class(TPresupuestosDataTableRules, IBizPresupuestos,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException, IBizInformesAware,
+ IBizDocumentosAsociados)
+ private
+ FCliente : IBizCliente;
+ FDetalles: IBizDetallesPresupuesto;
+ FDetallesLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+
+ //DOCUMENTOS ASOCIADOS
+ FGestorDocumentos: TGestorDocumentos;
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(Value: TGestorDocumentos);
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure BeforeCancel(Sender: TDADataTable); override;
+
+ protected
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
+ function GetDetalles: IBizDetallesPresupuesto;
+ procedure SetDetalles(Value: IBizDetallesPresupuesto);
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ procedure RecalcularImporte;
+ procedure Show;
+ function ShowForSelect : TModalResult;
+ procedure Preview;
+ procedure Print;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+ property Detalles: IBizDetallesPresupuesto read GetDetalles write SetDetalles;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+
+ //DOCUMENTOS ASOCIADOS
+ property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
+ end;
+
+ procedure ValidarPresupuesto (const APresupuesto : IBizPresupuestos);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils,
+ uDataModulePresupuestos, uDataModuleContactos, Variants, Math,
+ uDataModuleBase, uDataModuleUsuarios, FactuGES_Intf, uDataTableUtils;
+
+var
+ FMasterDeleting : Boolean;
+ FCancelInsert : Boolean;
+ cadena1, cadena2 : string;
+
+procedure ValidarPresupuesto (const APresupuesto : IBizPresupuestos);
+begin
+ if (FloatToStr(APresupuesto.FECHAPRESUPUESTO) = '0') then
+ raise Exception.Create('Debe indicar la fecha de este presupuesto');
+
+ if not Assigned(APresupuesto.Cliente) or
+ (APresupuesto.Cliente.DataTable.IsEmpty) then
+ raise Exception.Create('Debe indicar el cliente de este presupuesto');
+
+
+ if (FloatToStr(APresupuesto.FECHADECISION) <> '0') and
+ (APresupuesto.SITUACION <> SITUACION_PENDIENTE) and
+ (APresupuesto.FECHADECISION < APresupuesto.FECHAPRESUPUESTO) then
+ raise Exception.Create('La fecha de decisición debe ser posterior a la fecha del presupuesto');
+
+
+ if (APresupuesto.SITUACION <> SITUACION_PENDIENTE) and
+ (FloatToStr(APresupuesto.FECHADECISION) = '0') then
+ begin
+ APresupuesto.Edit;
+ APresupuesto.FECHADECISION := Date;
+ APresupuesto.Post;
+ end;
+end;
+
+procedure TBizPresupuestos.RecalcularImporte;
+begin
+ RecalcularImportesCabecera(Self.DataTable, Detalles.DataTable);
+end;
+
+constructor TBizPresupuestos.Create(aDataTable: TDADataTable);
+var
+ Ruta: Variant;
+begin
+ inherited;
+ FCliente := NIL;
+ FDetallesLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+
+ //DOCUMENTOS ASOCIADOS
+ //En caso de no poder acceder a la ruta de red (Caso de dos tiendas conectadas por internet)
+ //deshabilitamos el gestor de documentos
+ Ruta := dmBase.darRutaDocumentos;
+ if VarIsNull(Ruta) then
+ FGestorDocumentos := Nil
+ else
+ begin
+ FGestorDocumentos := TGestorDocumentos.Create;
+ FGestorDocumentos.RootDocumentos := dmBase.darRutaDocumentos;
+ aDataTable.BeforeCancel := BeforeCancel;
+ end;
+end;
+
+destructor TBizPresupuestos.Destroy;
+begin
+ FCliente := NIL;
+ FDetalles := NIL;
+ FDetallesLink.Free;
+ FSelectedRows.Free;
+
+ FreeAndNil(FGestorDocumentos);
+ inherited;
+end;
+
+function TBizPresupuestos.GetDetalles: IBizDetallesPresupuesto;
+begin
+ Result := FDetalles;
+end;
+
+function TBizPresupuestos.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizPresupuestos.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAPRESUPUESTO := Date;
+ VIGENCIAPRESUPUESTO := Date + 30; // 30 días de validez por defecto
+ SITUACION := SITUACION_PENDIENTE;
+ TIPO := TIPO_COCINA;
+ CODIGO := dmPresupuestos.GetNextAutoinc;
+ OPCION := 'OPCIÓN 1';
+end;
+
+procedure TBizPresupuestos.Preview;
+begin
+ dmPresupuestos.Preview(CODIGO);
+end;
+
+function TBizPresupuestos.GetCliente: IBizCliente;
+begin
+ if not Assigned(FCliente) then
+ FCliente := dmContactos.GetCliente(CODIGOCONTACTO)
+ else
+ if (CODIGOCONTACTO <> FCliente.Codigo) and
+ not (FCliente.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FCliente, CODIGOCONTACTO);
+
+ if not FCliente.DataTable.Active then
+ FCliente.DataTable.Active := True;
+
+ Result := FCliente;
+end;
+
+procedure TBizPresupuestos.SetCliente(Value: IBizCliente);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FCliente := Value;
+ if Assigned(FCliente) then
+ begin
+ CODIGOCONTACTO := FCliente.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizPresupuestos.SetDetalles(
+ Value: IBizDetallesPresupuesto);
+begin
+ FDetalles := Value;
+ FDetallesLink.DataTable := Self.DataTable;
+ FDetalles.DataTable.MasterSource := FDetallesLink;
+end;
+
+procedure TBizPresupuestos.Show;
+begin
+ ShowEditor(IBizPresupuestos, Self, etItem);
+end;
+
+procedure TBizDetallesPresupuesto.ActivarEventos;
+begin
+ FPuedoLanzarEvento := True;
+end;
+
+procedure TBizDetallesPresupuesto.AfterDelete(Sender: TDADataTable);
+var
+ ACabecera : IBizImportesCabecera;
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (not FMasterDeleting) and (not FCancelInsert) then
+ begin
+ ReasignarPosiciones(Self.DataTable);
+ if Assigned(DataTable.MasterSource) and
+ Supports(DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+ FCancelInsert := False;
+end;
+
+procedure TBizDetallesPresupuesto.AfterInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ FIsAppend := DataTable.EOF;
+ Post; // Para lanzar AfterPost y asigne posición
+ Edit; // Para volver a dejarlo en modo de edición
+end;
+
+procedure TBizDetallesPresupuesto.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if POSICION < 0 then
+ AsignarPosicion(Self.DataTable, FIsAppend);
+
+ if NUMCONCEPTO < 0 then
+ AsignarNumConcepto(Self.DataTable);
+
+ FIsAppend := False;
+end;
+
+procedure TBizDetallesPresupuesto.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (DataTable.State in dsEditModes) then
+ DataTable.Cancel;
+
+ if not FMasterDeleting then
+ FCancelInsert := not (DataTable.MasterSource.DataTable.FieldByName('CODIGO').AsInteger = CODIGOPRESUPUESTO);
+end;
+
+procedure TBizDetallesPresupuesto.BeforeInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if Assigned(DataTable.MasterSource) and
+ (DataTable.MasterSource.DataTable.State in dsEditModes) then
+ DataTable.MasterSource.DataTable.Post;
+
+ if GetRecordCount = 0 then
+ FPosicionNueva := -1
+ else
+ FPosicionNueva := POSICION * (-1);
+end;
+
+procedure TBizDetallesPresupuesto.CopyFrom(
+ ADetallesPresupuesto: IBizDetallesPresupuesto);
+begin
+ DeleteAllTable(Self.DataTable);
+
+ ADetallesPresupuesto.First;
+ while not ADetallesPresupuesto.EOF do
+ begin
+ DataTable.Append;
+ DataTable.DisableEventHandlers;
+ try
+ POSICION := ADetallesPresupuesto.POSICION;
+ TIPO := ADetallesPresupuesto.TIPO;
+ DESCRIPCION := ADetallesPresupuesto.DESCRIPCION;
+ CANTIDAD := ADetallesPresupuesto.CANTIDAD;
+ IMPORTEUNIDAD := ADetallesPresupuesto.IMPORTEUNIDAD;
+ IMPORTETOTAL := ADetallesPresupuesto.IMPORTETOTAL;
+ PUNTOS := ADetallesPresupuesto.PUNTOS;
+ IMPORTEPUNTOS := ADetallesPresupuesto.IMPORTEPUNTOS;
+ VISIBLE := ADetallesPresupuesto.VISIBLE;
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ DataTable.Post;
+ ADetallesPresupuesto.Next;
+ end;
+end;
+
+constructor TBizDetallesPresupuesto.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FPosicionNueva := 1; // Los conceptos empiezan a contar en 1
+
+ // PARCHE *******************
+ FPuedoLanzarEvento := True;
+end;
+
+function TBizDetallesPresupuesto.DarSumaTotalImportes: Currency;
+begin
+ Result := DarTotalDetalles(Self.DataTable, True, True);
+end;
+
+procedure TBizDetallesPresupuesto.DesactivarEventos;
+begin
+ FPuedoLanzarEvento := False
+end;
+
+procedure TBizDetallesPresupuesto.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ POSICION := FPosicionNueva;
+ NUMCONCEPTO := -1;
+ TIPO := TIPODETALLE_CONCEPTO;
+ VISIBLE := VISIBLE_TRUE;
+
+
+ Self.DataTable.DisableEventHandlers;
+ try
+ CANTIDAD := 1;
+ finally
+ Self.DataTable.EnableEventHandlers;
+ end;
+end;
+
+function TBizPresupuestos.ShowForSelect : TModalResult;
+begin
+ Result := ShowEditor(IBizPresupuestos, Self, etSelectItems);
+end;
+
+procedure TBizPresupuestos.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este presupuesto porque tiene un montaje o un montaje o albarán asociado', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TBizPresupuestos.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmPresupuestos.PuedoEliminarPresupuesto(CODIGO) then
+ raise Exception.Create('No se puede borrar este presupuesto porque tiene un montaje o albarán asociado');
+ FMasterDeleting := True; // Para que los detalles se borren de golpe y no recalcule posiciones ni totales
+
+ //DOCUMENTOS ASOCIADOS
+ if Assigned(GestorDocumentos) then
+ begin
+ GestorDocumentos.Directorio := CODIGO;
+ GestorDocumentos.procesarDeleteTable;
+ end;
+end;
+
+procedure TBizPresupuestos.AfterDelete(Sender: TDADataTable);
+begin
+ inherited;
+ FMasterDeleting := False;
+end;
+
+procedure TBizPresupuestos.Print;
+begin
+ dmPresupuestos.Print(CODIGO);
+end;
+
+procedure TBizPresupuestos.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarPresupuesto(Self);
+ //ctDelete :
+ end;
+end;
+
+procedure TBizPresupuestos.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente de este presupuesto', 'Atención', MB_ICONWARNING or MB_OK);
+ if (Pos('Fecha presupuesto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de este presupuesto', 'Atención', MB_ICONWARNING or MB_OK);
+ end
+ else
+ raise Error;
+end;
+
+function TBizDetallesPresupuesto.PuedoLanzarEvento: Boolean;
+begin
+ Result := FPuedoLanzarEvento;
+end;
+
+procedure TBizDetallesPresupuesto.RecalcularImporte;
+begin
+ RecalcularImporteDetalle(Self.DataTable, True, True);
+end;
+
+procedure TBizPresupuestos.CopyFrom(APresupuesto: IBizPresupuestos);
+begin
+ DataTable.DisableEventHandlers;
+ try
+ if not APresupuesto.DataTable.Active then
+ APresupuesto.DataTable.Active := True;
+ CODIGOEMPRESA := APresupuesto.CODIGOEMPRESA;
+ TIPO := APresupuesto.TIPO;
+
+ CODIGOCONTACTO := APresupuesto.CODIGOCONTACTO;
+ NOMBRE := APresupuesto.NOMBRE;
+ Cliente := APresupuesto.Cliente;
+
+ BASEIMPONIBLE := APresupuesto.BASEIMPONIBLE;
+ DESCUENTO := APresupuesto.DESCUENTO;
+ IMPORTEDESCUENTO := APresupuesto.IMPORTEDESCUENTO;
+ IVA := APresupuesto.IVA;
+ IMPORTEIVA := APresupuesto.IMPORTEIVA;
+ IMPORTETOTAL := APresupuesto.IMPORTETOTAL;
+ OBSERVACIONES := APresupuesto.OBSERVACIONES;
+ PLAZOENTREGA := APresupuesto.PLAZOENTREGA;
+ FORMAPAGO := APresupuesto.FORMAPAGO;
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ Post;
+ Detalles.CopyFrom(APresupuesto.Detalles);
+end;
+
+procedure TBizDetallesPresupuesto.Refrescar;
+begin
+ DataTable.Refresh;
+end;
+
+procedure TBizDetallesPresupuesto.SetCANTIDADValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetPUNTOSValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizPresupuestos.BeforeCancel(Sender: TDADataTable);
+begin
+ if Assigned(GestorDocumentos) then
+ GestorDocumentos.procesarCancelTable;
+end;
+
+function TBizPresupuestos.GetGestorDocumentos: TGestorDocumentos;
+begin
+ if Assigned(FGestorDocumentos) then
+ FGestorDocumentos.Directorio := CODIGO;
+
+ Result := FGestorDocumentos;
+end;
+
+procedure TBizPresupuestos.SetGestorDocumentos(Value: TGestorDocumentos);
+begin
+ FGestorDocumentos := Value;
+end;
+
+initialization
+ FMasterDeleting := False;
+ RegisterDataTableRules(BIZ_DETALLESPRESUPUESTOCLIENTE, TBizDetallesPresupuesto);
+ RegisterDataTableRules(BIZ_PRESUPUESTOCLIENTE, TBizPresupuestos);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.ddp b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.ddp differ
diff --git a/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.dfm b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.dfm
new file mode 100644
index 0000000..8e70acb
--- /dev/null
+++ b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.dfm
@@ -0,0 +1,2003 @@
+object srvPresupuestos: TsrvPresupuestos
+ OldCreateOrder = True
+ SessionManager = dmServer.SessionManager
+ OnActivate = DARemoteServiceActivate
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schPresupuestos
+ ServiceAdapter = DABINAdapter
+ Left = 729
+ Top = 363
+ Height = 359
+ Width = 328
+ object schPresupuestos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPRESUPUESTOS'
+ SQL =
+ 'SELECT '#10' CODIGOPRESUPUESTO, NUMCONCEPTO, DESCRIPCION, CANTIDA' +
+ 'D, '#10' IMPORTEUNIDAD, IMPORTETOTAL, TIPO, POSICION, VISIBLE,'#10' ' +
+ ' PUNTOS, IMPORTEPUNTOS'#10' FROM'#10' DETALLESPRESUPUESTOS'#10' WHERE ' +
+ 'CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO'#10' ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'VISIBLE'
+ TableField = 'VISIBLE'
+ end
+ item
+ DatasetField = 'PUNTOS'
+ TableField = 'PUNTOS'
+ end
+ item
+ DatasetField = 'IMPORTEPUNTOS'
+ TableField = 'IMPORTEPUNTOS'
+ end>
+ end>
+ Name = 'DetallesPresupuestos'
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'V_PRESUPUESTOS'
+ SQL =
+ 'SELECT CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, CODIGOCONTACTO' +
+ ','#10' TIPO, FECHAPRESUPUESTO, VIGENCIAPRESUPUESTO, SITUACION,' +
+ ' FECHADECISION,'#10' BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENT' +
+ 'O, IVA, IMPORTEIVA,'#10' IMPORTETOTAL, OBSERVACIONES, PLAZOENT' +
+ 'REGA, FORMAPAGO, OPCION,'#10' NOMBRE, REFERENCIA,'#10' CODIG' +
+ 'OALBARAN, ALBARAN'#10#10'FROM V_PRESUPUESTOS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'FECHAPRESUPUESTO'
+ TableField = 'FECHAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'VIGENCIAPRESUPUESTO'
+ TableField = 'VIGENCIAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHADECISION'
+ TableField = 'FECHADECISION'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'PLAZOENTREGA'
+ TableField = 'PLAZOENTREGA'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end
+ item
+ DatasetField = 'ALBARAN'
+ TableField = 'ALBARAN'
+ end
+ item
+ DatasetField = 'OPCION'
+ TableField = 'OPCION'
+ end>
+ end>
+ Name = 'Presupuestos'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ Description = 'Cocina, ba'#241'o, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'VIGENCIAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ Description = 'Pendiente, aceptado o rechazado'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHADECISION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PLAZOENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALBARAN'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'V_PRESUPUESTOS'
+ SQL =
+ 'SELECT CODIGO, NOMBRE, REFERENCIA, CODIGOALBARAN, ALBARAN'#10#10'FROM ' +
+ 'V_PRESUPUESTOS'#10'WHERE V_PRESUPUESTOS.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end
+ item
+ DatasetField = 'ALBARAN'
+ TableField = 'ALBARAN'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'Presupuestos_RefreshDataset'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. albar'#225'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALBARAN'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'V_PRESUPUESTOS'
+ SQL =
+ 'SELECT CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, CODIGOCONTACTO' +
+ ','#10' TIPO, FECHAPRESUPUESTO, VIGENCIAPRESUPUESTO, SITUACION,' +
+ ' FECHADECISION,'#10' BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENT' +
+ 'O, IVA, IMPORTEIVA,'#10' IMPORTETOTAL, OBSERVACIONES, PLAZOENT' +
+ 'REGA, FORMAPAGO, OPCION,'#10' NOMBRE, NIF_CIF, NOMBRE, CALLE, ' +
+ 'CODIGOPOSTAL, POBLACION, TELEFONO1,'#10' TELEFONO2, MOVIL, REF' +
+ 'ERENCIA,'#10' CODIGOALBARAN, ALBARAN'#10#10'FROM V_PRESUPUESTOS'#10'WHER' +
+ 'E CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'FECHAPRESUPUESTO'
+ TableField = 'FECHAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'VIGENCIAPRESUPUESTO'
+ TableField = 'VIGENCIAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHADECISION'
+ TableField = 'FECHADECISION'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'PLAZOENTREGA'
+ TableField = 'PLAZOENTREGA'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end
+ item
+ DatasetField = 'NIF_CIF'
+ TableField = 'NIF_CIF'
+ end
+ item
+ DatasetField = 'NOMBRE1'
+ TableField = 'NOMBRE1'
+ end
+ item
+ DatasetField = 'OPCION'
+ TableField = 'OPCION'
+ end
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end
+ item
+ DatasetField = 'ALBARAN'
+ TableField = 'ALBARAN'
+ end>
+ end>
+ Name = 'InformeCabeceraPresupuesto'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIF_CIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE1'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ALBARAN'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPRESUPUESTOS'
+ SQL =
+ 'SELECT '#10' CODIGOPRESUPUESTO, NUMCONCEPTO, DESCRIPCION, CANTIDA' +
+ 'D, '#10' IMPORTEUNIDAD, IMPORTETOTAL, TIPO, POSICION'#10' FROM'#10' D' +
+ 'ETALLESPRESUPUESTOS'#10' WHERE CODIGOPRESUPUESTO = :CODIGOPRESUPUES' +
+ 'TO'#10' AND VISIBLE = '#39'S'#39#10' ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end>
+ end>
+ Name = 'InformeDetallesPresupuesto'
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'INSERT'#10' INTO PRESUPUESTOS'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA' +
+ ', USUARIO, CODIGOCONTACTO,'#10' TIPO, FECHAPRESUPUESTO, VIGENCIA' +
+ 'PRESUPUESTO,'#10' SITUACION, FECHADECISION, BASEIMPONIBLE, DESCU' +
+ 'ENTO, '#10' IMPORTEDESCUENTO, IVA, IMPORTEIVA, IMPORTETOTAL, OBS' +
+ 'ERVACIONES, '#10' PLAZOENTREGA, FORMAPAGO, OPCION)'#10' VALUES'#10' ' +
+ '(:CODIGOEMPRESA, :CODIGO,'#10' :FECHAALTA, :USUARIO, :CODIGOCONT' +
+ 'ACTO,'#10' :TIPO, :FECHAPRESUPUESTO, :VIGENCIAPRESUPUESTO,'#10' ' +
+ ':SITUACION, :FECHADECISION, :BASEIMPONIBLE, :DESCUENTO, '#10' :I' +
+ 'MPORTEDESCUENTO, :IVA, :IMPORTEIVA, :IMPORTETOTAL, '#10' :OBSERV' +
+ 'ACIONES, :PLAZOENTREGA, :FORMAPAGO, :OPCION);'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_Presupuestos'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'UPDATE PRESUPUESTOS'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10 +
+ ' FECHAALTA = :FECHAALTA, '#10' USUARIO = :USUARIO, '#10' CODIGO' +
+ 'CONTACTO = :CODIGOCONTACTO, '#10' TIPO = :TIPO,'#10' FECHAPRESUPUE' +
+ 'STO = :FECHAPRESUPUESTO, '#10' VIGENCIAPRESUPUESTO = :VIGENCIAPRE' +
+ 'SUPUESTO, '#10' SITUACION = :SITUACION, '#10' FECHADECISION = :FEC' +
+ 'HADECISION, '#10' BASEIMPONIBLE = :BASEIMPONIBLE, '#10' DESCUENTO ' +
+ '= :DESCUENTO, '#10' IMPORTEDESCUENTO = :IMPORTEDESCUENTO, '#10' IV' +
+ 'A = :IVA, '#10' IMPORTEIVA = :IMPORTEIVA, '#10' IMPORTETOTAL = :IM' +
+ 'PORTETOTAL, '#10' OBSERVACIONES = :OBSERVACIONES, '#10' PLAZOENTRE' +
+ 'GA = :PLAZOENTREGA, '#10' FORMAPAGO = :FORMAPAGO,'#10' OPCION = :O' +
+ 'PCION'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_Presupuestos'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'DELETE '#10' FROM'#10' PRESUPUESTOS'#10' WHERE'#10' (CODIGO = :OLD_CODIG' +
+ 'O)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Presupuestos'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_DetallesPresupuestos_Presupuestos'
+ MasterDatasetName = 'Presupuestos'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'DetallesPresupuestos'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ end
+ item
+ Name = 'FK_InformeDetallesPresupuesto_InformeCabeceraPresupuesto'
+ MasterDatasetName = 'InformeCabeceraPresupuesto'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'InformeDetallesPresupuesto'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert Presupuestos'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update Presupuestos'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete DetallesPresupuestos'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update DetallesPresupuestos'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert DetallesPresupuestos'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete Presupuestos'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 48
+ Top = 24
+ end
+ object bpPresupuestos: TDABusinessProcessor
+ Schema = schPresupuestos
+ InsertCommandName = 'Insert_Presupuestos'
+ DeleteCommandName = 'Delete_Presupuestos'
+ UpdateCommandName = 'Update_Presupuestos'
+ RefreshDatasetName = 'Presupuestos_RefreshDataset'
+ ReferencedDataset = 'Presupuestos'
+ ProcessorOptions = [poAutoGenerateDelete, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 208
+ Top = 24
+ 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 = 39153.814578263890000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure Band4OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'T'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo2.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo3.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo4.Style := '#39'Concepto titulo'#39';'
+ ' end;'
+ ' end;'
+ ''
+ ' MemoCampo12.Height := 0;'
+ ' MemoCampo2.Height := 0;'
+ ' MemoCampo3.Height := 0;'
+ ' MemoCampo4.Height := 0;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSum' +
+ 'mary1.Height - 1;'
+ 'end;'
+ ''
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'var'
+ ' cadenaAux: String;'
+ 'begin'
+ ' DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );'
+ ''
+ ' CadenaAux := '#39#39';'
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ;'
+ ''
+ ' if <> '#39#39' then'
+ ' if CadenaAux = '#39#39' then'
+
+ ' CadenaAux := CadenaAux + '#39'Telf:'#39' + '
+ ' else'
+
+ ' CadenaAux := CadenaAux + '#39' / '#39' + ' +
+ ';'
+ ''
+ ' DatosCliente.Lines.Add(CadenaAux);'
+ 'end;'
+ ''
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 128
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ 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 DADataCabecera: TDADataSource
+ DataTable = tbl_Presupuesto
+ Left = 120
+ Top = 176
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_DetallesPresupuesto
+ Left = 200
+ Top = 176
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 128
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 200
+ Top = 128
+ end
+ object tbl_Presupuesto: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 120
+ Top = 240
+ end
+ object tbl_DetallesPresupuesto: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 200
+ Top = 240
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 80
+ end
+end
diff --git a/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.pas b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.pas
new file mode 100644
index 0000000..4ff7847
--- /dev/null
+++ b/Modulos/Presupuestos/Servidor/srvPresupuestos_Impl.pas
@@ -0,0 +1,125 @@
+unit srvPresupuestos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDAInterfaces, uDAEngine,
+ uDAIBXDriver, frxClass, frxDBSet, DB, uDACDSDataTable, uDABINAdapter,
+ uDADriverManager;
+
+type
+ { TsrvPresupuestos }
+ TsrvPresupuestos = class(TDARemoteService, IsrvPresupuestos)
+ bpPresupuestos: TDABusinessProcessor;
+ DADataCabecera: TDADataSource;
+ DADataDetalles: TDADataSource;
+ frxDBCabecera: TfrxDBDataset;
+ frxDBDetalles: TfrxDBDataset;
+ tbl_Presupuesto: TDACDSDataTable;
+ tbl_DetallesPresupuesto: TDACDSDataTable;
+ DABINAdapter: TDABINAdapter;
+ frxReport1: TfrxReport;
+ schPresupuestos: TDASchema;
+ procedure DARemoteServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+ private
+ protected
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ Dialogs,
+ {Generated:} FactuGES_Invk, uDataModuleServer, uRORemoteDataModule,
+ fServerForm, Variants, IB, schPresupuestosClient_Intf;
+
+procedure Create_srvPresupuestos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvPresupuestos.Create(NIL);
+end;
+
+{ srvPresupuestos }
+procedure TsrvPresupuestos.DARemoteServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+begin
+ ((Connection as IDAConnectionObjectAccess).ConnectionObject as
+ TIBXConnection).Database.TraceFlags := [tfQPrepare, tfQExecute, tfQFetch, tfError, tfStmt, tfConnect, tfTransact, tfBlob, tfService, tfMisc];
+end;
+
+function TsrvPresupuestos.GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schPresupuestos.NewDataset(Connection, 'InformeCabeceraPresupuesto', ['CODIGO'], [Codigo]);
+ dsDetail := schPresupuestos.NewDataset(Connection, 'InformeDetallesPresupuesto', ['CODIGOPRESUPUESTO'], [Codigo], False);
+ dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Presupuesto, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_DetallesPresupuesto, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfPresupuesto.fr3', True);
+
+ //Tamaño de letra
+ if TamLetra <> 0 then
+ frxReport1.Styles.Find('Concepto normal').Font.Size := TamLetra;
+
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvPresupuestos.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_PRESUPUESTOS');
+end;
+
+function TsrvPresupuestos.PuedoEliminarPresupuesto(
+ const CodigoPresupuesto: Integer): Boolean;
+var
+ dsPresupuesto: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsPresupuesto := schPresupuestos.NewCommand(Connection, 'Delete_Presupuestos', ['OLD_CODIGO'], [CodigoPresupuesto]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvPresupuestos', Create_srvPresupuestos, TsrvPresupuestos_Invoker);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.ddp b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.dfm b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.dfm
new file mode 100644
index 0000000..89ff898
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.dfm
@@ -0,0 +1,48 @@
+object CustomView1: TCustomView1
+ Left = 0
+ Top = 0
+ Width = 347
+ Height = 291
+ TabOrder = 0
+ ReadOnly = False
+ object dxLayoutControl1: TdxLayoutControl
+ Left = 0
+ Top = 0
+ Width = 347
+ Height = 291
+ Align = alClient
+ TabOrder = 0
+ AutoContentSizes = [acsWidth, acsHeight]
+ object DBGrid1: TDBGrid
+ Left = 24
+ Top = 30
+ Width = 320
+ Height = 116
+ BorderStyle = bsNone
+ TabOrder = 0
+ TitleFont.Charset = DEFAULT_CHARSET
+ TitleFont.Color = clWindowText
+ TitleFont.Height = -11
+ TitleFont.Name = 'MS Sans Serif'
+ TitleFont.Style = []
+ end
+ object dxLayoutControl1Group_Root: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControl1Group1: TdxLayoutGroup
+ AutoAligns = [aaHorizontal]
+ AlignVert = avClient
+ Caption = 'Prueba'
+ object dxLayoutControl1Item1: TdxLayoutItem
+ AutoAligns = []
+ AlignHorz = ahClient
+ AlignVert = avClient
+ Caption = 'New Item'
+ ShowCaption = False
+ Control = DBGrid1
+ end
+ end
+ end
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.pas b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.pas
new file mode 100644
index 0000000..c62cf18
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Inicio/uViewInicio.pas
@@ -0,0 +1,36 @@
+unit uViewInicio;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uCustomView, dxLayoutControl, Grids, DBGrids, cxControls, uViewBase;
+
+type
+ TCustomView1 = class(TCustomView, IViewInicio)
+ dxLayoutControl1Group_Root: TdxLayoutGroup;
+ dxLayoutControl1: TdxLayoutControl;
+ dxLayoutControl1Group1: TdxLayoutGroup;
+ DBGrid1: TDBGrid;
+ dxLayoutControl1Item1: TdxLayoutItem;
+ private
+ function Control : TControl;
+ public
+ { Public declarations }
+ end;
+
+var
+ CustomView1: TCustomView1;
+
+implementation
+
+{$R *.dfm}
+
+{ TCustomView1 }
+
+function TCustomView1.Control: TControl;
+begin
+ Result := Self;
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/Presupuestos.cfg b/Modulos/Presupuestos_/Cliente/Presupuestos.cfg
new file mode 100644
index 0000000..34e1eaa
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Presupuestos.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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Modulos/Presupuestos_/Cliente/Presupuestos.dof b/Modulos/Presupuestos_/Cliente/Presupuestos.dof
new file mode 100644
index 0000000..6624f4a
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Presupuestos.dof
@@ -0,0 +1,478 @@
+[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=Presupuestos de cliente
+[Directories]
+OutputDir=
+UnitOutputDir=.\
+PackageDLLOutputDir=..\..\..\Output\Cliente
+PackageDCPOutputDir=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Developer Express Inc\Lib\D7\dxPScxSchedulerLnkD7.bpl=ExpressPrinting System ReportLink for ExpressScheduler by Developer Express Inc.
+C:\Archivos de programa\Developer Express Inc\Lib\D7\dxLayoutControlcxEditAdaptersD7.bpl=ExpressLayoutControl Adapters for ExpressEditors Library 5 by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=2
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=1
+Item0=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=1
+Item0=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[Exception Log]
+EurekaLog Version=501
+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="&OK"
+Count mtDialog_TerminateButtonCaption=1
+mtDialog_TerminateButtonCaption0="&Terminate"
+Count mtDialog_RestartButtonCaption=1
+mtDialog_RestartButtonCaption0="&Restart"
+Count mtDialog_DetailsButtonCaption=1
+mtDialog_DetailsButtonCaption0="&Details"
+Count mtDialog_SendMessage=1
+mtDialog_SendMessage0="&Send this error via Internet"
+Count mtDialog_ScreenshotMessage=1
+mtDialog_ScreenshotMessage0="&Attach a Screenshot image"
+Count mtDialog_CopyMessage=1
+mtDialog_CopyMessage0="&Copy 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="&OK"
+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/Modulos/Presupuestos_/Cliente/Presupuestos.dpk b/Modulos/Presupuestos_/Cliente/Presupuestos.dpk
new file mode 100644
index 0000000..6ebebed
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Presupuestos.dpk
@@ -0,0 +1,86 @@
+package Presupuestos;
+
+{$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}
+{$DESCRIPTION 'Presupuestos de cliente'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ vcldb,
+ PluginSDK_D7R,
+ GUISDK_D7,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ BaseD7,
+ Contactos,
+ JvCtrlsD7R,
+ dbrtl,
+ dsnap,
+ adortl,
+ cxLibraryVCLD7,
+ dxThemeD7,
+ cxEditorsVCLD7,
+ cxDataD7,
+ Usuarios,
+ vcljpg,
+ cxExtEditorsVCLD7,
+ dclact,
+ dclstd,
+ designide,
+ DocumentosAsociados,
+ frx7,
+ fs7,
+ tee,
+ fqb70,
+ bdertl,
+ frxe7,
+ tb2k_d7,
+ tbx_d7,
+ JvCoreD7R,
+ Jcl,
+ JclVcl,
+ JvSystemD7R,
+ JvPageCompsD7R,
+ JvStdCtrlsD7R;
+
+contains
+ uPluginControllerPresupuestos in 'uPluginControllerPresupuestos.pas' {ModulePresupuestos: TModuleController},
+ uDataModulePresupuestos in 'uDataModulePresupuestos.pas' {dmPresupuestos: TDAClientDataModule},
+ uEditorPresupuestos in 'uEditorPresupuestos.pas' {fEditorPresupuestos: TCustomEditor},
+ uViewPresupuestos in 'uViewPresupuestos.pas' {frViewPresupuestos: TCustomView},
+ schPresupuestosClient_Intf in '..\Reglas\schPresupuestosClient_Intf.pas',
+ uEditorPresupuesto in 'uEditorPresupuesto.pas' {fEditorPresupuesto: TCustomEditor},
+ uViewPresupuesto in 'uViewPresupuesto.pas' {frViewPresupuesto: TFrame},
+ uViewSituacionPresupuesto in 'uViewSituacionPresupuesto.pas' {frViewSituacionPresupuesto: TFrame},
+ uViewDatosPresupuesto in 'uViewDatosPresupuesto.pas' {frViewDatosPresupuesto: TFrame},
+ uViewDetallesPresupuesto in 'uViewDetallesPresupuesto.pas' {frViewDetallesPresupuesto: TFrame},
+ uBizPresupuestosCliente in '..\Reglas\uBizPresupuestosCliente.pas',
+ schPresupuestosServer_Intf in '..\Reglas\schPresupuestosServer_Intf.pas',
+ uViewPresupuestoRelacionado in 'uViewPresupuestoRelacionado.pas' {frViewPresupuestoRelacionado: TFrame},
+ uEditorPreviewPresupuesto in 'uEditorPreviewPresupuesto.pas' {fEditorPreviewPresupuesto: TCustomEditor};
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/Presupuestos.drc b/Modulos/Presupuestos_/Cliente/Presupuestos.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/Presupuestos.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Modulos/Presupuestos_/Cliente/Presupuestos.res b/Modulos/Presupuestos_/Cliente/Presupuestos.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/Presupuestos.res differ
diff --git a/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.ddp b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.dfm b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.dfm
new file mode 100644
index 0000000..9cd3823
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.dfm
@@ -0,0 +1,681 @@
+object dmPresupuestos: TdmPresupuestos
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 628
+ Top = 433
+ Height = 326
+ Width = 367
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvPresupuestos'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 32
+ Top = 16
+ end
+ object DABinAdapter: TDABINAdapter
+ Left = 32
+ Top = 80
+ end
+ object tbl_DetallesPresupuestos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Visible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe puntos'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ MasterMappingMode = mmParams
+ MasterParamsMappings.Strings = (
+ 'CODIGOPRESUPUESTO=CODIGO')
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'DetallesPresupuestos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ MasterSource = ds_Presupuestos
+ MasterFields = 'CODIGO'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'DetallesPresupuestos'
+ IndexDefs = <>
+ Left = 176
+ Top = 112
+ end
+ object ds_DetallesPresupuestos: TDADataSource
+ DataTable = tbl_DetallesPresupuestos
+ Left = 296
+ Top = 112
+ end
+ object tbl_Presupuestos: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ Description = 'Cocina, ba'#241'o, etc'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'TIPOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vigencia'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'VIGENCIAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ Description = 'Pendiente, aceptado o rechazado'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'SITUACIONPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha decisi'#243'n'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FECHADECISION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Plazo de entrega'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'PLAZOENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Presupuestos'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Presupuestos'
+ IndexDefs = <>
+ Left = 176
+ Top = 40
+ end
+ object ds_Presupuestos: TDADataSource
+ DataTable = tbl_Presupuestos
+ Left = 296
+ Top = 40
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.pas b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.pas
new file mode 100644
index 0000000..30764f7
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uDataModulePresupuestos.pas
@@ -0,0 +1,289 @@
+unit uDataModulePresupuestos;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ uBizPresupuestosCliente, FactuGES_Intf,
+
+ frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode;
+
+type
+ TdmPresupuestos = class(TDAClientDataModule)
+ RORemoteService: TRORemoteService;
+ DABinAdapter: TDABINAdapter;
+ tbl_DetallesPresupuestos: TDACDSDataTable;
+ ds_DetallesPresupuestos: TDADataSource;
+ tbl_Presupuestos: TDACDSDataTable;
+ ds_Presupuestos: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ public
+ function DarNuevaReferencia (TipoPresupuesto : String) : String;
+ function PuedoEliminarPresupuesto (CodigoPresupuesto : Integer) : Boolean;
+ function GetReferencia (CodigoPresupuesto : Integer) : String;
+ function GetNextAutoinc : integer;
+ function GetPresupuestos: IBizPresupuestos;
+ function GetPresupuesto(CodigoPresupuesto : Integer) : IBizPresupuestos;
+ function GetPresupuestosSinAlbaran: IBizPresupuestos;
+ function GetPresupuestosSinMontaje: IBizPresupuestos;
+ function SetReferencia (APresupuesto: IBizPresupuestos; Referencia: Variant): Boolean;
+ procedure Preview(Const Codigo: Integer);
+ procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
+ procedure Print(Const Codigo: Integer);
+ function GetItemsSeleccionados(ASource : IBizPresupuestos): IBizPresupuestos;
+ end;
+
+var
+ dmPresupuestos: TdmPresupuestos;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uBizContacto, Dialogs, Variants,
+ uDataModuleContactos, uDataModuleBase, schPresupuestosClient_Intf,
+ uDAInterfaces, uEditorPreview, uEditorPreviewPresupuesto, uROTypes, schPresupuestosServer_Intf,
+ uDBSelectionList;
+
+function TdmPresupuestos.GetPresupuestos: IBizPresupuestos;
+var
+ dtPresupuestos: TDACDSDataTable;
+ dtDetalles: TDACDSDataTable;
+ ACursor: TCursor;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ dtPresupuestos := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_Presupuestos, dtPresupuestos);
+ with dtPresupuestos do
+ begin
+ BusinessRulesID := BIZ_PRESUPUESTOCLIENTE;
+ FieldByName(fld_PresupuestosDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
+ FieldByName(fld_PresupuestosIVA).BusinessRulesID := 'Client.Field.IVA';
+ end;
+
+ dtDetalles := TDACDSDataTable.Create(NIL);
+ CloneDataTable(tbl_DetallesPresupuestos, dtDetalles);
+ with dtDetalles do
+ begin
+ BusinessRulesID := BIZ_DETALLESPRESUPUESTOCLIENTE;
+ DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
+
+ FieldByName(fld_DetallesPresupuestosCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
+ FieldByName(fld_DetallesPresupuestosIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
+ FieldByName(fld_DetallesPresupuestosTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
+
+ FieldByName(fld_DetallesPresupuestosPUNTOS).BusinessRulesID := 'Client.Field.Puntos';
+ FieldByName(fld_DetallesPresupuestosIMPORTEPUNTOS).BusinessRulesID := 'Client.Field.ImportePuntos';
+
+ FieldByName(fld_DetallesPresupuestosVISIBLE).BusinessRulesID := 'Client.Field.Visible';
+ end;
+ (dtPresupuestos as IBizPresupuestos).Detalles := (dtDetalles as IBizDetallesPresupuesto);
+
+ Result := (dtPresupuestos as IBizPresupuestos);
+ finally
+ Screen.Cursor := ACursor;
+ end;
+end;
+
+procedure TdmPresupuestos.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmBase.Channel;
+ RORemoteService.Message := dmBase.Message;
+ Adapter := dmBase.Adapter;
+end;
+
+function TdmPresupuestos.GetPresupuestosSinAlbaran: IBizPresupuestos;
+var
+ dsPresupuestos : IBizPresupuestos;
+begin
+ dsPresupuestos := GetPresupuestos;
+ with dsPresupuestos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText('ALBARANPAGO.CODIGO is null', False);
+ CloseBraket;
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('PRESUPUESTOS.' + fld_PresupuestosSITUACION + '=' + '''' + SITUACION_ACEPTADO + '''', False);
+ CloseBraket;
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('PRESUPUESTOS.' + fld_PresupuestosREFERENCIA + ' is not NULL', False);
+ CloseBraket;
+ end;
+ Result := dsPresupuestos;
+end;
+
+function TdmPresupuestos.GetNextAutoinc: integer;
+begin
+ Result := (RORemoteService as IsrvPresupuestos).GetNextAutoinc;
+end;
+
+procedure TdmPresupuestos.Preview(Const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreviewPresupuesto : TfEditorPreviewPresupuesto;
+begin
+ AEditorPreviewPresupuesto := TfEditorPreviewPresupuesto.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, 0);
+ AEditorPreviewPresupuesto.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreviewPresupuesto.Codigo := Codigo;
+ AEditorPreviewPresupuesto.ShowModal;
+ finally
+ AEditorPreviewPresupuesto.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPresupuestos.DarNuevaReferencia(TipoPresupuesto: String): String;
+begin
+ Result := (RORemoteService as IsrvPresupuestos).DarNuevaReferencia(TipoPresupuesto);
+end;
+
+function TdmPresupuestos.GetReferencia(CodigoPresupuesto: Integer): String;
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ APresupuesto := GetPresupuesto(CodigoPresupuesto);
+ APresupuesto.DataTable.Active := True;
+ Result := APresupuesto.REFERENCIA;
+end;
+
+function TdmPresupuestos.GetPresupuesto(
+ CodigoPresupuesto: Integer): IBizPresupuestos;
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ APresupuesto := GetPresupuestos;
+ with APresupuesto.DataTable.Where do
+ AddText(fld_PresupuestosCODIGO + ' = ' + IntToStr(CodigoPresupuesto));
+ Result := APresupuesto;
+end;
+
+function TdmPresupuestos.PuedoEliminarPresupuesto(
+ CodigoPresupuesto: Integer): Boolean;
+begin
+ Result := (RORemoteService as IsrvPresupuestos).PuedoEliminarPresupuesto(CodigoPresupuesto);
+end;
+
+procedure TdmPresupuestos.Print(const Codigo: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+ AEditorPreview : TfEditorPreview;
+begin
+ AEditorPreview := TfEditorPreview.Create(Application);
+ try
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, 0);
+ AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
+ AEditorPreview.Print;
+ finally
+ AEditorPreview.Release;
+ AStream.Free;
+ end;
+end;
+
+function TdmPresupuestos.GetPresupuestosSinMontaje: IBizPresupuestos;
+var
+ dsPresupuestos : IBizPresupuestos;
+begin
+ dsPresupuestos := GetPresupuestos;
+ with dsPresupuestos.DataTable.Where do
+ begin
+ if not Empty then
+ AddOperator(opAND);
+ Clear;
+ OpenBraket;
+ AddText('PRESUPUESTOS.' + fld_PresupuestosCODIGO + ' not in (select CODIGOPRESUPUESTO from MONTAJES where CODIGOEMPRESA = ' + IntToStr(dmBase.CodigoEmpresa) + ' and CODIGOPRESUPUESTO is not null)', False);
+ CloseBraket;
+ AddOperator(opAND);
+ OpenBraket;
+ AddText('PRESUPUESTOS.' + fld_PresupuestosSITUACION + '=' + '''' + SITUACION_ACEPTADO + '''', False);
+ CloseBraket;
+
+
+ { AddOperator(opAND);
+ OpenBraket;
+ AddText('PRESUPUESTOS.' + fld_PresupuestosREFERENCIA + ' is not NULL', False);
+ CloseBraket;}
+ end;
+ Result := dsPresupuestos;
+end;
+
+
+function TdmPresupuestos.GetItemsSeleccionados(
+ ASource: IBizPresupuestos): IBizPresupuestos;
+var
+ aObj : ISelectedRowList;
+ dtPresupuesto : IBizPresupuestos;
+ i : integer;
+begin
+ if Supports(ASource, ISelectedRowList, aObj) then
+ begin
+ if (aObj.SelectedRows.Count = 1) then
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
+ Result := GetPresupuesto(ASource.CODIGO);
+ Exit;
+ end
+ else
+ dtPresupuesto := GetPresupuestos;
+ end
+ else
+ raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
+
+ if dtPresupuesto.DataTable.Active then
+ dtPresupuesto.DataTable.Active := False;
+ with dtPresupuesto.DataTable.Where do
+ begin
+ Clear;
+ for i := 0 to aObj.SelectedRows.Count - 1 do
+ begin
+ ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
+ if i > 0 then
+ AddOperator(opAND);
+ AddText('PRESUPUESTOS.' + fld_PresupuestosCODIGO + ' = ' + IntToStr(ASource.CODIGO));
+ end;
+ end;
+ Result := dtPresupuesto;
+end;
+
+function TdmPresupuestos.SetReferencia(APresupuesto: IBizPresupuestos; Referencia: Variant): Boolean;
+begin
+ Result:= False;
+ try
+ if not (APresupuesto.DataTable.State in dsEditModes) then
+ APresupuesto.DataTable.Edit;
+ APresupuesto.DataTable.FieldByName(fld_PresupuestosREFERENCIA).AsVariant := Referencia;
+ APresupuesto.Post;
+ Result:= True;
+ except
+ end;
+end;
+
+procedure TdmPresupuestos.Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
+var
+ AStream: TROBinaryMemoryStream;
+begin
+ AStream := (RORemoteService as IsrvPresupuestos).GenerateReport(Codigo, TamLetra);
+ lReport.PreviewPages.LoadFromStream(AStream);
+ lReport.ShowPreparedReport;
+end;
+
+initialization
+ dmPresupuestos := TdmPresupuestos.Create(nil);
+
+finalization
+ FreeAndNil(dmPresupuestos);
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.ddp b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.dfm
new file mode 100644
index 0000000..5c69d0c
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.dfm
@@ -0,0 +1,211 @@
+inherited fEditorPresupuesto: TfEditorPresupuesto
+ Left = 432
+ Top = 180
+ Width = 765
+ Height = 680
+ Caption = 'Nuevo presupuesto de cliente'
+ Constraints.MinWidth = 765
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Width = 757
+ Caption = 'Nuevo presupuesto de cliente'
+ inherited Image1: TImage
+ Left = 730
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF
+ 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301
+ BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A
+ 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741
+ EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD
+ 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D
+ 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C
+ D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361
+ F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38
+ 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3
+ 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6
+ C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1
+ BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805
+ 00F0E629EF34B079A30000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ Width = 757
+ inherited tbxMain: TTBXToolbar
+ inherited TBXItem2: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem1: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem5: TTBXItem
+ Visible = False
+ end
+ end
+ inherited tbxMenu: TTBXToolbar
+ inherited TBXSubmenuItem4: TTBXSubmenuItem
+ inherited TBXItem8: TTBXItem
+ Visible = False
+ end
+ inherited TBXSeparatorItem5: TTBXSeparatorItem
+ Visible = False
+ end
+ inherited TBXItem10: TTBXItem
+ Visible = False
+ end
+ end
+ end
+ end
+ inherited pgPaginas: TPageControl
+ Width = 757
+ Height = 428
+ ActivePage = pagPlanos
+ TabOrder = 1
+ inherited pagGeneral: TTabSheet
+ inline frViewPresupuesto1: TfrViewPresupuesto
+ Left = 0
+ Top = 0
+ Width = 749
+ Height = 400
+ Align = alClient
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited frViewPlazoEntrega1: TfrViewPlazoEntrega
+ Constraints.MinWidth = 0
+ end
+ inherited frViewObservaciones1: TfrViewObservaciones
+ Constraints.MinWidth = 0
+ end
+ inherited frViewFormaPago1: TfrViewFormaPago
+ Constraints.MinWidth = 0
+ end
+ inherited frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto
+ inherited Bevel2: TBevel
+ Width = 276
+ end
+ end
+ inherited frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto
+ inherited Bevel1: TBevel
+ Width = 313
+ end
+ inherited ToolBar1: TToolBar
+ Width = 369
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ Properties.OnChange = frViewClientePresupuesto1edtlNombrePropertiesChange
+ end
+ end
+ end
+ end
+ object pagContenido: TTabSheet
+ Caption = 'Contenido'
+ ImageIndex = 1
+ inline frViewDetallesPresupuesto1: TfrViewDetallesPresupuesto
+ Left = 0
+ Top = 0
+ Width = 749
+ Height = 400
+ 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 = 749
+ Height = 375
+ end
+ inherited ToolBar1: TToolBar
+ Width = 749
+ inherited ToolButton4: TToolButton
+ Left = 323
+ Wrap = False
+ end
+ inherited ToolButton5: TToolButton
+ Left = 331
+ Top = 0
+ end
+ inherited ToolButton6: TToolButton
+ Left = 436
+ Top = 0
+ end
+ end
+ end
+ end
+ object pagPlanos: TTabSheet
+ Caption = 'Planos'
+ ImageIndex = 2
+ end
+ end
+ inherited StatusBar: TStatusBar
+ Top = 626
+ Width = 757
+ Height = 20
+ end
+ inline frViewTotales1: TfrViewTotales [4]
+ Left = 0
+ Top = 504
+ Width = 757
+ Height = 122
+ Align = alBottom
+ Constraints.MaxHeight = 122
+ Constraints.MinHeight = 122
+ Constraints.MinWidth = 730
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited TabControl1: TTabControl
+ Width = 757
+ inherited GroupBox1: TGroupBox
+ inherited lblBase: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit3: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit4: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit5: TcxDBCurrencyEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit1: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ inherited cxCurrencyEdit2: TcxDBSpinEdit
+ Style.IsFontAssigned = True
+ end
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [5]
+ Top = 152
+ end
+ inherited SmallImages: TPngImageList [7]
+ end
+ inherited JvFormStorage: TJvFormStorage [8]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [9]
+ end
+ inherited dsDataTable: TDADataSource
+ Top = 152
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.pas
new file mode 100644
index 0000000..3d3f12f
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPresupuesto.pas
@@ -0,0 +1,197 @@
+unit uEditorPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
+ TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
+ JvNavigationPane, uEditorDBItem, DB, uDADataTable, uBizPresupuestosCliente,
+ uViewPresupuesto, uCustomView, uViewBase, uViewTotales, uViewGrid,
+ uViewContenido, TBXDkPanels, ExtCtrls, uDAScriptingProvider,
+ uDACDSDataTable, uViewMensaje, JvAppStorage, JvAppRegistryStorage,
+ JvFormPlacement, uViewDetallesPresupuesto, pngimage, StdCtrls, Mask,
+ DBCtrls, uViewDetallesFamilias, uViewDocumentosAsociados, uBizDocumentosAsociados,
+ JvComponentBase;
+
+type
+ IEditorPresupuesto = interface(IEditorDBItem)
+ ['{E06BB9E1-A95D-4983-B08D-6E1719C48D91}']
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ end;
+
+ TfEditorPresupuesto = class(TfEditorDBItem, IEditorPresupuesto)
+ pagContenido: TTabSheet;
+ pagPlanos: TTabSheet;
+ frViewDetallesPresupuesto1: TfrViewDetallesPresupuesto;
+ frViewTotales1: TfrViewTotales;
+ frViewPresupuesto1: TfrViewPresupuesto;
+ procedure FormShow(Sender: TObject);
+ procedure actEliminarExecute(Sender: TObject);
+ procedure frViewClientePresupuesto1edtlNombrePropertiesChange(
+ Sender: TObject);
+ private
+ FPresupuesto : IBizPresupuestos;
+ FViewPresupuesto : IViewPresupuesto;
+ FViewDocumentosPresupuesto : IViewDocumentosAsociados;
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+
+ function GetViewPresupuesto: IViewPresupuesto;
+ procedure SetViewPresupuesto(const Value: IViewPresupuesto);
+ property ViewPresupuesto: IViewPresupuesto read GetViewPresupuesto write
+ SetViewPresupuesto;
+
+ //DOCUMENTOS ASOCIADOS
+{ function GetViewDocumentosPresupuesto: IViewDocumentosAsociados;
+ procedure SetViewDocumentosPresupuesto(const Value: IViewDocumentosAsociados);
+ property ViewDocumentosPresupuesto: IViewDocumentosAsociados read GetViewDocumentosPresupuesto write
+ SetViewDocumentosPresupuesto;
+}
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ uEditorUtils;
+
+function ShowEditorPresupuesto (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuesto;
+begin
+ AEditor := TfEditorPresupuesto.Create(Application);
+ try
+ AEditor.Presupuesto := (ABizObject as IBizPresupuestos);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPresupuesto }
+
+function TfEditorPresupuesto.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+function TfEditorPresupuesto.GetViewPresupuesto: IViewPresupuesto;
+begin
+ Result := FViewPresupuesto;
+end;
+
+procedure TfEditorPresupuesto.SetPresupuesto(const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+
+ if Assigned(FPresupuesto) then
+ begin
+ dsDataTable.DataTable := FPresupuesto.DataTable;
+ frViewTotales1.DADataSource.DataTable := FPresupuesto.DataTable;
+ frViewDetallesPresupuesto1.DADataSource.DataTable := FPresupuesto.Detalles.DataTable;
+
+ if Assigned(FViewPresupuesto) then
+ FViewPresupuesto.Presupuesto := Presupuesto;
+
+ //DOCUMENTOS ASOCIADOS
+{ if Assigned(FViewDocumentosPresupuesto) then
+ begin
+ FViewDocumentosPresupuesto.GestorDocumentos := (Presupuesto as IBizDocumentosAsociados).GestorDocumentos;
+ FViewDocumentosPresupuesto.GestorDocumentos.ModoInsert := (Presupuesto.DataTable.State = dsInsert);
+ end;}
+ end;
+end;
+
+procedure TfEditorPresupuesto.SetViewPresupuesto(
+ const Value: IViewPresupuesto);
+begin
+ FViewPresupuesto := Value;
+
+ if Assigned(FViewPresupuesto) and Assigned(Presupuesto) then
+ FViewPresupuesto.Presupuesto := Presupuesto;
+end;
+
+procedure TfEditorPresupuesto.FormShow(Sender: TObject);
+begin
+ inherited;
+
+ if not Assigned(FViewPresupuesto) then
+ raise Exception.Create('No hay ninguna vista asignada');
+
+ if not Assigned(Presupuesto) then
+ raise Exception.Create('No hay ningún presupuesto asignado');
+
+ Presupuesto.DataTable.Active := True;
+// FViewPresupuesto.ShowEmbedded(pagGeneral);
+// FViewPresupuesto.SetFocus;
+end;
+
+constructor TfEditorPresupuesto.Create(AOwner: TComponent);
+begin
+ inherited;
+// ViewPresupuesto := CreateView(TfrViewPresupuesto) as IViewPresupuesto;
+ pgPaginas.ActivePageIndex := 0;
+ ViewPresupuesto := frViewPresupuesto1;
+
+ //DOCUMENTOS ASOCIADOS
+// ViewDocumentosPresupuesto := frViewDocumentosAsociados;
+end;
+
+destructor TfEditorPresupuesto.Destroy;
+begin
+ FViewPresupuesto := NIL;
+ FPresupuesto := NIL;
+
+ //DOCUMENTOS ASOCIADOS
+// FViewDocumentosPresupuesto := NIL;
+
+ inherited;
+end;
+
+procedure TfEditorPresupuesto.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ inherited;
+end;
+
+procedure TfEditorPresupuesto.frViewClientePresupuesto1edtlNombrePropertiesChange(
+ Sender: TObject);
+begin
+ inherited;
+ if Length(frViewPresupuesto1.frViewClientePresupuesto1.edtlNombre.Text) = 0 then
+ JvNavPanelHeader.Caption := 'Nuevo presupuesto de cliente'
+ else
+ JvNavPanelHeader.Caption := 'Presupuesto de ' +
+ frViewPresupuesto1.frViewClientePresupuesto1.edtlNombre.Text +
+ ' (' + FPresupuesto.SITUACION + ')';
+ Caption := JvNavPanelHeader.Caption;
+end;
+
+{function TfEditorPresupuesto.GetViewDocumentosPresupuesto: IViewDocumentosAsociados;
+begin
+ Result := FViewDocumentosPresupuesto;
+end;
+
+procedure TfEditorPresupuesto.SetViewDocumentosPresupuesto(const Value: IViewDocumentosAsociados);
+begin
+ FViewDocumentosPresupuesto := Value;
+
+ if Assigned(FViewDocumentosPresupuesto) and Assigned(Presupuesto) then
+ FViewDocumentosPresupuesto.GestorDocumentos := (Presupuesto as IBizDocumentosASociados).GestorDocumentos;
+end;}
+
+initialization
+ RegisterEditor(IBizPresupuestos, ShowEditorPresupuesto, etItem);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.ddp b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.dfm b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.dfm
new file mode 100644
index 0000000..966ae64
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.dfm
@@ -0,0 +1,1378 @@
+inherited fEditorPresupuestos: TfEditorPresupuestos
+ Left = 342
+ Top = 275
+ Caption = 'Lista de presupuestos'
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited JvNavPanelHeader: TJvNavPanelHeader
+ Caption = 'Lista de presupuestos'
+ inherited Image1: TImage
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800
+ 0000180806000000E0773DF80000000970485973000017120000171201679FD2
+ 520000000467414D410000AA11B57D14DC000001CC4944415478DA63FCFFFF3F
+ 032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80F83F980601
+ 0BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF356EF6198BF
+ 64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3EC21660F301
+ BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07FFFF01C31A
+ 88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F7013100E48B4741
+ EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D80048CF4CD5CD
+ 0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E783890A1B18761D
+ 3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F63107E74E727C
+ D02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF82D08753361
+ F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359BEE4CF5C38
+ 3F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2072C062CF3
+ 73EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E78148835F888B6
+ C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5DF7F11C5F1
+ BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A0C87019805
+ 00F0E629EF34B079A30000000049454E44AE426082}
+ end
+ end
+ inherited TBXDock: TTBXDock
+ inherited tbxFiltro: TTBXToolbar
+ Left = 459
+ end
+ end
+ inline frViewBarraSeleccion: TfrViewBarraSeleccion [3]
+ Left = 0
+ Top = 395
+ Width = 707
+ Height = 37
+ Align = alBottom
+ AutoScroll = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Visible = False
+ ReadOnly = False
+ inherited pnlSeleccion: TPanel
+ Top = 0
+ Width = 707
+ inherited bSeleccionar: TButton
+ Left = 550
+ end
+ inherited bCancelar: TButton
+ Left = 629
+ end
+ end
+ inherited ActionListSeleccion: TActionList
+ inherited actSeleccionar: TAction
+ OnExecute = frViewBarraSeleccionactSeleccionarExecute
+ OnUpdate = frViewBarraSeleccionactSeleccionarUpdate
+ end
+ end
+ end
+ inherited EditorActionList: TActionList [4]
+ inherited actNuevo: TAction
+ ImageIndex = 21
+ OnExecute = actNuevoExecute
+ 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
+ 610000000970485973000017120000171201679FD252000001034944415478DA
+ 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
+ 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
+ 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
+ 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
+ 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
+ 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
+ B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
+ F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
+ 7A68BA98860000000049454E44AE426082}
+ Name = 'PngImage20'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage21'
+ 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
+ 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
+ F80000000970485973000017120000171201679FD252000001CC4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3
+ 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E
+ C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07
+ FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131
+ 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800
+ 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389
+ 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631
+ 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8
+ 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359
+ BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2
+ 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814
+ 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5
+ DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A
+ 0C8701980500F0E629EF34B079A30000000049454E44AE426082}
+ Name = 'PngImage21'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited JvFormStorage: TJvFormStorage [7]
+ end
+ inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
+ end
+ inherited dsDataTable: TDADataSource [9]
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.pas b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.pas
new file mode 100644
index 0000000..52fb1c0
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPresupuestos.pas
@@ -0,0 +1,205 @@
+unit uEditorPresupuestos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ uCustomEditor, uEditorGrid, uBizPresupuestosCliente, ImgList,
+ PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
+ TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
+ uViewPresupuestos, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
+ uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
+ JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
+ uViewBase, uViewBarraSeleccion, JvComponentBase;
+
+type
+ IEditorPresupuestos = interface(IEditorGrid)
+ ['{7E6689A4-BEE7-4B36-80D8-411FA1B344F7}']
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+ TfEditorPresupuestos = class(TfEditorGrid, IEditorPresupuestos)
+ frViewBarraSeleccion: TfrViewBarraSeleccion;
+ procedure actEliminarExecute(Sender: TObject);
+ procedure actModificarExecute(Sender: TObject);
+ procedure actNuevoExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
+ procedure actDuplicarExecute(Sender: TObject);
+ procedure frViewBarraSeleccionactSeleccionarUpdate(Sender: TObject);
+ private
+ FPresupuestos: IBizPresupuestos;
+ protected
+ function GetPresupuestos: IBizPresupuestos;
+ function GetSelectionBarVisible: Boolean;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ procedure SetSelectionBarVisible(const Value: Boolean);
+ procedure SetViewGrid(const Value: IViewGrid); override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ property SelectionBarVisible: Boolean read GetSelectionBarVisible write
+ SetSelectionBarVisible;
+ end;
+
+var
+ fEditorPresupuestos : TfEditorPresupuestos;
+
+implementation
+
+uses uDataModulePresupuestos, uEditorUtils, uEditorBase;
+
+{$R *.DFM}
+
+function ShowEditorPresupuestos (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuestos;
+begin
+ AEditor := TfEditorPresupuestos.Create(Application);
+ try
+ AEditor.Presupuestos := (ABizObject as IBizPresupuestos);
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+function ShowSelectEditorPresupuestos (ABizObject : TDADataTableRules) : TModalResult;
+var
+ AEditor: TfEditorPresupuestos;
+begin
+ AEditor := TfEditorPresupuestos.Create(Application);
+ try
+ AEditor.Presupuestos := (ABizObject as IBizPresupuestos);
+ AEditor.SelectionBarVisible := True;
+ Result := AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ end;
+end;
+
+{ TfEditorPresupuestos }
+
+{
+***************************** TfEditorPresupuestos *****************************
+}
+constructor TfEditorPresupuestos.Create(AOwner: TComponent);
+begin
+ inherited;
+ ViewGrid := CreateView(TfrViewPresupuestos) as IViewPresupuestos;
+end;
+
+destructor TfEditorPresupuestos.Destroy;
+begin
+ FPresupuestos := NIL;
+ inherited;
+end;
+
+procedure TfEditorPresupuestos.actEliminarExecute(Sender: TObject);
+begin
+ if (Application.MessageBox('¿Desea borrar este presupuesto?', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ inherited;
+ ViewGrid.RefreshGrid;
+ end;
+end;
+
+procedure TfEditorPresupuestos.actModificarExecute(Sender: TObject);
+begin
+ inherited;
+ Presupuestos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPresupuestos.actNuevoExecute(Sender: TObject);
+begin
+ inherited;
+ Presupuestos.Insert;
+ Presupuestos.Show;
+ ViewGrid.RefreshGrid;
+ ViewGrid.SyncFocusedRecordsFromDataSet;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionactSeleccionarExecute(
+ Sender: TObject);
+begin
+ inherited;
+ if (Presupuestos.DataTable.RecordCount > 0) then
+ begin
+ ViewGrid.SyncFocusedRecordsFromGrid;
+ ModalResult := mrOK;
+ end;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionbCancelarClick(Sender:
+ TObject);
+begin
+ inherited;
+ frViewBarraSeleccion.actCancelarExecute(Sender);
+end;
+
+function TfEditorPresupuestos.GetPresupuestos: IBizPresupuestos;
+begin
+ Result := FPresupuestos;
+end;
+
+function TfEditorPresupuestos.GetSelectionBarVisible: Boolean;
+begin
+ Result := frViewBarraSeleccion.Visible
+end;
+
+procedure TfEditorPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
+begin
+ FPresupuestos := Value;
+ dsDataTable.DataTable := FPresupuestos.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
+end;
+
+procedure TfEditorPresupuestos.SetSelectionBarVisible(const Value: Boolean);
+begin
+ frViewBarraSeleccion.Visible := True;
+ ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
+end;
+
+procedure TfEditorPresupuestos.SetViewGrid(const Value: IViewGrid);
+begin
+ inherited;
+ if Assigned(ViewGrid) and Assigned(Presupuestos) then
+ (ViewGrid as IViewPresupuestos).Presupuestos := Presupuestos;
+end;
+
+procedure TfEditorPresupuestos.actDuplicarExecute(Sender: TObject);
+var
+ APresupuesto : IBizPresupuestos;
+begin
+ inherited;
+ APresupuesto := dmPresupuestos.GetPresupuesto(Presupuestos.CODIGO);
+ Presupuestos.Insert;
+ Presupuestos.CopyFrom(APresupuesto);
+ Presupuestos.DataTable.ApplyUpdates;
+ ViewGrid.RefreshGrid;
+ ViewGrid.GotoFirst;
+end;
+
+procedure TfEditorPresupuestos.frViewBarraSeleccionactSeleccionarUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := (Presupuestos.DataTable.RecordCount > 0);
+end;
+
+initialization
+ RegisterEditor(IBizPresupuestos, ShowEditorPresupuestos, etItems);
+ RegisterEditor(IBizPresupuestos, ShowSelectEditorPresupuestos, etSelectItems);
+
+finalization
+
+end.
+
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.ddp b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.dfm
new file mode 100644
index 0000000..dc09f54
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.dfm
@@ -0,0 +1,440 @@
+inherited fEditorPreviewPresupuesto: TfEditorPreviewPresupuesto
+ OnCreate = CustomEditorCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited TBXDock: TTBXDock
+ inherited TBXToolbar1: TTBXToolbar
+ object TBXItem38: TTBXItem
+ Action = actAumentarTamLetra
+ Images = PreviewSmallImageList
+ end
+ object TBXItem43: TTBXItem
+ Action = actDisminuirTamLetra
+ Images = PreviewSmallImageList
+ end
+ end
+ end
+ inherited PreviewActionList: TActionList
+ object actAumentarTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 11
+ OnExecute = actAumentarTamLetraExecute
+ end
+ object actDisminuirTamLetra: TAction
+ Category = 'Tools'
+ ImageIndex = 12
+ OnExecute = actDisminuirTamLetraExecute
+ end
+ end
+ inherited 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
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F330000010A4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001ABF88321E3FEFBEF40CE8DFF8CB80C00299C0FC40EA09007E22540
+ 3C151A130B9E7FCF4878033440E7210E0370819F868CFF41368334BF0426AD47
+ 1F19187EFD252129BFD060FC8FAE19EC622C5E900352CF8001F607C8D607B21F
+ 01D9EF61F2F35918FF8334A7FF27D10BB0509F018C0C103B03C805D1009D9F97
+ 36069839440000000049454E44AE426082}
+ Name = 'PngImage11'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068
+ 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
+ F73EE77CFEFC2FF784F3FB25D29F33000000EC4944415478DA63FCFFFF3F0325
+ 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8
+ 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8
+ 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1
+ 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE
+ 46062FA001AB0834E4012103400AE703B10328E4817809104F85C6C402A00189
+ 0463011BF869C8F8FFFD7706863740FC1298B41E7D6460F8F59784A4FC4283F1
+ 3FBA66B02BB078410E483D033AF50F90AD0F643F02B2DF633394242FE00200A6
+ 308833CD7332EF0000000049454E44AE426082}
+ Name = 'PngImage12'
+ Background = clWindow
+ end>
+ Bitmap = {}
+ end
+ inherited frxReport1: TfrxReport
+ Datasets = <>
+ Variables = <>
+ Style = <>
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.pas
new file mode 100644
index 0000000..fce2f92
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uEditorPreviewPresupuesto.pas
@@ -0,0 +1,72 @@
+unit uEditorPreviewPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl,
+ frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
+ frxChart, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage,
+ JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
+ ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock,
+ TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
+ JvNavigationPane;
+
+const
+ CTE_TamLetraIni = 10;
+ CTE_TamLetraMin = 5;
+ CTE_TamLetraMax = 30;
+ CTE_Aumento = 2;
+
+type
+ TfEditorPreviewPresupuesto = class(TfEditorPreview)
+ TBXItem38: TTBXItem;
+ actAumentarTamLetra: TAction;
+ TBXItem43: TTBXItem;
+ actDisminuirTamLetra: TAction;
+ procedure CustomEditorCreate(Sender: TObject);
+
+ procedure actAumentarTamLetraExecute(Sender: TObject);
+ procedure actDisminuirTamLetraExecute(Sender: TObject);
+ private
+ FCodigo: Integer;
+ TamLetra: Integer;
+ public
+ property Codigo: Integer read FCodigo write FCodigo;
+ end;
+
+var
+ fEditorPreviewPresupuesto: TfEditorPreviewPresupuesto;
+
+implementation
+{$R *.dfm}
+
+uses uDataModulePresupuestos;
+
+procedure TfEditorPreviewPresupuesto.actAumentarTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra >= CTE_TamLetraMax) then
+ Exit;
+
+ TamLetra := TamLetra + CTE_Aumento;
+ dmPresupuestos.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+procedure TfEditorPreviewPresupuesto.CustomEditorCreate(Sender: TObject);
+begin
+ inherited;
+ TamLetra := CTE_TamLetraIni;
+end;
+
+procedure TfEditorPreviewPresupuesto.actDisminuirTamLetraExecute(Sender: TObject);
+begin
+ //Si sale de los límites de tamaño de letra no hacemos nada
+ if (TamLetra <= CTE_TamLetraMin) then
+ Exit;
+
+ TamLetra := TamLetra - CTE_Aumento;
+ dmPresupuestos.Refrescar(Self.Report, Codigo, TamLetra);
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uObservaciones.dfm b/Modulos/Presupuestos_/Cliente/uObservaciones.dfm
new file mode 100644
index 0000000..a744ce9
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uObservaciones.dfm
@@ -0,0 +1,47 @@
+inherited frViewObservaciones: TfrViewObservaciones
+ Width = 300
+ Constraints.MinWidth = 300
+ DesignSize = (
+ 300
+ 240)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 85
+ Height = 13
+ Caption = 'Observaciones'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 96
+ Top = 8
+ Width = 192
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object memObservaciones: TcxDBMemo
+ Left = 16
+ Top = 32
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ DataBinding.DataField = 'OBSERVACIONES'
+ DataBinding.DataSource = DADataSource
+ Properties.ScrollBars = ssVertical
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Height = 193
+ Width = 269
+ end
+ object DADataSource: TDADataSource
+ Left = 16
+ Top = 48
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uObservaciones.pas b/Modulos/Presupuestos_/Cliente/uObservaciones.pas
new file mode 100644
index 0000000..671c51f
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uObservaciones.pas
@@ -0,0 +1,26 @@
+unit uObservaciones;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
+ cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
+
+type
+ TfrViewObservaciones = class(TfrViewBase)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ memObservaciones: TcxDBMemo;
+ DADataSource: TDADataSource;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.dfm b/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.dfm
new file mode 100644
index 0000000..926c517
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.dfm
@@ -0,0 +1,215 @@
+object ModulePresupuestos: TModulePresupuestos
+ OldCreateOrder = True
+ DefaultAction = actPresupuestos
+ Description = 'Ventas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Presupuestos'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Left = 652
+ Top = 457
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000002744944415478DA
+ 63FCFFFF3F032D01E3F0B060F9D6D334B3056E41A4B729491AFFFCFDCFF0F7EF
+ 3F869FBFFE80E93FFFFE8169301B887FFDFECB109E5E876A41E249438206FF05
+ AAFFF5F72FC3AF3F7FC0F4975FBF207C10065A02932BFAB59C61DED24D9816CC
+ 373F8F6291F45B6F8626CF660C8BFE010D0361CFD5F60C1F791E800DBF14F082
+ 4169A520D8928ABFAB705B00022036B2E11718CF33189F346660B809E4A83330
+ 9C353FCBA0F9438BE117D007415B3C189EB2DF66B811FC1AAC566C3137431DC3
+ 5AFC3E8019CE7C8A89E1AFD93F300D32FC6CDC5906E379408BB419183EEB7C61
+ E0BDC2C3F05AE50D43F84E5F86BD51C718841771817DD0CEB211BB05E841C3BC
+ 1C684124D082C54C10C39719339C8D02D2B38C193E447C6410D8C2CFF0C2E525
+ 43D49E00860B7F2EC0E3A3977D0B911620FBE02A508203887F30807DF056ED1D
+ 83F02D218627324F18E20E86329CFA79166EC164AEEDF82D40B6E42F50C36596
+ 4B9038B80894D087C481DC5B79869F3F7E60180E02382D404E4520C58A1FFC18
+ 6A9C6BC196FC03A7F5BF700CE247EF0D841BFE33E50F03E34C46FC16C0003C6D
+ 03B1CCB31F0C5325B4B1E60BDE877B505C0E03582D40CFA57FA039F3EA444D06
+ 09A7200645CB1E86FBC74BC06A5EDC0726E7FBF719E6EE7BCE30A7DA09C3E229
+ 4F73312D98B2780756570A7E3BC7A0F4660ED8307450DD928DD3E273AC89080B
+ BA27CF27584C9C2B7B88553CA5751FA65AA0E12000B680919191A0E1C75A14FF
+ 93124C404BC3E6EEFBB19A140B4281D42A6CC13467EF77AC96022D6024CA0290
+ E196969AABB0C91D3F7E1D6BDC008101D0828BC45A803778402EC5A597681FE0
+ 0A1E200087355E0B6809686E0100FA3E2AAB1481BE0E0000000049454E44AE42
+ 6082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F80000000970485973000017120000171201679FD252000001CC4944415478DA
+ 63FCFFFF3F032D0123B2058B361EA79A6D71FE968C582D004A906CD8DFBFFF80
+ F83F9806010BDF6C868B7B66E1B6C0752FAA25BB9D8FE3341C59ED5A8B030CF3
+ 56EF6198BF64237E0B4871B9C7016B0659651686F9DB8E30BC8BFEC6B070FD3E
+ C21660F301BA18086CB53DC2E07DD88661CFCD1360FEEB882F0C4B361DA0CC07
+ FFFF01C31A88FF005D0F62FFFE070CFF3FFFC0BEF9F3EF2FC38A2D8749F70131
+ 00E48B4741EF18D6EE38469C05306F9302EEFBBF61D8B0FB047116E04B39D800
+ 48CF4CD5CD0C9BF69D24DE025C4105B31C260F533B4D7913C3D603A768E78389
+ 0A1B18761D3E433B1FF4C9AC63D87BFC1CED7CD02DB986E1C0A90BF82D88F631
+ 07E74E727CD02EBE8AE1C8994BF82D88F03403E74E727CD024BC9CE1E485ABF8
+ 2D08753361F03B66479605F5024B19CE5CBE8EDF8200172386E0130E780D0359
+ BEE4CF5C383F8625196C410DEF6286F3D76EE2B7C0D7C1005EAE40CAF97FE0B2
+ 072C062CF373EFFB63C40F8C5FC9BD88E1D28D5BF82DF0B2D5C36938882E7814
+ 8835F888B6C0CD5A1BA7E1A012B4E46930CEA023CA0247730DB061FFFE428AE5
+ DF7F11C5F1BFFF508BFEFD437104322068819D891AB844A404E0B5A077F27C8A
+ 0C8701980500F0E629EF34B079A30000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = LargeImages
+ Left = 40
+ Top = 72
+ object actPresupuestos: TAction
+ Category = 'Ventas'
+ Caption = 'Presupuestos de cliente'
+ ImageIndex = 1
+ OnExecute = actPresupuestosExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Tag = 400
+ Caption = '&Ventas'
+ GroupIndex = 1
+ ImageIndex = 0
+ object N1: TMenuItem
+ Tag = 1999
+ Caption = '-'
+ end
+ object Presupuestosdecliente1: TMenuItem
+ Tag = 2000
+ Action = actPresupuestos
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000011A4944415478DA
+ 63FCFFFF3F032580916203966D3945B60991DEA68C6003D4BD9919269F4CC6AA
+ E8F7DFBF0CDFFFFC61F8F6FB37C3C71F3FC0ECB9FE5B19523CE6309CDB310D61
+ 0008C00C996B760EC3209B6D7270CD208062C02E9134B8429866E6534C1081AB
+ 0C0C7F13FF81999A6B4519BE035D02728DDCB204220CB80A118319A0B04200AC
+ 19843556A762370024B9DCFA328617903583BC62B83E13350C40FE074B421581
+ 70EF05569C31907DD8036140F7E4F9180AA6DAEE60B04CAE6660905064F8717C
+ 2AC3F97DE719E6EE7BCE30A5C50BCE9EB3F73B23232E1B8EB528861E7CADB6EA
+ CEE58358E5939D24C32CABEFADC667C07F8A5D00A456811452D505208D5635F7
+ 5783D480F211C92E98BBEF075C0FD8004A73230074DEE0E1BE54FBD500000000
+ 49454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ 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
+ 940000000970485973000017120000171201679FD252000002D84944415478DA
+ ED946D48535118C7FF57855EB4171542B01756516845C868B63E4A1F2A7B1996
+ 990B845008EA637DD2A828F34BF521D220C98484C28232B24C302329456D380D
+ A99C75035FB6A5B3E9ACAEBA7BD773CF4D9BEE6E6E23F6217AE0F09C73EE73CE
+ EF79CEFF9CCB793C1E44D2B8FFC07F0378EF697BC4A833C0DCCC6D616DE0163D
+ 104589BCC43CEB4B5E7DE62986E6728E9F9D0D3CD69A163448A47593A28849B7
+ 5BF1731B01A6BFD7E97AC0F70DA0B0A4DC175899DE310B9CECC8C485DD17FD82
+ 25DA58621589D8FB3003A3715F18ACCB60C3DAEA7806ADD759D03768F50F944D
+ EEABC1CC5C07B4AD5AE0230D3602A6741352845406945B56ED2E0C2CB0E0C3C1
+ 2116BFA22A160DBA5E0CDAED812BF48645B745013C1D638EA4F40966CA33417B
+ 9BC09B00D7E6712C791C07AC0386D60F23A77E1F5E189B91786731ABB029FD33
+ ECC343EA40B5A38CAE268844C05C02564529B0BB5A988CE4CBB5701E19C5F2DA
+ 652CD6B6D30E63830166B77946CFD7DB7938461C2100E5AA2C043CFABBC26E9A
+ 5C484D00ABD0B16104897509ACC2FE95FDC87B958DB609D30CF08D8EC798CB19
+ 18A87661648DDEC574291A76D2C45645C3D58E35EC9B7B6ACA07265B93F613BE
+ FF189BFF96CA0B34CEFD0C2A6F386EEB467C4F61C0E7B2CADC80AF4B454C14B8
+ C1DDE4D8DCCB340B04613C70856A6FABB81DD0E71701491A128B677102FF8C79
+ 276F65FE4C45076E1565CC4AE291EB0416C527FB02E7FB7BF4DED882A48C2C68
+ F457C0B79C562E09AF3C23F04A02158D569416EFF149E2D0B9165FE0F32673C0
+ E31AB0BC45AAAD846DAA66D66F024ACB4EA9262103CBAE5DFD03BC7CBD12C158
+ 72AC0B4F4E8E048C29B8D4E83DAC791F73C0F0934B600306E4382E28986CCDC5
+ 1A4FA83A5202872B1A8507610383D5D13B010272E102B3694323750D7E426AF2
+ F37718E62610165086E9F529F743D08F2540ED3C013BC30106A5DF74356A1632
+ 3018FDFE26705EFDBC8FCF2F30921671E02FBE648AC22CC7AE57000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 940000000970485973000017120000171201679FD252000002974944415478DA
+ BDD6CB6F12411800F00FEBCD180FC6C47830C6831A138BD8576C552A25A520D5
+ D896566B630F5E4D4CFC038C890713131313D3A451A9D08AA53CDB826B914240
+ 0A2DA520D2FAA889070F4D2F6AA2F1B8BB9FBBCB23D402B3B84D3F962C33ECCC
+ 6FBE9985591922C27686AC1874075784025F27BCD9EC778532F7128EDC67A1AD
+ 7020D4ECA829095CD1D5C9CA82AEC03276B59DF8EFD1B35C5F2C374886618161
+ 5968365C87B4C75A1E74CE66B05B5D0BAD81D39B3A0BB5CD9785FEBD9E6A09C3
+ 13AB1F4CCE317160B5C183CAA3EDF0950E82855A805F837F60C43E4B061D6FDE
+ 634FBBBC6C86A5EA83AA18A882CD105E5D2AD4FD1CF80D6657900CDA7D693468
+ 4E8ACE8C5F278641E1CCAF1D4DB3853ACB74880CDA7CEFB057A3289989D8E033
+ 5DEFFD01566F440438C3811D59B0788AAA8DB59EEF60A3E6C8E0C4EB14F6694F
+ 0960A5BBB252F06DC78E53E0F4C5C8A0954A22F743950C9A8E7961D2BF4006C7
+ A925BCAAAB2F8095D6323FA0E26BF26D8C473CE009C4C9E0CB5709ECBFD02039
+ C3E1C35330134E8800BD1CA8970E0E1D72833F92248316EF225ED3374A9ED2C7
+ 075D1088A6C8E00B4F1C073A9B2467F8E8800342F1B408703A8EFD9D8DC25F95
+ 14F0E17E1B44121932383A35CFAD6113A8432D92A6F4C1BE0988A596C5817DDA
+ 06D044CE4ACAF0FEDE7188A73F9041F3640C0D1DF5A08B2A2581F7F65820B9F2
+ 890C9ADC51BCACAE834B8BE74575CE0FCA4C1B0BE5C19D3704F0EE6E0EFAB82A
+ 0EBCA852E4B61C66C3E302C3661F1FE85CF9E6B7AE4DEB9C2FDFD9350A99CF5F
+ C8E073D71CEA5B15448CA1116EAD75979CF6AAC0116704754A3911E3CFB7D70D
+ 65A75A346874BC45ED393911DB30A0A21DBF384481CFEC61D49CA915F6B2AD08
+ 22F8D416C2A1B1E12DC1F25111DC8EF80B6B3D9AE763000D2B0000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.pas b/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.pas
new file mode 100644
index 0000000..3e00f50
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uPluginControllerPresupuestos.pas
@@ -0,0 +1,69 @@
+unit uPluginControllerPresupuestos;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCPresupuestos = interface(IInterface)
+ ['{E148CA5A-63A0-4BE8-B634-6E7A92A90F25}']
+ end;
+
+ TModulePresupuestos = class(TModuleController, IMCPresupuestos)
+ actPresupuestos: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ Presupuestosdecliente1: TMenuItem;
+ N1: TMenuItem;
+ procedure actPresupuestosExecute(Sender: TObject);
+ public
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uEditorPresupuestos,
+ uDataModulePresupuestos, uBizPresupuestosCliente;
+
+function GetModule : TModuleController;
+begin
+ Result := TModulePresupuestos.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TModulePresupuestos.actPresupuestosExecute(Sender: TObject);
+var
+ aObj: IEditorPresupuestos;
+ APresupuestos : IBizPresupuestos;
+begin
+ APresupuestos := dmPresupuestos.GetPresupuestos;
+ aObj := TfEditorPresupuestos.Create(Application);
+ try
+ with aObj do
+ begin
+ Presupuestos := APresupuestos;
+ ShowEmbedded;
+ end;
+ finally
+ APresupuestos := NIL;
+ aObj := NIL;
+ end;
+end;
+
+initialization
+ RegisterModuleClass(TModulePresupuestos);
+
+finalization
+ UnRegisterModuleClass(TModulePresupuestos);
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewContenido.dfm b/Modulos/Presupuestos_/Cliente/uViewContenido.dfm
new file mode 100644
index 0000000..9dd11ea
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewContenido.dfm
@@ -0,0 +1,288 @@
+inherited frViewContenido: TfrViewContenido
+ Width = 634
+ Height = 349
+ object cxGrid: TcxGrid
+ Left = 0
+ Top = 24
+ Width = 634
+ Height = 325
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object cxGridView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ OnCustomDrawCell = cxGridViewCustomDrawCell
+ DataController.DataSource = DADataSource
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = ',0.00 '#8364';-,0.00 '#8364
+ Kind = skSum
+ Column = cxGridViewIMPORTETOTAL
+ end>
+ DataController.Summary.SummaryGroups = <>
+ Filtering.Visible = fvNever
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.Appending = True
+ OptionsSelection.InvertSelect = False
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.Footer = True
+ OptionsView.GridLineColor = cl3DLight
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.Indicator = True
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewRecID: TcxGridDBColumn
+ DataBinding.FieldName = 'RecID'
+ Visible = False
+ Width = 49
+ end
+ object cxGridViewCODIGOPRESUPUESTO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGOPRESUPUESTO'
+ Visible = False
+ Width = 157
+ end
+ object cxGridViewNUMCONCEPTO: TcxGridDBColumn
+ DataBinding.FieldName = 'NUMCONCEPTO'
+ Visible = False
+ Width = 119
+ end
+ object cxGridViewPOSICION: TcxGridDBColumn
+ DataBinding.FieldName = 'POSICION'
+ Visible = False
+ SortIndex = 0
+ SortOrder = soAscending
+ Width = 93
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ DataBinding.FieldName = 'TIPO'
+ PropertiesClassName = 'TcxComboBoxProperties'
+ Properties.DropDownListStyle = lsFixedList
+ Properties.ImmediatePost = True
+ Properties.Items.Strings = (
+ 'A'
+ 'C'
+ 'S')
+ Width = 120
+ end
+ object cxGridViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Width = 101
+ end
+ object cxGridViewCANTIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'CANTIDAD'
+ PropertiesClassName = 'TcxSpinEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Width = 77
+ end
+ object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTEUNIDAD'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.UseThousandSeparator = True
+ Width = 124
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Properties.ReadOnly = True
+ Properties.UseThousandSeparator = True
+ Options.Editing = False
+ Options.Focusing = False
+ Options.Moving = False
+ Styles.Content = cxStyle_IMPORTETOTAL
+ Width = 107
+ end
+ end
+ object cxGridLevel: TcxGridLevel
+ GridView = cxGridView
+ end
+ end
+ object ToolBar1: TToolBar
+ Left = 0
+ Top = 0
+ Width = 634
+ Height = 24
+ AutoSize = True
+ ButtonWidth = 85
+ Caption = 'ToolBar1'
+ EdgeBorders = [ebBottom]
+ Flat = True
+ Images = ContenidoImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 1
+ Transparent = True
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actAnadir
+ AutoSize = True
+ ImageIndex = 0
+ end
+ object ToolButton2: TToolButton
+ Left = 62
+ Top = 0
+ Action = actEliminar
+ AutoSize = True
+ ImageIndex = 1
+ end
+ object ToolButton4: TToolButton
+ Left = 129
+ Top = 0
+ Action = RichEditBold1
+ AutoSize = True
+ end
+ object ToolButton5: TToolButton
+ Left = 180
+ Top = 0
+ Action = RichEditItalic1
+ end
+ object ToolButton6: TToolButton
+ Left = 265
+ Top = 0
+ Action = RichEditStrikeOut1
+ end
+ object ToolButton3: TToolButton
+ Left = 350
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 2
+ Style = tbsSeparator
+ end
+ object ToolButton7: TToolButton
+ Left = 358
+ Top = 0
+ Action = RichEditUnderline1
+ end
+ object ToolButton8: TToolButton
+ Left = 443
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton8'
+ ImageIndex = 5
+ Style = tbsSeparator
+ end
+ object ToolButton9: TToolButton
+ Left = 451
+ Top = 0
+ Caption = 'ToolButton9'
+ ImageIndex = 5
+ OnClick = ToolButton9Click
+ end
+ end
+ object ActionListContenido: TActionList
+ Images = ContenidoImageList
+ Left = 8
+ Top = 104
+ object actAnadir: TAction
+ Caption = 'A'#241'adir'
+ OnExecute = actAnadirExecute
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar'
+ OnExecute = actEliminarExecute
+ end
+ object RichEditBold1: TRichEditBold
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Bold'
+ Hint = 'Bold'
+ ImageIndex = 2
+ ShortCut = 16450
+ end
+ object RichEditItalic1: TRichEditItalic
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Italic'
+ Hint = 'Italic'
+ ImageIndex = 3
+ ShortCut = 16457
+ end
+ object RichEditUnderline1: TRichEditUnderline
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Underline'
+ Hint = 'Underline'
+ ImageIndex = 4
+ ShortCut = 16469
+ end
+ object RichEditStrikeOut1: TRichEditStrikeOut
+ Category = 'Formato'
+ AutoCheck = True
+ Caption = '&Strikeout'
+ Hint = 'Strikeout'
+ ImageIndex = 5
+ end
+ end
+ object DADataSource: TDADataSource
+ DataTable = dmPresupuestos.tbl_DetallesPresupuestos
+ Left = 8
+ Top = 136
+ end
+ object ContenidoImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000000D04944415478DA
+ 6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
+ 5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
+ 31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
+ FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
+ 77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
+ F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
+ 241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD2520000006E4944415478DA
+ 63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
+ C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
+ CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
+ 10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 264
+ Top = 40
+ Bitmap = {}
+ end
+ object cxStyleRepository1: TcxStyleRepository
+ Left = 264
+ Top = 80
+ object cxStyle_IMPORTETOTAL: TcxStyle
+ AssignedValues = [svColor]
+ Color = 16053492
+ end
+ object cxStyle_SUBTOTAL: TcxStyle
+ AssignedValues = [svFont, svTextColor]
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ TextColor = clHighlight
+ end
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.ddp b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.dfm
new file mode 100644
index 0000000..b7ee5fd
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.dfm
@@ -0,0 +1,119 @@
+inherited frViewDatosPresupuesto: TfrViewDatosPresupuesto
+ Width = 360
+ Height = 163
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 163)
+ object Bevel1: TBevel
+ Left = 144
+ Top = 8
+ Width = 205
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 128
+ Height = 13
+ Caption = 'Datos del presupuesto'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 56
+ Width = 64
+ Height = 13
+ Caption = 'Tipo presup.:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 80
+ Width = 73
+ Height = 13
+ Caption = 'Fecha presup.:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 104
+ Width = 62
+ Height = 13
+ Caption = 'V'#225'lido hasta:'
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 30
+ Width = 43
+ Height = 13
+ Caption = 'Montaje:'
+ end
+ object edtFechaPresupuesto: TcxDBDateEdit
+ Left = 100
+ Top = 76
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHAPRESUPUESTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ Style.Shadow = False
+ Style.ButtonTransparency = ebtNone
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object edtVigencia: TcxDBDateEdit
+ Left = 100
+ Top = 100
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'VIGENCIAPRESUPUESTO'
+ DataBinding.DataSource = DADataSource
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 245
+ end
+ object eReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 27
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Properties.OnEditValueChanged = eReferenciaPropertiesEditValueChanged
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.BorderStyle = ebs3D
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object cbTipoPresupuesto: TcxDBComboBox
+ Left = 100
+ Top = 51
+ DataBinding.DataField = 'TIPO'
+ DataBinding.DataSource = DADataSource
+ Properties.DropDownListStyle = lsFixedList
+ Properties.ImmediatePost = True
+ Properties.OnInitPopup = cbTipoPresupuestoPropertiesInitPopup
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 3
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 192
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.pas
new file mode 100644
index 0000000..9b49519
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewDatosPresupuesto.pas
@@ -0,0 +1,66 @@
+unit uViewDatosPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
+ Mask, DBCtrls, ExtCtrls, cxGraphics;
+
+type
+ TfrViewDatosPresupuesto = class(TfrViewBase)
+ Bevel1: TBevel;
+ Label5: TLabel;
+ Label1: TLabel;
+ Label2: TLabel;
+ edtFechaPresupuesto: TcxDBDateEdit;
+ Label3: TLabel;
+ edtVigencia: TcxDBDateEdit;
+ DADataSource: TDADataSource;
+ eReferencia: TcxDBTextEdit;
+ Label4: TLabel;
+ cbTipoPresupuesto: TcxDBComboBox;
+ procedure cbTipoPresupuestoPropertiesInitPopup(Sender: TObject);
+ procedure eReferenciaPropertiesEditValueChanged(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ frViewDatosPresupuesto: TfrViewDatosPresupuesto;
+
+implementation
+
+uses uBizPresupuestosCliente;
+
+{$R *.dfm}
+
+procedure TfrViewDatosPresupuesto.cbTipoPresupuestoPropertiesInitPopup(
+ Sender: TObject);
+begin
+ inherited;
+ with cbTipoPresupuesto.Properties.Items do
+ if Count = 0 then
+ begin
+ BeginUpdate;
+ try
+ Clear;
+ Add(TIPO_COCINA);
+ Add(TIPO_BANO);
+ finally
+ EndUpdate;
+ end;
+ end;
+end;
+
+procedure TfrViewDatosPresupuesto.eReferenciaPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ cbTipoPresupuesto.Enabled := not (Length(eReferencia.Text) > 0);
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.dfm
new file mode 100644
index 0000000..f6cf56f
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.dfm
@@ -0,0 +1,53 @@
+inherited frViewDetallesPresupuesto: TfrViewDetallesPresupuesto
+ inherited cxGrid: TcxGrid
+ inherited cxGridView: TcxGridDBTableView
+ OptionsSelection.InvertSelect = False
+ inherited cxGridViewTIPO: TcxGridDBColumn
+ Width = 40
+ end
+ inherited cxGridViewDESCRIPCION: TcxGridDBColumn
+ Width = 165
+ end
+ object cxGridViewPUNTOS: TcxGridDBColumn [3]
+ DataBinding.FieldName = 'PUNTOS'
+ PropertiesClassName = 'TcxMaskEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewIMPORTEPUNTOSStylesGetContentStyle
+ Width = 33
+ end
+ object cxGridViewIMPORTEPUNTOS: TcxGridDBColumn [4]
+ DataBinding.FieldName = 'IMPORTEPUNTOS'
+ PropertiesClassName = 'TcxCurrencyEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ Styles.OnGetContentStyle = cxGridViewIMPORTEPUNTOSStylesGetContentStyle
+ Width = 55
+ end
+ inherited cxGridViewCANTIDAD: TcxGridDBColumn
+ Properties.Alignment.Horz = taRightJustify
+ Width = 29
+ end
+ inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
+ Width = 43
+ end
+ inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ Width = 43
+ end
+ inherited cxGridViewVISIBLE: TcxGridDBColumn
+ Styles.OnGetContentStyle = cxGridViewVISIBLEStylesGetContentStyle
+ Width = 21
+ end
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ object cxStyle_PUNTOS: TcxStyle
+ AssignedValues = [svColor, svFont, svTextColor]
+ Color = 16053492
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ TextColor = clWindowText
+ end
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.pas
new file mode 100644
index 0000000..c8fd2df
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewDetallesPresupuesto.pas
@@ -0,0 +1,98 @@
+unit uViewDetallesPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, cxStyles, cxCustomData, cxGraphics,
+ cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox,
+ cxTextEdit, cxSpinEdit, ImgList, PngImageList, uDADataTable, ActnList,
+ ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
+ cxCheckBox, TB2Item, TBX, TB2Dock, TB2Toolbar, JvExComCtrls, JvToolBar,
+ uViewDetallesFamilias, cxMaskEdit, cxCurrencyEdit;
+
+type
+ TfrViewDetallesPresupuesto = class(TfrViewDetallesFamilias)
+ cxGridViewPUNTOS: TcxGridDBColumn;
+ cxGridViewIMPORTEPUNTOS: TcxGridDBColumn;
+ cxStyle_PUNTOS: TcxStyle;
+ procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
+ AItem: TcxCustomGridTableItem; var AAllow: Boolean);
+ procedure cxGridViewIMPORTEPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ procedure cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+
+implementation
+
+uses uBizImportesDetalleBase, uViewContenido;
+
+{$R *.dfm}
+
+procedure TfrViewDetallesPresupuesto.cxGridViewEditing(
+ Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
+ var AAllow: Boolean);
+var
+ IndiceCol : Integer;
+begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_IMPORTEPUNTOS).Index;
+ if AItem.Index = IndiceCol then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
+ AAllow := False
+ else
+ AAllow := True
+ end
+ else
+ inherited;
+end;
+
+procedure TfrViewDetallesPresupuesto.cxGridViewIMPORTEPUNTOSStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_CONCEPTO then
+ AStyle := cxStyle_PUNTOS;
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+procedure TfrViewDetallesPresupuesto.cxGridViewVISIBLEStylesGetContentStyle(
+ Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
+ AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol : Integer;
+ ATipo : String;
+begin
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
+ ATipo := VarToStr(ARecord.Values[IndiceCol]);
+ if ATipo = TIPODETALLE_SUBTOTAL then
+ AStyle := cxStyle_SUBTOTAL;
+ if ATipo = TIPODETALLE_TITULO then
+ AStyle := cxStyle_TITULO;
+ end;
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuesto.ddp b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.dfm
new file mode 100644
index 0000000..fee1611
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.dfm
@@ -0,0 +1,216 @@
+inherited frViewPresupuesto: TfrViewPresupuesto
+ Width = 751
+ Height = 380
+ inline frViewDatosPresupuesto1: TfrViewDatosPresupuesto
+ Left = 0
+ Top = 0
+ Width = 360
+ Height = 124
+ Constraints.MinHeight = 110
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ ReadOnly = False
+ inherited edtFechaPresupuesto: TcxDBDateEdit
+ Style.Color = clInfoBk
+ end
+ inherited eReferencia: TcxDBTextEdit
+ Enabled = False
+ Properties.ReadOnly = True
+ StyleDisabled.TextColor = clActiveCaption
+ end
+ inherited cbTipoPresupuesto: TcxDBComboBox
+ Style.Color = clInfoBk
+ end
+ inherited DADataSource: TDADataSource
+ Left = 296
+ Top = 16
+ end
+ end
+ inline frViewPlazoEntrega1: TfrViewPlazoEntrega
+ Left = 358
+ Top = 210
+ Width = 391
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 267
+ end
+ inherited memPlazoEntrega: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 360
+ end
+ end
+ inline frViewObservaciones1: TfrViewObservaciones
+ Left = 0
+ Top = 288
+ Width = 751
+ Height = 86
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 643
+ end
+ inherited memObservaciones: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 720
+ end
+ end
+ inline frViewFormaPago1: TfrViewFormaPago
+ Left = 0
+ Top = 210
+ Width = 361
+ Height = 84
+ Constraints.MinWidth = 300
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ ReadOnly = False
+ inherited Bevel1: TBevel
+ Width = 253
+ end
+ inherited memFormaPago: TcxDBMemo
+ Anchors = [akLeft, akTop, akRight]
+ Height = 45
+ Width = 330
+ end
+ end
+ inline frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto
+ Left = 0
+ Top = 123
+ Width = 360
+ Height = 97
+ Constraints.MinHeight = 85
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ ReadOnly = False
+ inherited Label6: TLabel
+ Width = 134
+ Caption = 'Estado del presupuesto'
+ end
+ inherited Bevel2: TBevel
+ Left = 152
+ Width = 196
+ end
+ inherited cbiSituacion: TcxDBImageComboBox
+ Style.Color = clInfoBk
+ StyleFocused.Color = clInfoBk
+ StyleHot.Color = clInfoBk
+ end
+ inherited ImageList: TPngImageList
+ Left = 64
+ Top = 40
+ end
+ end
+ inline frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto
+ Left = 360
+ Top = 0
+ Width = 391
+ Height = 219
+ Constraints.MinHeight = 202
+ Constraints.MinWidth = 350
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 5
+ ReadOnly = False
+ inherited Label5: TLabel
+ Width = 97
+ Caption = 'Datos del cliente'
+ end
+ inherited Bevel1: TBevel
+ Left = 112
+ Width = 251
+ end
+ inherited ToolBar1: TToolBar
+ ButtonWidth = 129
+ inherited ToolButton3: TToolButton
+ Left = 106
+ end
+ inherited ToolButton2: TToolButton
+ Left = 114
+ end
+ end
+ inherited edtlNombre: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtPoblacion: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 4
+ Width = 296
+ end
+ inherited edtProvincia: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ TabOrder = 3
+ Width = 152
+ end
+ inherited edtNIFCIF: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited edtCalle: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 296
+ end
+ inherited ToolBar2: TToolBar
+ ButtonWidth = 178
+ end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ StyleDisabled.TextColor = clActiveCaption
+ Width = 105
+ end
+ inherited DADataSource: TDADataSource
+ Left = 64
+ Top = 40
+ end
+ inherited ActionList1: TActionList
+ inherited actElegirContacto: TAction
+ Caption = 'Elegir un cliente'
+ end
+ inherited actAnadirContacto: TAction
+ Caption = 'Dar de alta un cliente'
+ end
+ inherited actVerContacto: TAction
+ Caption = 'Ver ficha completa del cliente...'
+ end
+ end
+ end
+ object DADataSource: TDADataSource
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.pas
new file mode 100644
index 0000000..c7a17fb
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuesto.pas
@@ -0,0 +1,76 @@
+unit uViewPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, uBizPresupuestosCliente, cxControls, cxContainer,
+ cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, DB,
+ uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, cxGraphics, uCustomView,
+ uViewDatosPresupuesto, uViewSituacionPresupuesto,
+ uViewFormaPago, uViewPlazoEntrega, uViewObservaciones,
+ uViewDatosYSeleccionContacto, AppEvnts;
+
+type
+ IViewPresupuesto = interface(IViewBase)
+ ['{7FDBC909-C3F2-4778-9FE3-1D813FEA7FC1}']
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+ TfrViewPresupuesto = class(TfrViewBase, IViewPresupuesto)
+ DADataSource: TDADataSource;
+ frViewClientePresupuesto1: TfrViewDatosYSeleccionContacto;
+ frViewDatosPresupuesto1: TfrViewDatosPresupuesto;
+ frViewFormaPago1: TfrViewFormaPago;
+ frViewObservaciones1: TfrViewObservaciones;
+ frViewPlazoEntrega1: TfrViewPlazoEntrega;
+ frViewSituacionPresupuesto1: TfrViewSituacionPresupuesto;
+ private
+ FPresupuesto: IBizPresupuestos;
+ procedure OnContactoChanged(Sender : TObject);
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write
+ SetPresupuesto;
+ end;
+
+implementation
+
+uses uBizContacto, uExceptions;
+
+{$R *.dfm}
+
+function TfrViewPresupuesto.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuesto.OnContactoChanged(Sender : TObject);
+begin
+ FPresupuesto.Cliente := (frViewClientePresupuesto1.Contacto as IBizCliente);
+end;
+
+procedure TfrViewPresupuesto.SetPresupuesto(const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ if Assigned(FPresupuesto) then
+ DADataSource.DataTable := FPresupuesto.DataTable
+ else
+ DADataSource.DataTable := NIL;
+
+ frViewDatosPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewSituacionPresupuesto1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewPlazoEntrega1.DADataSource.DataTable := DADataSource.DataTable;
+ frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable;
+
+ frViewClientePresupuesto1.Contacto := Presupuesto.Cliente;
+ frViewClientePresupuesto1.OnContactoChanged := OnContactoChanged;
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.ddp b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.dfm b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.dfm
new file mode 100644
index 0000000..8e2edd2
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.dfm
@@ -0,0 +1,163 @@
+inherited frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado
+ Width = 360
+ Height = 90
+ Constraints.MinHeight = 90
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 90)
+ object Label5: TLabel
+ Left = 8
+ Top = 8
+ Width = 141
+ Height = 13
+ Caption = 'Presupuesto relacionado'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel1: TBevel
+ Left = 152
+ Top = 8
+ Width = 197
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object lblNombre: TLabel
+ Left = 16
+ Top = 64
+ Width = 56
+ Height = 13
+ Caption = 'Referencia:'
+ end
+ object ToolBar1: TToolBar
+ Left = 8
+ Top = 29
+ Width = 338
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonWidth = 131
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ Images = PngImageList
+ List = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 0
+ Transparent = True
+ Wrapable = False
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 0
+ Action = actElegirPresupuesto
+ AutoSize = True
+ end
+ object ToolButton3: TToolButton
+ Left = 135
+ Top = 0
+ Width = 8
+ Caption = 'ToolButton3'
+ ImageIndex = 1
+ Style = tbsSeparator
+ end
+ object ToolButton2: TToolButton
+ Left = 143
+ Top = 0
+ Action = actVerPresupuesto
+ end
+ end
+ object edtlReferencia: TcxDBTextEdit
+ Left = 100
+ Top = 60
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA'
+ DataBinding.DataSource = DADataSource
+ Enabled = False
+ ParentFont = False
+ Style.Font.Charset = DEFAULT_CHARSET
+ Style.Font.Color = clWindowText
+ Style.Font.Height = -11
+ Style.Font.Name = 'Tahoma'
+ Style.Font.Style = []
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.TextColor = clActiveCaption
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Height = 21
+ Width = 245
+ end
+ object ActionList1: TActionList
+ Images = PngImageList
+ Left = 256
+ object actElegirPresupuesto: TAction
+ Caption = 'Elegir un presupuesto'
+ ImageIndex = 1
+ end
+ object actVerPresupuesto: TAction
+ Caption = 'Ver el presupuesto...'
+ ImageIndex = 1
+ OnExecute = actVerPresupuestoExecute
+ OnUpdate = actVerPresupuestoUpdate
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 288
+ Bitmap = {}
+ end
+ object DADataSource: TDADataSource
+ Left = 320
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.pas b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.pas
new file mode 100644
index 0000000..8be171b
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuestoRelacionado.pas
@@ -0,0 +1,111 @@
+unit uViewPresupuestoRelacionado;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, ExtCtrls, StdCtrls, cxControls, cxContainer, cxEdit,
+ cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ImgList, PngImageList, ActnList,
+ DB, uDADataTable, uBizPresupuestosCliente;
+
+type
+ IViewPresupuestoRelacionado = interface(IViewBase)
+ ['{42655AAC-2669-452D-8E56-C9AF657EF2BF}']
+
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+ TfrViewPresupuestoRelacionado = class(TfrViewBase, IViewPresupuestoRelacionado)
+ Label5: TLabel;
+ Bevel1: TBevel;
+ ActionList1: TActionList;
+ actElegirPresupuesto: TAction;
+ actVerPresupuesto: TAction;
+ PngImageList: TPngImageList;
+ ToolBar1: TToolBar;
+ ToolButton1: TToolButton;
+ ToolButton3: TToolButton;
+ ToolButton2: TToolButton;
+ lblNombre: TLabel;
+ DADataSource: TDADataSource;
+ edtlReferencia: TcxDBTextEdit;
+ procedure actVerPresupuestoExecute(Sender: TObject);
+ procedure actVerPresupuestoUpdate(Sender: TObject);
+ private
+ FPresupuesto : IBizPresupuestos;
+ FOnPresupuestoChanged : TNotifyEvent;
+ protected
+ function GetPresupuesto: IBizPresupuestos;
+ procedure SetPresupuesto(const Value: IBizPresupuestos);
+
+ function GetOnPresupuestoChanged : TNotifyEvent;
+ procedure SetOnPresupuestoChanged (const Value : TNotifyEvent);
+ public
+ property Presupuesto: IBizPresupuestos read GetPresupuesto write SetPresupuesto;
+ property OnPresupuestoChanged : TNotifyEvent read GetOnPresupuestoChanged
+ write SetOnPresupuestoChanged;
+ end;
+
+var
+ frViewPresupuestoRelacionado: TfrViewPresupuestoRelacionado;
+
+implementation
+
+uses
+ uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+{ TfrViewPresupuestoAlbaran }
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoExecute(
+ Sender: TObject);
+begin
+ FPresupuesto.Show;
+end;
+
+procedure TfrViewPresupuestoRelacionado.actVerPresupuestoUpdate(
+ Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Enabled := Assigned(FPresupuesto);
+end;
+
+function TfrViewPresupuestoRelacionado.GetPresupuesto: IBizPresupuestos;
+begin
+ Result := FPresupuesto;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetPresupuesto(
+ const Value: IBizPresupuestos);
+begin
+ FPresupuesto := Value;
+ DADataSource.DataTable := FPresupuesto.DataTable;
+
+ if not FPresupuesto.DataTable.Active then
+ FPresupuesto.DataTable.Active := True;
+
+ if Assigned(FOnPresupuestoChanged) then
+ FOnPresupuestoChanged(Self);
+end;
+
+
+function TfrViewPresupuestoRelacionado.GetOnPresupuestoChanged: TNotifyEvent;
+begin
+ Result := FOnPresupuestoChanged;
+end;
+
+procedure TfrViewPresupuestoRelacionado.SetOnPresupuestoChanged(
+ const Value: TNotifyEvent);
+begin
+ FOnPresupuestoChanged := Value;
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestos.ddp b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.ddp differ
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestos.dfm b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.dfm
new file mode 100644
index 0000000..469098d
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.dfm
@@ -0,0 +1,195 @@
+inherited frViewPresupuestos: TfrViewPresupuestos
+ inherited cxGrid: TcxGrid
+ RootLevelOptions.DetailTabsPosition = dtpTop
+ OnActiveTabChanged = cxGridActiveTabChanged
+ inherited cxGridView: TcxGridDBTableView
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 presupuestos'
+ Kind = skCount
+ Column = cxGridViewNOMBRE
+ end>
+ Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
+ object cxGridViewICONO: TcxGridDBColumn
+ OnCustomDrawCell = cxGridViewCODIGOCustomDrawCell
+ BestFitMaxWidth = 25
+ Options.Sorting = False
+ Width = 20
+ end
+ object cxGridViewSITUACION: TcxGridDBColumn
+ DataBinding.FieldName = 'SITUACION'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Aceptado'
+ ImageIndex = 0
+ Value = 'Aceptado'
+ end
+ item
+ Description = 'Rechazado'
+ ImageIndex = 1
+ Value = 'Rechazado'
+ end>
+ Properties.ShowDescriptions = False
+ BestFitMaxWidth = 25
+ Width = 20
+ IsCaptionAssigned = True
+ end
+ object cxGridViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ BestFitMaxWidth = 25
+ Width = 25
+ IsCaptionAssigned = True
+ end
+ object cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn
+ DataBinding.FieldName = 'FECHAPRESUPUESTO'
+ SortIndex = 0
+ SortOrder = soDescending
+ Width = 63
+ end
+ object cxGridViewREFERENCIA: TcxGridDBColumn
+ DataBinding.FieldName = 'REFERENCIA'
+ Width = 44
+ end
+ object cxGridViewTIPO: TcxGridDBColumn
+ Caption = 'Tipo'
+ DataBinding.FieldName = 'TIPO'
+ end
+ object cxGridViewNOMBRE: TcxGridDBColumn
+ Caption = 'Cliente'
+ DataBinding.FieldName = 'NOMBRE'
+ Width = 315
+ end
+ object cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn
+ Caption = 'Vigencia'
+ DataBinding.FieldName = 'VIGENCIAPRESUPUESTO'
+ Width = 74
+ end
+ object cxGridViewIMPORTETOTAL: TcxGridDBColumn
+ DataBinding.FieldName = 'IMPORTETOTAL'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.Alignment.Horz = taRightJustify
+ HeaderAlignmentHorz = taRightJustify
+ Width = 86
+ end
+ end
+ object cxGridDBTableView1: TcxGridDBTableView [1]
+ NavigatorButtons.ConfirmDelete = False
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ end
+ inherited cxGridLevel: TcxGridLevel
+ Caption = 'Todos'
+ end
+ object cxGridLevel1: TcxGridLevel
+ Caption = 'Pendientes'
+ end
+ object cxGridLevel2: TcxGridLevel
+ Caption = 'Aceptados'
+ end
+ object cxGridLevel3: TcxGridLevel
+ Caption = 'Rechazados'
+ end
+ end
+ inherited dxComponentPrinter: TdxComponentPrinter
+ inherited dxComponentPrinterLink: TdxGridReportLink
+ ReportDocument.CreationDate = 38673.741107951390000000
+ BuiltInReportLink = True
+ end
+ end
+ inherited cxStyleRepository1: TcxStyleRepository
+ Left = 240
+ object cxStyleRechazado: TcxStyle
+ AssignedValues = [svTextColor]
+ TextColor = clGrayText
+ end
+ object cxStyleAceptado: TcxStyle
+ end
+ end
+ object PngImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD252000001774944415478DA
+ 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F
+ 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530
+ 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84
+ DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB
+ EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9
+ 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F
+ F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD
+ 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05
+ 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF
+ BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1
+ C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F
+ 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E
+ 44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
+ end>
+ Left = 56
+ Top = 48
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewPresupuestos.pas b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.pas
new file mode 100644
index 0000000..2499ff9
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewPresupuestos.pas
@@ -0,0 +1,135 @@
+unit uViewPresupuestos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewGrid, uViewPreview, frxClass, frxPreview, cxStyles,
+ cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
+ cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
+ cxGridCustomView, cxGridCustomTableView, cxGridTableView,
+ cxGridDBTableView, cxGrid, uBizPresupuestosCliente, StdCtrls, ExtCtrls,
+ cxLabel, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
+ dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3,
+ dxPSCore, dxPScxCommon, dxPScxGridLnk, cxImage, cxImageComboBox, ImgList,
+ PngImageList, cxTextEdit, Grids, DBGrids;
+
+type
+ IViewPresupuestos = interface(IViewGrid)
+ ['{8C0A5647-E0E7-40CD-80EC-88DD46383368}']
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+ TfrViewPresupuestos = class(TfrViewGrid, IViewPresupuestos)
+ cxGridDBTableView1: TcxGridDBTableView;
+ cxGridLevel1: TcxGridLevel;
+ cxGridLevel2: TcxGridLevel;
+ cxGridLevel3: TcxGridLevel;
+ cxGridViewCODIGO: TcxGridDBColumn;
+ cxGridViewICONO: TcxGridDBColumn;
+ cxGridViewFECHAPRESUPUESTO: TcxGridDBColumn;
+ cxGridViewIMPORTETOTAL: TcxGridDBColumn;
+ cxGridViewNOMBRE: TcxGridDBColumn;
+ cxGridViewREFERENCIA: TcxGridDBColumn;
+ cxGridViewSITUACION: TcxGridDBColumn;
+ cxGridViewVIGENCIAPRESUPUESTO: TcxGridDBColumn;
+ PngImageList: TPngImageList;
+ cxStyleRechazado: TcxStyle;
+ cxStyleAceptado: TcxStyle;
+ cxGridViewTIPO: TcxGridDBColumn;
+ procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
+ TcxGridLevel);
+ procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView;
+ ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var
+ ADone: Boolean);
+ procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
+ ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
+ AStyle: TcxStyle);
+ protected
+ FPresupuestos: IBizPresupuestos;
+ function GetPresupuestos: IBizPresupuestos;
+ procedure SetPresupuestos(const Value: IBizPresupuestos);
+ public
+ property Presupuestos: IBizPresupuestos read GetPresupuestos write
+ SetPresupuestos;
+ end;
+
+var
+ frViewPresupuestos: TfrViewPresupuestos;
+
+implementation
+
+uses uDataModulePresupuestos, schPresupuestosClient_Intf;
+
+{$R *.dfm}
+
+procedure TfrViewPresupuestos.cxGridActiveTabChanged(Sender: TcxCustomGrid;
+ ALevel: TcxGridLevel);
+var
+ AItemList: TcxFilterCriteriaItemList;
+begin
+ inherited;
+
+ cxGridView.DataController.Filter.BeginUpdate;
+ cxGridView.DataController.Filter.Clear;
+
+ case ALevel.Index of
+ 1 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PENDIENTE, SITUACION_PENDIENTE);
+ 2 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ACEPTADO, SITUACION_ACEPTADO);
+ 3 : cxGridView.DataController.Filter.Root.AddItem(cxGridViewSITUACION, foEqual, SITUACION_RECHAZADO, SITUACION_RECHAZADO);
+ end;
+
+ if not cxGridView.DataController.Filter.IsEmpty then
+ cxGridView.DataController.Filter.Active := True;
+ cxGridView.DataController.Filter.EndUpdate;
+ ALevel.GridView := cxGridView;
+end;
+
+procedure TfrViewPresupuestos.cxGridViewCODIGOCustomDrawCell(Sender:
+ TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
+ TcxGridTableDataCellViewInfo; var ADone: Boolean);
+var
+ R: TRect;
+begin
+ inherited;
+ R := AViewInfo.ContentBounds;
+ ACanvas.FillRect(R);
+ ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
+ ADone := True;
+end;
+
+procedure TfrViewPresupuestos.cxGridViewStylesGetContentStyle(Sender:
+ TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
+ TcxCustomGridTableItem; out AStyle: TcxStyle);
+var
+ IndiceCol: Integer;
+ ASituacion: string;
+begin
+ inherited;
+ if Assigned(ARecord) then
+ begin
+ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index;
+ ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
+ if ASituacion = SITUACION_ACEPTADO then
+ AStyle := cxStyleAceptado
+ else if ASituacion = SITUACION_RECHAZADO then
+ AStyle := cxStyleRechazado;
+ end;
+end;
+
+function TfrViewPresupuestos.GetPresupuestos: IBizPresupuestos;
+begin
+ Result := FPresupuestos;
+end;
+
+procedure TfrViewPresupuestos.SetPresupuestos(const Value: IBizPresupuestos);
+begin
+ FPresupuestos := Value;
+ if Assigned(FPresupuestos) then
+ DADataSource.DataTable := FPresupuestos.DataTable;
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.dfm b/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.dfm
new file mode 100644
index 0000000..3572120
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.dfm
@@ -0,0 +1,156 @@
+inherited frViewSituacionPresupuesto: TfrViewSituacionPresupuesto
+ Width = 360
+ Height = 100
+ Constraints.MinHeight = 85
+ Constraints.MinWidth = 360
+ DesignSize = (
+ 360
+ 100)
+ object Label6: TLabel
+ Left = 8
+ Top = 9
+ Width = 54
+ Height = 13
+ Caption = 'Situaci'#243'n'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object Bevel2: TBevel
+ Left = 72
+ Top = 9
+ Width = 276
+ Height = 9
+ Anchors = [akLeft, akTop, akRight]
+ Shape = bsBottomLine
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 33
+ Width = 47
+ Height = 13
+ Caption = 'Situaci'#243'n:'
+ end
+ object Label7: TLabel
+ Left = 16
+ Top = 51
+ Width = 47
+ Height = 26
+ Caption = 'Fecha de decisi'#243'n:'
+ WordWrap = True
+ end
+ object edtFechaDecision: TcxDBDateEdit
+ Left = 100
+ Top = 53
+ Anchors = [akLeft, akTop, akRight]
+ DataBinding.DataField = 'FECHADECISION'
+ DataBinding.DataSource = DADataSource
+ Properties.ImmediatePost = True
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 0
+ Width = 245
+ end
+ object cbiSituacion: TcxDBImageComboBox
+ Left = 100
+ Top = 29
+ DataBinding.DataField = 'SITUACION'
+ DataBinding.DataSource = DADataSource
+ Properties.Images = ImageList
+ Properties.ImmediatePost = True
+ Properties.Items = <
+ item
+ Description = 'Pendiente'
+ Value = 'Pendiente'
+ end
+ item
+ Description = 'Aceptado'
+ ImageIndex = 0
+ Value = 'Aceptado'
+ end
+ item
+ Description = 'Rechazado'
+ ImageIndex = 1
+ Value = 'Rechazado'
+ end>
+ Properties.OnCloseUp = cbiSituacionPropertiesCloseUp
+ Properties.OnEditValueChanged = cbiSituacionPropertiesEditValueChanged
+ Style.LookAndFeel.Kind = lfUltraFlat
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfUltraFlat
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfUltraFlat
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfUltraFlat
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 1
+ Width = 245
+ end
+ object DADataSource: TDADataSource
+ Left = 296
+ Top = 24
+ end
+ object ImageList: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA
+ 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929
+ CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0
+ 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915
+ EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF
+ B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED
+ FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E
+ 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B
+ 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2
+ E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B
+ C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7
+ CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5
+ 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80
+ 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91
+ A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E
+ 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000
+ 49454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000029B4944415478DA
+ A5936B48536118C7FFE79CB5CD332F639B9A379C683051B232CDEA835D14BB40
+ A444501FACCC254811F529858811519411917D705A5041D04D30A34F82214118
+ D8B0455E2A755E6665BA9DCDED6C3BDBDE76365C9A981F7AE0BDF0C2FFF7FE9F
+ E7E1A10821F89FA0C27B7E8B8ED526D731085A9DAFAA6EFC4B1053FAA844AA8A
+ 377053B64ED27BAC99C2E6FB4574667A4F5676B23C5ECE9091FE2F97B98ECA4B
+ CB9405B794AAEC9CAB5E307A97C3ED8383AB26BD35CF29EC7ED68AA4A45A0483
+ 4852B1484D64C9A8E9EB15AEB3F2E282962D7BBC5FA651B73A5C424AC0E59E05
+ 673B88BEBAB762FA14726EC7639DB60BB1B145083DC4C824D0A62790E901CB75
+ FB4B53A362EF060351B08D6E978706CF4F807356C0A41F10C1118018BA3B6A68
+ 33DE8065F345080D82B4940432373933E863A43AC1E3A5E0E68730E72883F9D4
+ E482B33F003136B6A52251DD831879B60811530A2FF1CEF31670F3DB60AAB52E
+ 2ECB528018EB8D5948D6F442264D8C8A03018299D94321DBED7FD775194051FE
+ E49C54A36CB2715E3AEA423CBD9E09CCD977C05C3FB222407DA0FD4A467E6643
+ FF472B450221A15F2010FCF39048E222109F052E5B294CA72DCB008A8AA7E775
+ 25B94DC343D394D3EE167F2670380CA1DCDBC02A8CA194F685213EE11B387E17
+ 3ED78D4701CCF687E559C579AF79DE2B991AFB19B1EC703EC0BBEAE351AF85F7
+ 4E42B6E626683A0182300CDFFC4E98CE58C300CDD1EEC9B8B5AAB4B1C13184AD
+ BBDD668CFB8A6139E15952B1BCBB19A10E192161F6840A3B04DE594ACC677F50
+ CAC35D2F78BFBFCAEBE211A20BB0FFDA8A0FF57D2B0E4381510F09DD0412EC20
+ 7DFA6A0A9B8C25502ABBC1307270DC35BCAF69587504739B3341532CF9543F10
+ E94261CB16486417F07DF4082C06CFAA80455DF80DE5433FF01720E9DB000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ Left = 104
+ Top = 65528
+ Bitmap = {}
+ end
+end
diff --git a/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.pas b/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.pas
new file mode 100644
index 0000000..c1c2dd5
--- /dev/null
+++ b/Modulos/Presupuestos_/Cliente/uViewSituacionPresupuesto.pas
@@ -0,0 +1,96 @@
+unit uViewSituacionPresupuesto;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uViewBase, cxGraphics, DB, uDADataTable, cxDropDownEdit,
+ cxCalendar, cxDBEdit, cxControls, cxContainer, cxEdit, cxTextEdit,
+ cxMaskEdit, ExtCtrls, StdCtrls, ImgList, PngImageList, cxImageComboBox;
+
+type
+ TfrViewSituacionPresupuesto = class(TfrViewBase)
+ Bevel2: TBevel;
+ cbiSituacion: TcxDBImageComboBox;
+ DADataSource: TDADataSource;
+ edtFechaDecision: TcxDBDateEdit;
+ ImageList: TPngImageList;
+ Label4: TLabel;
+ Label6: TLabel;
+ Label7: TLabel;
+ procedure cbiSituacionPropertiesCloseUp(Sender: TObject);
+ procedure cbiSituacionPropertiesEditValueChanged(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+
+implementation
+
+uses
+ uBizPresupuestosCliente, cxDateUtils;
+
+{$R *.dfm}
+
+{ TfrViewSituacionPresupuesto }
+
+{
+************************* TfrViewSituacionPresupuesto **************************
+}
+constructor TfrViewSituacionPresupuesto.Create(AOwner: TComponent);
+begin
+ inherited;
+ with cbiSituacion.Properties.Items do
+ begin
+ Clear;
+ with Add do
+ begin
+ Description := SITUACION_PENDIENTE;
+ ImageIndex := -1;
+ Value := SITUACION_PENDIENTE;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_ACEPTADO;
+ ImageIndex := 0;
+ Value := SITUACION_ACEPTADO;
+ end;
+ with Add do
+ begin
+ Description := SITUACION_RECHAZADO;
+ ImageIndex := 1;
+ Value := SITUACION_RECHAZADO;
+ end;
+ end;
+end;
+
+procedure TfrViewSituacionPresupuesto.cbiSituacionPropertiesCloseUp(
+ Sender: TObject);
+begin
+{ if Assigned(edtFechaDecision.DataBinding.Field) then
+ begin
+ if (cbiSituacion.ItemIndex > 0) then
+ begin
+ edtFechaDecision.Enabled := True;
+ if VarIsNull(edtFechaDecision.EditValue) then
+ begin
+ DADataSource.DataTable.Edit;
+ edtFechaDecision.DataBinding.Field.Value := Date;
+ end;
+ end
+ else begin
+ DADataSource.DataTable.Edit;
+ edtFechaDecision.DataBinding.Field.Value := Null;
+ edtFechaDecision.Enabled := False;
+ end
+ end;}
+end;
+
+procedure TfrViewSituacionPresupuesto.cbiSituacionPropertiesEditValueChanged(
+ Sender: TObject);
+begin
+ inherited;
+ edtFechaDecision.Enabled := (cbiSituacion.ItemIndex > 0);
+end;
+
+end.
diff --git a/Modulos/Presupuestos_/Reglas/schPresupuestosClient_Intf.pas b/Modulos/Presupuestos_/Reglas/schPresupuestosClient_Intf.pas
new file mode 100644
index 0000000..fcafd14
--- /dev/null
+++ b/Modulos/Presupuestos_/Reglas/schPresupuestosClient_Intf.pas
@@ -0,0 +1,1594 @@
+unit schPresupuestosClient_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_DarReferenciaPresupuesto = '{8993F014-1865-4D64-98E5-353E9BB18CDE}';
+ RID_DetallesPresupuestos = '{B42EC01D-5299-42CC-8D90-F058DADBC838}';
+ RID_Presupuestos = '{C54617B2-9D65-4DB7-8C6C-993034E9DAAF}';
+ RID_Presupuestos_RefreshDataset = '{36882352-6222-4562-95B2-A2E7D3847887}';
+ RID_InformeCabeceraPresupuesto = '{1CCF0A82-B3F2-4C9A-97C8-5532C8AFE2FE}';
+ RID_InformeDetallesPresupuesto = '{E5783AA8-1B27-48B7-89C8-512EEF2AABD9}';
+
+ { Data table names }
+ nme_DarReferenciaPresupuesto = 'DarReferenciaPresupuesto';
+ nme_DetallesPresupuestos = 'DetallesPresupuestos';
+ nme_Presupuestos = 'Presupuestos';
+ nme_Presupuestos_RefreshDataset = 'Presupuestos_RefreshDataset';
+ nme_InformeCabeceraPresupuesto = 'InformeCabeceraPresupuesto';
+ nme_InformeDetallesPresupuesto = 'InformeDetallesPresupuesto';
+
+ { DarReferenciaPresupuesto fields }
+ fld_DarReferenciaPresupuestoREFERENCIA = 'REFERENCIA';
+
+ { DarReferenciaPresupuesto field indexes }
+ idx_DarReferenciaPresupuestoREFERENCIA = 0;
+
+ { DetallesPresupuestos fields }
+ fld_DetallesPresupuestosCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_DetallesPresupuestosNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_DetallesPresupuestosDESCRIPCION = 'DESCRIPCION';
+ fld_DetallesPresupuestosCANTIDAD = 'CANTIDAD';
+ fld_DetallesPresupuestosIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_DetallesPresupuestosIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_DetallesPresupuestosTIPO = 'TIPO';
+ fld_DetallesPresupuestosPOSICION = 'POSICION';
+ fld_DetallesPresupuestosVISIBLE = 'VISIBLE';
+ fld_DetallesPresupuestosPUNTOS = 'PUNTOS';
+ fld_DetallesPresupuestosIMPORTEPUNTOS = 'IMPORTEPUNTOS';
+
+ { DetallesPresupuestos field indexes }
+ idx_DetallesPresupuestosCODIGOPRESUPUESTO = 0;
+ idx_DetallesPresupuestosNUMCONCEPTO = 1;
+ idx_DetallesPresupuestosDESCRIPCION = 2;
+ idx_DetallesPresupuestosCANTIDAD = 3;
+ idx_DetallesPresupuestosIMPORTEUNIDAD = 4;
+ idx_DetallesPresupuestosIMPORTETOTAL = 5;
+ idx_DetallesPresupuestosTIPO = 6;
+ idx_DetallesPresupuestosPOSICION = 7;
+ idx_DetallesPresupuestosVISIBLE = 8;
+ idx_DetallesPresupuestosPUNTOS = 9;
+ idx_DetallesPresupuestosIMPORTEPUNTOS = 10;
+
+ { Presupuestos fields }
+ fld_PresupuestosCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_PresupuestosCODIGO = 'CODIGO';
+ fld_PresupuestosFECHAALTA = 'FECHAALTA';
+ fld_PresupuestosUSUARIO = 'USUARIO';
+ fld_PresupuestosCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_PresupuestosNOMBRE = 'NOMBRE';
+ fld_PresupuestosREFERENCIA = 'REFERENCIA';
+ fld_PresupuestosTIPO = 'TIPO';
+ fld_PresupuestosFECHAPRESUPUESTO = 'FECHAPRESUPUESTO';
+ fld_PresupuestosVIGENCIAPRESUPUESTO = 'VIGENCIAPRESUPUESTO';
+ fld_PresupuestosSITUACION = 'SITUACION';
+ fld_PresupuestosFECHADECISION = 'FECHADECISION';
+ fld_PresupuestosBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_PresupuestosDESCUENTO = 'DESCUENTO';
+ fld_PresupuestosIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_PresupuestosIVA = 'IVA';
+ fld_PresupuestosIMPORTEIVA = 'IMPORTEIVA';
+ fld_PresupuestosIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_PresupuestosOBSERVACIONES = 'OBSERVACIONES';
+ fld_PresupuestosPLAZOENTREGA = 'PLAZOENTREGA';
+ fld_PresupuestosFORMAPAGO = 'FORMAPAGO';
+ fld_PresupuestosCODIGOALBARAN = 'CODIGOALBARAN';
+
+ { Presupuestos field indexes }
+ idx_PresupuestosCODIGOEMPRESA = 0;
+ idx_PresupuestosCODIGO = 1;
+ idx_PresupuestosFECHAALTA = 2;
+ idx_PresupuestosUSUARIO = 3;
+ idx_PresupuestosCODIGOCONTACTO = 4;
+ idx_PresupuestosNOMBRE = 5;
+ idx_PresupuestosREFERENCIA = 6;
+ idx_PresupuestosTIPO = 7;
+ idx_PresupuestosFECHAPRESUPUESTO = 8;
+ idx_PresupuestosVIGENCIAPRESUPUESTO = 9;
+ idx_PresupuestosSITUACION = 10;
+ idx_PresupuestosFECHADECISION = 11;
+ idx_PresupuestosBASEIMPONIBLE = 12;
+ idx_PresupuestosDESCUENTO = 13;
+ idx_PresupuestosIMPORTEDESCUENTO = 14;
+ idx_PresupuestosIVA = 15;
+ idx_PresupuestosIMPORTEIVA = 16;
+ idx_PresupuestosIMPORTETOTAL = 17;
+ idx_PresupuestosOBSERVACIONES = 18;
+ idx_PresupuestosPLAZOENTREGA = 19;
+ idx_PresupuestosFORMAPAGO = 20;
+ idx_PresupuestosCODIGOALBARAN = 21;
+
+ { Presupuestos_RefreshDataset fields }
+ fld_Presupuestos_RefreshDatasetCODIGO = 'CODIGO';
+ fld_Presupuestos_RefreshDatasetNOMBRE = 'NOMBRE';
+ fld_Presupuestos_RefreshDatasetCODIGOALBARAN = 'CODIGOALBARAN';
+
+ { Presupuestos_RefreshDataset field indexes }
+ idx_Presupuestos_RefreshDatasetCODIGO = 0;
+ idx_Presupuestos_RefreshDatasetNOMBRE = 1;
+ idx_Presupuestos_RefreshDatasetCODIGOALBARAN = 2;
+
+ { InformeCabeceraPresupuesto fields }
+ fld_InformeCabeceraPresupuestoCODIGOEMPRESA = 'CODIGOEMPRESA';
+ fld_InformeCabeceraPresupuestoCODIGO = 'CODIGO';
+ fld_InformeCabeceraPresupuestoFECHAALTA = 'FECHAALTA';
+ fld_InformeCabeceraPresupuestoUSUARIO = 'USUARIO';
+ fld_InformeCabeceraPresupuestoCODIGOCONTACTO = 'CODIGOCONTACTO';
+ fld_InformeCabeceraPresupuestoREFERENCIA = 'REFERENCIA';
+ fld_InformeCabeceraPresupuestoTIPO = 'TIPO';
+ fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO = 'FECHAPRESUPUESTO';
+ fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO = 'VIGENCIAPRESUPUESTO';
+ fld_InformeCabeceraPresupuestoSITUACION = 'SITUACION';
+ fld_InformeCabeceraPresupuestoFECHADECISION = 'FECHADECISION';
+ fld_InformeCabeceraPresupuestoBASEIMPONIBLE = 'BASEIMPONIBLE';
+ fld_InformeCabeceraPresupuestoDESCUENTO = 'DESCUENTO';
+ fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
+ fld_InformeCabeceraPresupuestoIVA = 'IVA';
+ fld_InformeCabeceraPresupuestoIMPORTEIVA = 'IMPORTEIVA';
+ fld_InformeCabeceraPresupuestoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeCabeceraPresupuestoOBSERVACIONES = 'OBSERVACIONES';
+ fld_InformeCabeceraPresupuestoPLAZOENTREGA = 'PLAZOENTREGA';
+ fld_InformeCabeceraPresupuestoFORMAPAGO = 'FORMAPAGO';
+ fld_InformeCabeceraPresupuestoNIFCIF = 'NIFCIF';
+ fld_InformeCabeceraPresupuestoNOMBRE = 'NOMBRE';
+ fld_InformeCabeceraPresupuestoCALLE = 'CALLE';
+ fld_InformeCabeceraPresupuestoCODIGOPOSTAL = 'CODIGOPOSTAL';
+ fld_InformeCabeceraPresupuestoPOBLACION = 'POBLACION';
+ fld_InformeCabeceraPresupuestoTELEFONO1 = 'TELEFONO1';
+ fld_InformeCabeceraPresupuestoTELEFONO2 = 'TELEFONO2';
+ fld_InformeCabeceraPresupuestoMOVIL = 'MOVIL';
+
+ { InformeCabeceraPresupuesto field indexes }
+ idx_InformeCabeceraPresupuestoCODIGOEMPRESA = 0;
+ idx_InformeCabeceraPresupuestoCODIGO = 1;
+ idx_InformeCabeceraPresupuestoFECHAALTA = 2;
+ idx_InformeCabeceraPresupuestoUSUARIO = 3;
+ idx_InformeCabeceraPresupuestoCODIGOCONTACTO = 4;
+ idx_InformeCabeceraPresupuestoREFERENCIA = 5;
+ idx_InformeCabeceraPresupuestoTIPO = 6;
+ idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO = 7;
+ idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO = 8;
+ idx_InformeCabeceraPresupuestoSITUACION = 9;
+ idx_InformeCabeceraPresupuestoFECHADECISION = 10;
+ idx_InformeCabeceraPresupuestoBASEIMPONIBLE = 11;
+ idx_InformeCabeceraPresupuestoDESCUENTO = 12;
+ idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO = 13;
+ idx_InformeCabeceraPresupuestoIVA = 14;
+ idx_InformeCabeceraPresupuestoIMPORTEIVA = 15;
+ idx_InformeCabeceraPresupuestoIMPORTETOTAL = 16;
+ idx_InformeCabeceraPresupuestoOBSERVACIONES = 17;
+ idx_InformeCabeceraPresupuestoPLAZOENTREGA = 18;
+ idx_InformeCabeceraPresupuestoFORMAPAGO = 19;
+ idx_InformeCabeceraPresupuestoNIFCIF = 20;
+ idx_InformeCabeceraPresupuestoNOMBRE = 21;
+ idx_InformeCabeceraPresupuestoCALLE = 22;
+ idx_InformeCabeceraPresupuestoCODIGOPOSTAL = 23;
+ idx_InformeCabeceraPresupuestoPOBLACION = 24;
+ idx_InformeCabeceraPresupuestoTELEFONO1 = 25;
+ idx_InformeCabeceraPresupuestoTELEFONO2 = 26;
+ idx_InformeCabeceraPresupuestoMOVIL = 27;
+
+ { InformeDetallesPresupuesto fields }
+ fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO = 'CODIGOPRESUPUESTO';
+ fld_InformeDetallesPresupuestoNUMCONCEPTO = 'NUMCONCEPTO';
+ fld_InformeDetallesPresupuestoDESCRIPCION = 'DESCRIPCION';
+ fld_InformeDetallesPresupuestoCANTIDAD = 'CANTIDAD';
+ fld_InformeDetallesPresupuestoIMPORTEUNIDAD = 'IMPORTEUNIDAD';
+ fld_InformeDetallesPresupuestoIMPORTETOTAL = 'IMPORTETOTAL';
+ fld_InformeDetallesPresupuestoTIPO = 'TIPO';
+ fld_InformeDetallesPresupuestoPOSICION = 'POSICION';
+
+ { InformeDetallesPresupuesto field indexes }
+ idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO = 0;
+ idx_InformeDetallesPresupuestoNUMCONCEPTO = 1;
+ idx_InformeDetallesPresupuestoDESCRIPCION = 2;
+ idx_InformeDetallesPresupuestoCANTIDAD = 3;
+ idx_InformeDetallesPresupuestoIMPORTEUNIDAD = 4;
+ idx_InformeDetallesPresupuestoIMPORTETOTAL = 5;
+ idx_InformeDetallesPresupuestoTIPO = 6;
+ idx_InformeDetallesPresupuestoPOSICION = 7;
+
+type
+ { IDarReferenciaPresupuesto }
+ IDarReferenciaPresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{6CD77B4B-D69F-48E4-9BC2-D49CDBB89798}']
+ { Property getters and setters }
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ end;
+
+ { TDarReferenciaPresupuestoDataTableRules }
+ TDarReferenciaPresupuestoDataTableRules = class(TDADataTableRules, IDarReferenciaPresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesPresupuestos }
+ IDetallesPresupuestos = interface(IDAStronglyTypedDataTable)
+ ['{30E52FE3-133B-4AB5-85F0-F01A84D6162D}']
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+ function GetVISIBLEValue: String;
+ procedure SetVISIBLEValue(const aValue: String);
+ function GetPUNTOSValue: Integer;
+ procedure SetPUNTOSValue(const aValue: Integer);
+ function GetIMPORTEPUNTOSValue: Currency;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency);
+
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesPresupuestosDataTableRules }
+ TDetallesPresupuestosDataTableRules = class(TDADataTableRules, IDetallesPresupuestos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property VISIBLE: String read GetVISIBLEValue write SetVISIBLEValue;
+ property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property IMPORTEPUNTOS: Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos }
+ IPresupuestos = interface(IDAStronglyTypedDataTable)
+ ['{C6AAEE5B-6CC8-4519-9416-1E17CDEA4A8A}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetFECHAPRESUPUESTOValue: DateTime;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+ function GetVIGENCIAPRESUPUESTOValue: DateTime;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHADECISIONValue: DateTime;
+ procedure SetFECHADECISIONValue(const aValue: DateTime);
+ function GetBASEIMPONIBLEValue: Currency;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Currency;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Currency;
+ procedure SetIMPORTEIVAValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetPLAZOENTREGAValue: IROStrings;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ end;
+
+ { TPresupuestosDataTableRules }
+ TPresupuestosDataTableRules = class(TDADataTableRules, IPresupuestos)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos_RefreshDataset }
+ IPresupuestos_RefreshDataset = interface(IDAStronglyTypedDataTable)
+ ['{2F046E60-C8D2-49C2-AC38-3F6719F67190}']
+ { Property getters and setters }
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCODIGOALBARANValue: Integer;
+ procedure SetCODIGOALBARANValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ end;
+
+ { TPresupuestos_RefreshDatasetDataTableRules }
+ TPresupuestos_RefreshDatasetDataTableRules = class(TDADataTableRules, IPresupuestos_RefreshDataset)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CODIGOALBARAN: Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPresupuesto }
+ IInformeCabeceraPresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{0DBF6148-74D7-4B5F-87D8-F7A9B7C52824}']
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer);
+ function GetCODIGOValue: Integer;
+ procedure SetCODIGOValue(const aValue: Integer);
+ function GetFECHAALTAValue: DateTime;
+ procedure SetFECHAALTAValue(const aValue: DateTime);
+ function GetUSUARIOValue: String;
+ procedure SetUSUARIOValue(const aValue: String);
+ function GetCODIGOCONTACTOValue: Integer;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer);
+ function GetREFERENCIAValue: String;
+ procedure SetREFERENCIAValue(const aValue: String);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetFECHAPRESUPUESTOValue: DateTime;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+ function GetVIGENCIAPRESUPUESTOValue: DateTime;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+ function GetSITUACIONValue: String;
+ procedure SetSITUACIONValue(const aValue: String);
+ function GetFECHADECISIONValue: DateTime;
+ procedure SetFECHADECISIONValue(const aValue: DateTime);
+ function GetBASEIMPONIBLEValue: Float;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetIMPORTEDESCUENTOValue: Float;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float);
+ function GetIVAValue: Float;
+ procedure SetIVAValue(const aValue: Float);
+ function GetIMPORTEIVAValue: Float;
+ procedure SetIMPORTEIVAValue(const aValue: Float);
+ function GetIMPORTETOTALValue: Float;
+ procedure SetIMPORTETOTALValue(const aValue: Float);
+ function GetOBSERVACIONESValue: IROStrings;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings);
+ function GetPLAZOENTREGAValue: IROStrings;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings);
+ function GetFORMAPAGOValue: IROStrings;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings);
+ function GetNIFCIFValue: String;
+ procedure SetNIFCIFValue(const aValue: String);
+ function GetNOMBREValue: String;
+ procedure SetNOMBREValue(const aValue: String);
+ function GetCALLEValue: String;
+ procedure SetCALLEValue(const aValue: String);
+ function GetCODIGOPOSTALValue: String;
+ procedure SetCODIGOPOSTALValue(const aValue: String);
+ function GetPOBLACIONValue: String;
+ procedure SetPOBLACIONValue(const aValue: String);
+ function GetTELEFONO1Value: String;
+ procedure SetTELEFONO1Value(const aValue: String);
+ function GetTELEFONO2Value: String;
+ procedure SetTELEFONO2Value(const aValue: String);
+ function GetMOVILValue: String;
+ procedure SetMOVILValue(const aValue: String);
+
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+ end;
+
+ { TInformeCabeceraPresupuestoDataTableRules }
+ TInformeCabeceraPresupuestoDataTableRules = class(TDADataTableRules, IInformeCabeceraPresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA: Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property CODIGO: Integer read GetCODIGOValue write SetCODIGOValue;
+ property FECHAALTA: DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
+ property CODIGOCONTACTO: Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property FECHAPRESUPUESTO: DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO: DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
+ property FECHADECISION: DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property BASEIMPONIBLE: Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property IMPORTEDESCUENTO: Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property IVA: Float read GetIVAValue write SetIVAValue;
+ property IMPORTEIVA: Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property IMPORTETOTAL: Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property PLAZOENTREGA: IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property FORMAPAGO: IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property NIFCIF: String read GetNIFCIFValue write SetNIFCIFValue;
+ property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
+ property CALLE: String read GetCALLEValue write SetCALLEValue;
+ property CODIGOPOSTAL: String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property TELEFONO1: String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property TELEFONO2: String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property MOVIL: String read GetMOVILValue write SetMOVILValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPresupuesto }
+ IInformeDetallesPresupuesto = interface(IDAStronglyTypedDataTable)
+ ['{6BECDEAC-58B6-4E27-B009-BBAECA446FD8}']
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+ function GetNUMCONCEPTOValue: Integer;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetCANTIDADValue: Integer;
+ procedure SetCANTIDADValue(const aValue: Integer);
+ function GetIMPORTEUNIDADValue: Currency;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency);
+ function GetIMPORTETOTALValue: Currency;
+ procedure SetIMPORTETOTALValue(const aValue: Currency);
+ function GetTIPOValue: String;
+ procedure SetTIPOValue(const aValue: String);
+ function GetPOSICIONValue: Integer;
+ procedure SetPOSICIONValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+ end;
+
+ { TInformeDetallesPresupuestoDataTableRules }
+ TInformeDetallesPresupuestoDataTableRules = class(TDADataTableRules, IInformeDetallesPresupuesto)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO: Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO: Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property IMPORTEUNIDAD: Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property IMPORTETOTAL: Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property TIPO: String read GetTIPOValue write SetTIPOValue;
+ property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TDarReferenciaPresupuestoDataTableRules }
+constructor TDarReferenciaPresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaPresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaPresupuestoDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_DarReferenciaPresupuestoREFERENCIA].AsString;
+end;
+
+procedure TDarReferenciaPresupuestoDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DarReferenciaPresupuestoREFERENCIA].AsString := aValue;
+end;
+
+
+{ TDetallesPresupuestosDataTableRules }
+constructor TDetallesPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TDetallesPresupuestosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosNUMCONCEPTO].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosDESCRIPCION].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosDESCRIPCION].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosTIPO].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosTIPO].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosPOSICION].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosPOSICION].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetVISIBLEValue: String;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosVISIBLE].AsString;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetVISIBLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosVISIBLE].AsString := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetPUNTOSValue: Integer;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsInteger;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsInteger := aValue;
+end;
+
+function TDetallesPresupuestosDataTableRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsCurrency;
+end;
+
+procedure TDetallesPresupuestosDataTableRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsCurrency := aValue;
+end;
+
+
+{ TPresupuestosDataTableRules }
+constructor TPresupuestosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPresupuestosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGO].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGO].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHAALTA].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHAALTA].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosUSUARIO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosUSUARIO].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosNOMBRE].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosNOMBRE].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosREFERENCIA].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosREFERENCIA].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosTIPO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosTIPO].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosVIGENCIAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosVIGENCIAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_PresupuestosSITUACION].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PresupuestosSITUACION].AsString := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_PresupuestosFECHADECISION].AsDateTime;
+end;
+
+procedure TPresupuestosDataTableRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_PresupuestosFECHADECISION].AsDateTime := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosBASEIMPONIBLE].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosBASEIMPONIBLE].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_PresupuestosDESCUENTO].AsFloat;
+end;
+
+procedure TPresupuestosDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PresupuestosDESCUENTO].AsFloat := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTEDESCUENTO].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTEDESCUENTO].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_PresupuestosIVA].AsFloat;
+end;
+
+procedure TPresupuestosDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PresupuestosIVA].AsFloat := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTEIVA].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTEIVA].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_PresupuestosIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TPresupuestosDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PresupuestosIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TPresupuestosDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosOBSERVACIONES].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosPLAZOENTREGA].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosPLAZOENTREGA].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_PresupuestosFORMAPAGO].AsString;
+end;
+
+procedure TPresupuestosDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_PresupuestosFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TPresupuestosDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_PresupuestosCODIGOALBARAN].AsInteger;
+end;
+
+procedure TPresupuestosDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PresupuestosCODIGOALBARAN].AsInteger := aValue;
+end;
+
+
+{ TPresupuestos_RefreshDatasetDataTableRules }
+constructor TPresupuestos_RefreshDatasetDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPresupuestos_RefreshDatasetDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGO].AsInteger;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGO].AsInteger := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetNOMBRE].AsString;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetNOMBRE].AsString := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetDataTableRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGOALBARAN].AsInteger;
+end;
+
+procedure TPresupuestos_RefreshDatasetDataTableRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_Presupuestos_RefreshDatasetCODIGOALBARAN].AsInteger := aValue;
+end;
+
+
+{ TInformeCabeceraPresupuestoDataTableRules }
+constructor TInformeCabeceraPresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOEMPRESA].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOEMPRESA].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGO].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHAALTAValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAALTA].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAALTA].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetUSUARIOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoUSUARIO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetUSUARIOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoUSUARIO].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOCONTACTO].AsInteger;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOCONTACTO].AsInteger := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetREFERENCIAValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoREFERENCIA].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetREFERENCIAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoREFERENCIA].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTIPO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTIPO].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetSITUACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoSITUACION].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetSITUACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoSITUACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoFECHADECISION].AsDateTime;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFECHADECISION].AsDateTime := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoBASEIMPONIBLE].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoBASEIMPONIBLE].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEDESCUENTO].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTEIVAValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEIVA].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTEIVA].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetIMPORTETOTALValue: Float;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTETOTAL].AsFloat;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoIMPORTETOTAL].AsFloat := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoOBSERVACIONES].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoOBSERVACIONES].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoPLAZOENTREGA].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoPLAZOENTREGA].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := DataTable.Fields[idx_InformeCabeceraPresupuestoFORMAPAGO].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoFORMAPAGO].AsString := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetNIFCIFValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoNIFCIF].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetNIFCIFValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoNIFCIF].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetNOMBREValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetNOMBREValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoNOMBRE].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCALLEValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCALLE].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCALLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCALLE].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetCODIGOPOSTALValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOPOSTAL].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoCODIGOPOSTAL].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetPOBLACIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoPOBLACION].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetPOBLACIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoPOBLACION].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTELEFONO1Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO1].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTELEFONO1Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO1].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetTELEFONO2Value: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO2].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetTELEFONO2Value(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoTELEFONO2].AsString := aValue;
+end;
+
+function TInformeCabeceraPresupuestoDataTableRules.GetMOVILValue: String;
+begin
+ result := DataTable.Fields[idx_InformeCabeceraPresupuestoMOVIL].AsString;
+end;
+
+procedure TInformeCabeceraPresupuestoDataTableRules.SetMOVILValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeCabeceraPresupuestoMOVIL].AsString := aValue;
+end;
+
+
+{ TInformeDetallesPresupuestoDataTableRules }
+constructor TInformeDetallesPresupuestoDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPresupuestoDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoCODIGOPRESUPUESTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoNUMCONCEPTO].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoNUMCONCEPTO].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoDESCRIPCION].AsString;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoDESCRIPCION].AsString := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetCANTIDADValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoCANTIDAD].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoCANTIDAD].AsInteger := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTEUNIDAD].AsCurrency;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTEUNIDAD].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTETOTAL].AsCurrency;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoIMPORTETOTAL].AsCurrency := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetTIPOValue: String;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoTIPO].AsString;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetTIPOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoTIPO].AsString := aValue;
+end;
+
+function TInformeDetallesPresupuestoDataTableRules.GetPOSICIONValue: Integer;
+begin
+ result := DataTable.Fields[idx_InformeDetallesPresupuestoPOSICION].AsInteger;
+end;
+
+procedure TInformeDetallesPresupuestoDataTableRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_InformeDetallesPresupuestoPOSICION].AsInteger := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_DarReferenciaPresupuesto, TDarReferenciaPresupuestoDataTableRules);
+ RegisterDataTableRules(RID_DetallesPresupuestos, TDetallesPresupuestosDataTableRules);
+ RegisterDataTableRules(RID_Presupuestos, TPresupuestosDataTableRules);
+ RegisterDataTableRules(RID_Presupuestos_RefreshDataset, TPresupuestos_RefreshDatasetDataTableRules);
+ RegisterDataTableRules(RID_InformeCabeceraPresupuesto, TInformeCabeceraPresupuestoDataTableRules);
+ RegisterDataTableRules(RID_InformeDetallesPresupuesto, TInformeDetallesPresupuestoDataTableRules);
+
+end.
diff --git a/Modulos/Presupuestos_/Reglas/schPresupuestosServer_Intf.pas b/Modulos/Presupuestos_/Reglas/schPresupuestosServer_Intf.pas
new file mode 100644
index 0000000..dbd94ff
--- /dev/null
+++ b/Modulos/Presupuestos_/Reglas/schPresupuestosServer_Intf.pas
@@ -0,0 +1,1855 @@
+unit schPresupuestosServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schPresupuestosClient_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_DarReferenciaPresupuestoDelta = '{4B701A1F-ACC9-4D23-935E-8B328BF582F5}';
+ RID_DetallesPresupuestosDelta = '{C45170EB-B358-436C-BF5C-C7E3C11148DE}';
+ RID_PresupuestosDelta = '{541676C9-1DFB-4C07-921F-F4CE705366E4}';
+ RID_Presupuestos_RefreshDatasetDelta = '{81B341DA-DAC7-43A0-B8C4-8F7155EF6ECB}';
+ RID_InformeCabeceraPresupuestoDelta = '{BF1CB438-CA21-4772-965C-614E91DD779F}';
+ RID_InformeDetallesPresupuestoDelta = '{5A7FBD68-E8E5-4F9A-BC4C-72EB878826A8}';
+
+type
+ { IDarReferenciaPresupuestoDelta }
+ IDarReferenciaPresupuestoDelta = interface(IDarReferenciaPresupuesto)
+ ['{4B701A1F-ACC9-4D23-935E-8B328BF582F5}']
+ { Property getters and setters }
+ function GetOldREFERENCIAValue : String;
+
+ { Properties }
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ end;
+
+ { TDarReferenciaPresupuestoBusinessProcessorRules }
+ TDarReferenciaPresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferenciaPresupuesto, IDarReferenciaPresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+
+ { Properties }
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IDetallesPresupuestosDelta }
+ IDetallesPresupuestosDelta = interface(IDetallesPresupuestos)
+ ['{C45170EB-B358-436C-BF5C-C7E3C11148DE}']
+ { Property getters and setters }
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+ function GetOldVISIBLEValue : String;
+ function GetOldPUNTOSValue : Integer;
+ function GetOldIMPORTEPUNTOSValue : Currency;
+
+ { Properties }
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+ end;
+
+ { TDetallesPresupuestosBusinessProcessorRules }
+ TDetallesPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IDetallesPresupuestos, IDetallesPresupuestosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+ function GetVISIBLEValue: String; virtual;
+ function GetOldVISIBLEValue: String; virtual;
+ procedure SetVISIBLEValue(const aValue: String); virtual;
+ function GetPUNTOSValue: Integer; virtual;
+ function GetOldPUNTOSValue: Integer; virtual;
+ procedure SetPUNTOSValue(const aValue: Integer); virtual;
+ function GetIMPORTEPUNTOSValue: Currency; virtual;
+ function GetOldIMPORTEPUNTOSValue: Currency; virtual;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ property VISIBLE : String read GetVISIBLEValue write SetVISIBLEValue;
+ property OldVISIBLE : String read GetOldVISIBLEValue;
+ property PUNTOS : Integer read GetPUNTOSValue write SetPUNTOSValue;
+ property OldPUNTOS : Integer read GetOldPUNTOSValue;
+ property IMPORTEPUNTOS : Currency read GetIMPORTEPUNTOSValue write SetIMPORTEPUNTOSValue;
+ property OldIMPORTEPUNTOS : Currency read GetOldIMPORTEPUNTOSValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestosDelta }
+ IPresupuestosDelta = interface(IPresupuestos)
+ ['{541676C9-1DFB-4C07-921F-F4CE705366E4}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldREFERENCIAValue : String;
+ function GetOldTIPOValue : String;
+ function GetOldFECHAPRESUPUESTOValue : DateTime;
+ function GetOldVIGENCIAPRESUPUESTOValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHADECISIONValue : DateTime;
+ function GetOldBASEIMPONIBLEValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Currency;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldPLAZOENTREGAValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldCODIGOALBARANValue : Integer;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ end;
+
+ { TPresupuestosBusinessProcessorRules }
+ TPresupuestosBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestos, IPresupuestosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ function GetOldFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Currency; virtual;
+ function GetOldBASEIMPONIBLEValue: Currency; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Currency); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Currency; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Currency; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Currency); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Currency; virtual;
+ function GetOldIMPORTEIVAValue: Currency; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ function GetOldPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property FECHAPRESUPUESTO : DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO : DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHADECISION : DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property BASEIMPONIBLE : Currency read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Currency read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Currency read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Currency read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Currency read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Currency read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property PLAZOENTREGA : IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPresupuestos_RefreshDatasetDelta }
+ IPresupuestos_RefreshDatasetDelta = interface(IPresupuestos_RefreshDataset)
+ ['{81B341DA-DAC7-43A0-B8C4-8F7155EF6ECB}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : Integer;
+ function GetOldNOMBREValue : String;
+ function GetOldCODIGOALBARANValue : Integer;
+
+ { Properties }
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+ end;
+
+ { TPresupuestos_RefreshDatasetBusinessProcessorRules }
+ TPresupuestos_RefreshDatasetBusinessProcessorRules = class(TDABusinessProcessorRules, IPresupuestos_RefreshDataset, IPresupuestos_RefreshDatasetDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCODIGOALBARANValue: Integer; virtual;
+ function GetOldCODIGOALBARANValue: Integer; virtual;
+ procedure SetCODIGOALBARANValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CODIGOALBARAN : Integer read GetCODIGOALBARANValue write SetCODIGOALBARANValue;
+ property OldCODIGOALBARAN : Integer read GetOldCODIGOALBARANValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeCabeceraPresupuestoDelta }
+ IInformeCabeceraPresupuestoDelta = interface(IInformeCabeceraPresupuesto)
+ ['{BF1CB438-CA21-4772-965C-614E91DD779F}']
+ { Property getters and setters }
+ function GetOldCODIGOEMPRESAValue : Integer;
+ function GetOldCODIGOValue : Integer;
+ function GetOldFECHAALTAValue : DateTime;
+ function GetOldUSUARIOValue : String;
+ function GetOldCODIGOCONTACTOValue : Integer;
+ function GetOldREFERENCIAValue : String;
+ function GetOldTIPOValue : String;
+ function GetOldFECHAPRESUPUESTOValue : DateTime;
+ function GetOldVIGENCIAPRESUPUESTOValue : DateTime;
+ function GetOldSITUACIONValue : String;
+ function GetOldFECHADECISIONValue : DateTime;
+ function GetOldBASEIMPONIBLEValue : Float;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTEDESCUENTOValue : Float;
+ function GetOldIVAValue : Float;
+ function GetOldIMPORTEIVAValue : Float;
+ function GetOldIMPORTETOTALValue : Float;
+ function GetOldOBSERVACIONESValue : IROStrings;
+ function GetOldPLAZOENTREGAValue : IROStrings;
+ function GetOldFORMAPAGOValue : IROStrings;
+ function GetOldNIFCIFValue : String;
+ function GetOldNOMBREValue : String;
+ function GetOldCALLEValue : String;
+ function GetOldCODIGOPOSTALValue : String;
+ function GetOldPOBLACIONValue : String;
+ function GetOldTELEFONO1Value : String;
+ function GetOldTELEFONO2Value : String;
+ function GetOldMOVILValue : String;
+
+ { Properties }
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property OldMOVIL : String read GetOldMOVILValue;
+ end;
+
+ { TInformeCabeceraPresupuestoBusinessProcessorRules }
+ TInformeCabeceraPresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeCabeceraPresupuesto, IInformeCabeceraPresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOEMPRESAValue: Integer; virtual;
+ function GetOldCODIGOEMPRESAValue: Integer; virtual;
+ procedure SetCODIGOEMPRESAValue(const aValue: Integer); virtual;
+ function GetCODIGOValue: Integer; virtual;
+ function GetOldCODIGOValue: Integer; virtual;
+ procedure SetCODIGOValue(const aValue: Integer); virtual;
+ function GetFECHAALTAValue: DateTime; virtual;
+ function GetOldFECHAALTAValue: DateTime; virtual;
+ procedure SetFECHAALTAValue(const aValue: DateTime); virtual;
+ function GetUSUARIOValue: String; virtual;
+ function GetOldUSUARIOValue: String; virtual;
+ procedure SetUSUARIOValue(const aValue: String); virtual;
+ function GetCODIGOCONTACTOValue: Integer; virtual;
+ function GetOldCODIGOCONTACTOValue: Integer; virtual;
+ procedure SetCODIGOCONTACTOValue(const aValue: Integer); virtual;
+ function GetREFERENCIAValue: String; virtual;
+ function GetOldREFERENCIAValue: String; virtual;
+ procedure SetREFERENCIAValue(const aValue: String); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetFECHAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldFECHAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetFECHAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ function GetOldVIGENCIAPRESUPUESTOValue: DateTime; virtual;
+ procedure SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime); virtual;
+ function GetSITUACIONValue: String; virtual;
+ function GetOldSITUACIONValue: String; virtual;
+ procedure SetSITUACIONValue(const aValue: String); virtual;
+ function GetFECHADECISIONValue: DateTime; virtual;
+ function GetOldFECHADECISIONValue: DateTime; virtual;
+ procedure SetFECHADECISIONValue(const aValue: DateTime); virtual;
+ function GetBASEIMPONIBLEValue: Float; virtual;
+ function GetOldBASEIMPONIBLEValue: Float; virtual;
+ procedure SetBASEIMPONIBLEValue(const aValue: Float); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetIMPORTEDESCUENTOValue: Float; virtual;
+ function GetOldIMPORTEDESCUENTOValue: Float; virtual;
+ procedure SetIMPORTEDESCUENTOValue(const aValue: Float); virtual;
+ function GetIVAValue: Float; virtual;
+ function GetOldIVAValue: Float; virtual;
+ procedure SetIVAValue(const aValue: Float); virtual;
+ function GetIMPORTEIVAValue: Float; virtual;
+ function GetOldIMPORTEIVAValue: Float; virtual;
+ procedure SetIMPORTEIVAValue(const aValue: Float); virtual;
+ function GetIMPORTETOTALValue: Float; virtual;
+ function GetOldIMPORTETOTALValue: Float; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Float); virtual;
+ function GetOBSERVACIONESValue: IROStrings; virtual;
+ function GetOldOBSERVACIONESValue: IROStrings; virtual;
+ procedure SetOBSERVACIONESValue(const aValue: IROStrings); virtual;
+ function GetPLAZOENTREGAValue: IROStrings; virtual;
+ function GetOldPLAZOENTREGAValue: IROStrings; virtual;
+ procedure SetPLAZOENTREGAValue(const aValue: IROStrings); virtual;
+ function GetFORMAPAGOValue: IROStrings; virtual;
+ function GetOldFORMAPAGOValue: IROStrings; virtual;
+ procedure SetFORMAPAGOValue(const aValue: IROStrings); virtual;
+ function GetNIFCIFValue: String; virtual;
+ function GetOldNIFCIFValue: String; virtual;
+ procedure SetNIFCIFValue(const aValue: String); virtual;
+ function GetNOMBREValue: String; virtual;
+ function GetOldNOMBREValue: String; virtual;
+ procedure SetNOMBREValue(const aValue: String); virtual;
+ function GetCALLEValue: String; virtual;
+ function GetOldCALLEValue: String; virtual;
+ procedure SetCALLEValue(const aValue: String); virtual;
+ function GetCODIGOPOSTALValue: String; virtual;
+ function GetOldCODIGOPOSTALValue: String; virtual;
+ procedure SetCODIGOPOSTALValue(const aValue: String); virtual;
+ function GetPOBLACIONValue: String; virtual;
+ function GetOldPOBLACIONValue: String; virtual;
+ procedure SetPOBLACIONValue(const aValue: String); virtual;
+ function GetTELEFONO1Value: String; virtual;
+ function GetOldTELEFONO1Value: String; virtual;
+ procedure SetTELEFONO1Value(const aValue: String); virtual;
+ function GetTELEFONO2Value: String; virtual;
+ function GetOldTELEFONO2Value: String; virtual;
+ procedure SetTELEFONO2Value(const aValue: String); virtual;
+ function GetMOVILValue: String; virtual;
+ function GetOldMOVILValue: String; virtual;
+ procedure SetMOVILValue(const aValue: String); virtual;
+
+ { Properties }
+ property CODIGOEMPRESA : Integer read GetCODIGOEMPRESAValue write SetCODIGOEMPRESAValue;
+ property OldCODIGOEMPRESA : Integer read GetOldCODIGOEMPRESAValue;
+ property CODIGO : Integer read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : Integer read GetOldCODIGOValue;
+ property FECHAALTA : DateTime read GetFECHAALTAValue write SetFECHAALTAValue;
+ property OldFECHAALTA : DateTime read GetOldFECHAALTAValue;
+ property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
+ property OldUSUARIO : String read GetOldUSUARIOValue;
+ property CODIGOCONTACTO : Integer read GetCODIGOCONTACTOValue write SetCODIGOCONTACTOValue;
+ property OldCODIGOCONTACTO : Integer read GetOldCODIGOCONTACTOValue;
+ property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue;
+ property OldREFERENCIA : String read GetOldREFERENCIAValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property FECHAPRESUPUESTO : DateTime read GetFECHAPRESUPUESTOValue write SetFECHAPRESUPUESTOValue;
+ property OldFECHAPRESUPUESTO : DateTime read GetOldFECHAPRESUPUESTOValue;
+ property VIGENCIAPRESUPUESTO : DateTime read GetVIGENCIAPRESUPUESTOValue write SetVIGENCIAPRESUPUESTOValue;
+ property OldVIGENCIAPRESUPUESTO : DateTime read GetOldVIGENCIAPRESUPUESTOValue;
+ property SITUACION : String read GetSITUACIONValue write SetSITUACIONValue;
+ property OldSITUACION : String read GetOldSITUACIONValue;
+ property FECHADECISION : DateTime read GetFECHADECISIONValue write SetFECHADECISIONValue;
+ property OldFECHADECISION : DateTime read GetOldFECHADECISIONValue;
+ property BASEIMPONIBLE : Float read GetBASEIMPONIBLEValue write SetBASEIMPONIBLEValue;
+ property OldBASEIMPONIBLE : Float read GetOldBASEIMPONIBLEValue;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property IMPORTEDESCUENTO : Float read GetIMPORTEDESCUENTOValue write SetIMPORTEDESCUENTOValue;
+ property OldIMPORTEDESCUENTO : Float read GetOldIMPORTEDESCUENTOValue;
+ property IVA : Float read GetIVAValue write SetIVAValue;
+ property OldIVA : Float read GetOldIVAValue;
+ property IMPORTEIVA : Float read GetIMPORTEIVAValue write SetIMPORTEIVAValue;
+ property OldIMPORTEIVA : Float read GetOldIMPORTEIVAValue;
+ property IMPORTETOTAL : Float read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Float read GetOldIMPORTETOTALValue;
+ property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue write SetOBSERVACIONESValue;
+ property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
+ property PLAZOENTREGA : IROStrings read GetPLAZOENTREGAValue write SetPLAZOENTREGAValue;
+ property OldPLAZOENTREGA : IROStrings read GetOldPLAZOENTREGAValue;
+ property FORMAPAGO : IROStrings read GetFORMAPAGOValue write SetFORMAPAGOValue;
+ property OldFORMAPAGO : IROStrings read GetOldFORMAPAGOValue;
+ property NIFCIF : String read GetNIFCIFValue write SetNIFCIFValue;
+ property OldNIFCIF : String read GetOldNIFCIFValue;
+ property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
+ property OldNOMBRE : String read GetOldNOMBREValue;
+ property CALLE : String read GetCALLEValue write SetCALLEValue;
+ property OldCALLE : String read GetOldCALLEValue;
+ property CODIGOPOSTAL : String read GetCODIGOPOSTALValue write SetCODIGOPOSTALValue;
+ property OldCODIGOPOSTAL : String read GetOldCODIGOPOSTALValue;
+ property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
+ property OldPOBLACION : String read GetOldPOBLACIONValue;
+ property TELEFONO1 : String read GetTELEFONO1Value write SetTELEFONO1Value;
+ property OldTELEFONO1 : String read GetOldTELEFONO1Value;
+ property TELEFONO2 : String read GetTELEFONO2Value write SetTELEFONO2Value;
+ property OldTELEFONO2 : String read GetOldTELEFONO2Value;
+ property MOVIL : String read GetMOVILValue write SetMOVILValue;
+ property OldMOVIL : String read GetOldMOVILValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IInformeDetallesPresupuestoDelta }
+ IInformeDetallesPresupuestoDelta = interface(IInformeDetallesPresupuesto)
+ ['{5A7FBD68-E8E5-4F9A-BC4C-72EB878826A8}']
+ { Property getters and setters }
+ function GetOldCODIGOPRESUPUESTOValue : Integer;
+ function GetOldNUMCONCEPTOValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCANTIDADValue : Integer;
+ function GetOldIMPORTEUNIDADValue : Currency;
+ function GetOldIMPORTETOTALValue : Currency;
+ function GetOldTIPOValue : String;
+ function GetOldPOSICIONValue : Integer;
+
+ { Properties }
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+ end;
+
+ { TInformeDetallesPresupuestoBusinessProcessorRules }
+ TInformeDetallesPresupuestoBusinessProcessorRules = class(TDABusinessProcessorRules, IInformeDetallesPresupuesto, IInformeDetallesPresupuestoDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOPRESUPUESTOValue: Integer; virtual;
+ function GetOldCODIGOPRESUPUESTOValue: Integer; virtual;
+ procedure SetCODIGOPRESUPUESTOValue(const aValue: Integer); virtual;
+ function GetNUMCONCEPTOValue: Integer; virtual;
+ function GetOldNUMCONCEPTOValue: Integer; virtual;
+ procedure SetNUMCONCEPTOValue(const aValue: Integer); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetCANTIDADValue: Integer; virtual;
+ function GetOldCANTIDADValue: Integer; virtual;
+ procedure SetCANTIDADValue(const aValue: Integer); virtual;
+ function GetIMPORTEUNIDADValue: Currency; virtual;
+ function GetOldIMPORTEUNIDADValue: Currency; virtual;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTETOTALValue: Currency; virtual;
+ function GetOldIMPORTETOTALValue: Currency; virtual;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); virtual;
+ function GetTIPOValue: String; virtual;
+ function GetOldTIPOValue: String; virtual;
+ procedure SetTIPOValue(const aValue: String); virtual;
+ function GetPOSICIONValue: Integer; virtual;
+ function GetOldPOSICIONValue: Integer; virtual;
+ procedure SetPOSICIONValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGOPRESUPUESTO : Integer read GetCODIGOPRESUPUESTOValue write SetCODIGOPRESUPUESTOValue;
+ property OldCODIGOPRESUPUESTO : Integer read GetOldCODIGOPRESUPUESTOValue;
+ property NUMCONCEPTO : Integer read GetNUMCONCEPTOValue write SetNUMCONCEPTOValue;
+ property OldNUMCONCEPTO : Integer read GetOldNUMCONCEPTOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue;
+ property OldCANTIDAD : Integer read GetOldCANTIDADValue;
+ property IMPORTEUNIDAD : Currency read GetIMPORTEUNIDADValue write SetIMPORTEUNIDADValue;
+ property OldIMPORTEUNIDAD : Currency read GetOldIMPORTEUNIDADValue;
+ property IMPORTETOTAL : Currency read GetIMPORTETOTALValue write SetIMPORTETOTALValue;
+ property OldIMPORTETOTAL : Currency read GetOldIMPORTETOTALValue;
+ property TIPO : String read GetTIPOValue write SetTIPOValue;
+ property OldTIPO : String read GetOldTIPOValue;
+ property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue;
+ property OldPOSICION : Integer read GetOldPOSICIONValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TDarReferenciaPresupuestoBusinessProcessorRules }
+constructor TDarReferenciaPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDarReferenciaPresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDarReferenciaPresupuestoBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaPresupuestoREFERENCIA];
+end;
+
+function TDarReferenciaPresupuestoBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaPresupuestoREFERENCIA];
+end;
+
+procedure TDarReferenciaPresupuestoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaPresupuestoREFERENCIA] := aValue;
+end;
+
+
+{ TDetallesPresupuestosBusinessProcessorRules }
+constructor TDetallesPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TDetallesPresupuestosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosNUMCONCEPTO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosNUMCONCEPTO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosNUMCONCEPTO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosDESCRIPCION];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosDESCRIPCION];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosDESCRIPCION] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCANTIDAD];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosCANTIDAD];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosCANTIDAD] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEUNIDAD] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTETOTAL];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTETOTAL];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTETOTAL] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosTIPO];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosTIPO];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosTIPO] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPOSICION];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosPOSICION];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPOSICION] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosVISIBLE];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldVISIBLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosVISIBLE];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetVISIBLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosVISIBLE] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPUNTOS];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldPUNTOSValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosPUNTOS];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetPUNTOSValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosPUNTOS] := aValue;
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS];
+end;
+
+function TDetallesPresupuestosBusinessProcessorRules.GetOldIMPORTEPUNTOSValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS];
+end;
+
+procedure TDetallesPresupuestosBusinessProcessorRules.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_DetallesPresupuestosIMPORTEPUNTOS] := aValue;
+end;
+
+
+{ TPresupuestosBusinessProcessorRules }
+constructor TPresupuestosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPresupuestosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOEMPRESA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOEMPRESA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOEMPRESA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAALTA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHAALTA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAALTA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosUSUARIO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosUSUARIO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosUSUARIO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOCONTACTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOCONTACTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOCONTACTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosNOMBRE];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosNOMBRE];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosNOMBRE] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosREFERENCIA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosREFERENCIA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosREFERENCIA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosTIPO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosTIPO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosTIPO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAPRESUPUESTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHAPRESUPUESTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHAPRESUPUESTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosVIGENCIAPRESUPUESTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosSITUACION];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosSITUACION];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosSITUACION] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHADECISION];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFECHADECISION];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFECHADECISION] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosBASEIMPONIBLE];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosBASEIMPONIBLE];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosBASEIMPONIBLE] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosDESCUENTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosDESCUENTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosDESCUENTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEDESCUENTO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTEDESCUENTO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEDESCUENTO] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIVA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIVA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIVA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEIVA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTEIVAValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTEIVA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTEIVA] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTETOTAL];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosIMPORTETOTAL];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosIMPORTETOTAL] := aValue;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOBSERVACIONES];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosOBSERVACIONES];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosOBSERVACIONES] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosPLAZOENTREGA];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosPLAZOENTREGA];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosPLAZOENTREGA] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFORMAPAGO];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosFORMAPAGO];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosFORMAPAGO] := aValue.Text;
+end;
+
+function TPresupuestosBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOALBARAN];
+end;
+
+function TPresupuestosBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCODIGOALBARAN];
+end;
+
+procedure TPresupuestosBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCODIGOALBARAN] := aValue;
+end;
+
+
+{ TPresupuestos_RefreshDatasetBusinessProcessorRules }
+constructor TPresupuestos_RefreshDatasetBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPresupuestos_RefreshDatasetBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGO];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetCODIGO];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGO] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetNOMBRE];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetNOMBRE];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetNOMBRE] := aValue;
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN];
+end;
+
+function TPresupuestos_RefreshDatasetBusinessProcessorRules.GetOldCODIGOALBARANValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN];
+end;
+
+procedure TPresupuestos_RefreshDatasetBusinessProcessorRules.SetCODIGOALBARANValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_Presupuestos_RefreshDatasetCODIGOALBARAN] := aValue;
+end;
+
+
+{ TInformeCabeceraPresupuestoBusinessProcessorRules }
+constructor TInformeCabeceraPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeCabeceraPresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOEMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOEMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOEMPRESA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAALTA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHAALTAValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHAALTA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHAALTAValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAALTA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoUSUARIO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldUSUARIOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoUSUARIO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoUSUARIO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOCONTACTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOCONTACTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOCONTACTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoREFERENCIA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldREFERENCIAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoREFERENCIA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetREFERENCIAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoREFERENCIA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTIPO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTIPO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTIPO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHAPRESUPUESTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldVIGENCIAPRESUPUESTOValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetVIGENCIAPRESUPUESTOValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoVIGENCIAPRESUPUESTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoSITUACION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldSITUACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoSITUACION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetSITUACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoSITUACION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHADECISION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFECHADECISIONValue: DateTime;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFECHADECISION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFECHADECISIONValue(const aValue: DateTime);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFECHADECISION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldBASEIMPONIBLEValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetBASEIMPONIBLEValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoBASEIMPONIBLE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoDESCUENTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoDESCUENTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTEDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTEDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEDESCUENTO] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIVA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIVA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIVA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTEIVAValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTEIVAValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTEIVA] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldIMPORTETOTALValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetOBSERVACIONESValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoOBSERVACIONES] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldPLAZOENTREGAValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetPLAZOENTREGAValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPLAZOENTREGA] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldFORMAPAGOValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetFORMAPAGOValue(const aValue: IROStrings);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoFORMAPAGO] := aValue.Text;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNIFCIF];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldNIFCIFValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoNIFCIF];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetNIFCIFValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNIFCIF] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldNOMBREValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoNOMBRE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetNOMBREValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoNOMBRE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCALLE];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCALLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCALLE];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCALLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCALLE] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldCODIGOPOSTALValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetCODIGOPOSTALValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoCODIGOPOSTAL] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPOBLACION];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldPOBLACIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoPOBLACION];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoPOBLACION] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO1];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTELEFONO1Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTELEFONO1];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTELEFONO1Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO1] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO2];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldTELEFONO2Value: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoTELEFONO2];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetTELEFONO2Value(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoTELEFONO2] := aValue;
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoMOVIL];
+end;
+
+function TInformeCabeceraPresupuestoBusinessProcessorRules.GetOldMOVILValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeCabeceraPresupuestoMOVIL];
+end;
+
+procedure TInformeCabeceraPresupuestoBusinessProcessorRules.SetMOVILValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeCabeceraPresupuestoMOVIL] := aValue;
+end;
+
+
+{ TInformeDetallesPresupuestoBusinessProcessorRules }
+constructor TInformeDetallesPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TInformeDetallesPresupuestoBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldCODIGOPRESUPUESTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetCODIGOPRESUPUESTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCODIGOPRESUPUESTO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldNUMCONCEPTOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetNUMCONCEPTOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoNUMCONCEPTO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoDESCRIPCION];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoDESCRIPCION];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoDESCRIPCION] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCANTIDAD];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldCANTIDADValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoCANTIDAD];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoCANTIDAD] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldIMPORTEUNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTEUNIDAD] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldIMPORTETOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoIMPORTETOTAL] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoTIPO];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldTIPOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoTIPO];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetTIPOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoTIPO] := aValue;
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoPOSICION];
+end;
+
+function TInformeDetallesPresupuestoBusinessProcessorRules.GetOldPOSICIONValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_InformeDetallesPresupuestoPOSICION];
+end;
+
+procedure TInformeDetallesPresupuestoBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_InformeDetallesPresupuestoPOSICION] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_DarReferenciaPresupuestoDelta, TDarReferenciaPresupuestoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_DetallesPresupuestosDelta, TDetallesPresupuestosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_PresupuestosDelta, TPresupuestosBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_Presupuestos_RefreshDatasetDelta, TPresupuestos_RefreshDatasetBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeCabeceraPresupuestoDelta, TInformeCabeceraPresupuestoBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_InformeDetallesPresupuestoDelta, TInformeDetallesPresupuestoBusinessProcessorRules);
+
+end.
diff --git a/Modulos/Presupuestos_/Reglas/uBizPresupuestosCliente.pas b/Modulos/Presupuestos_/Reglas/uBizPresupuestosCliente.pas
new file mode 100644
index 0000000..6b331a5
--- /dev/null
+++ b/Modulos/Presupuestos_/Reglas/uBizPresupuestosCliente.pas
@@ -0,0 +1,607 @@
+unit uBizPresupuestosCliente;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schPresupuestosClient_Intf, Classes,
+ uBizContacto, uDBSelectionList, Controls, uBizImportesDetalleBase,
+ uBizImportesCabeceraBase, uExceptions, uBizInformesBase, DB,
+ uBizDocumentosAsociados;
+
+const
+ BIZ_PRESUPUESTOCLIENTE = 'Client.PresupuestoCliente';
+ BIZ_DETALLESPRESUPUESTOCLIENTE = 'Client.DetallesPresupuestoCliente';
+
+ SITUACION_PENDIENTE = 'Pendiente';
+ SITUACION_ACEPTADO = 'Aceptado';
+ SITUACION_RECHAZADO = 'Rechazado';
+
+ TIPO_COCINA = 'Cocina';
+ TIPO_BANO = 'Baño';
+
+type
+ IBizDetallesPresupuesto = interface(IDetallesPresupuestos)
+ ['{7233E1B0-5B76-4AE4-AB05-4F12EF74FBDD}']
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ end;
+
+ IBizPresupuestos = interface(IPresupuestos)
+ ['{C699A849-3F52-486B-93AC-1EB0E6B5632F}']
+ function GetDetalles: IBizDetallesPresupuesto;
+ procedure SetDetalles(Value: IBizDetallesPresupuesto);
+ property Detalles: IBizDetallesPresupuesto read GetDetalles write
+ SetDetalles;
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+
+ procedure Show;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+ function ShowForSelect : TModalResult;
+ end;
+
+ TBizDetallesPresupuesto = class(TDetallesPresupuestosDataTableRules,
+ IBizDetallesPresupuesto,
+ IBizImportesDetalle,
+ IBizPuntosDetalle,
+ IBizVisibleDetalle,
+ IParche) // PARCHE ***********************
+ private
+ FIsAppend : Boolean;
+ FPosicionNueva : Integer;
+ FPuedoLanzarEvento : Boolean; // PARCHE ***********************
+
+ procedure SetCANTIDADValue(const aValue: Integer); override;
+ procedure SetIMPORTEUNIDADValue(const aValue: Currency); override;
+ procedure SetIMPORTETOTALValue(const aValue: Currency); override;
+ procedure SetPUNTOSValue(const aValue: Integer); override;
+ procedure SetIMPORTEPUNTOSValue(const aValue: Currency); override;
+
+ protected
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure AfterPost(Sender: TDADataTable); override;
+ procedure AfterInsert(Sender: TDADataTable); override;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure BeforeDelete(Sender: TDADataTable); override;
+
+ // PARCHE ***********************
+ procedure ActivarEventos;
+ procedure DesactivarEventos;
+ procedure Refrescar;
+ function PuedoLanzarEvento : Boolean;
+ public
+ procedure CopyFrom(ADetallesPresupuesto : IBizDetallesPresupuesto);
+ procedure RecalcularImporte;
+ function DarSumaTotalImportes : Currency;
+ constructor Create(aDataTable: TDADataTable); override;
+ end;
+
+
+ TBizPresupuestos = class(TPresupuestosDataTableRules, IBizPresupuestos,
+ IBizImportesCabecera, ISelectedRowList,
+ IApplyUpdateFailedException, IBizInformesAware)
+// IBizDocumentosAsociados)
+ private
+ FCliente : IBizCliente;
+ FDetalles: IBizDetallesPresupuesto;
+ FDetallesLink: TDADataSource;
+ FSelectedRows : TSelectedRowList;
+
+ //DOCUMENTOS ASOCIADOS
+{ FGestorDocumentos: TGestorDocumentos;
+ function GetGestorDocumentos: TGestorDocumentos;
+ procedure SetGestorDocumentos(Value: TGestorDocumentos);}
+ procedure BeforeDelete(Sender: TDADataTable); override;
+ procedure BeforeCancel(Sender: TDADataTable); override;
+
+
+ protected
+ procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
+ function GetDetalles: IBizDetallesPresupuesto;
+ procedure SetDetalles(Value: IBizDetallesPresupuesto);
+
+ function GetCliente: IBizCliente;
+ procedure SetCliente(Value: IBizCliente);
+ procedure BeforeApplyUpdates(Sender : TDADataTable; const Delta : IDADelta);
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ function GetSelectedRows : TSelectedRowList;
+ procedure AfterDelete(Sender: TDADataTable); override;
+ procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
+ var Action: TDataAction); override;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ procedure RecalcularImporte;
+ procedure Show;
+ function ShowForSelect : TModalResult;
+ procedure Preview;
+ procedure Print;
+ procedure CopyFrom(APresupuesto : IBizPresupuestos);
+
+ property Cliente: IBizCliente read GetCliente write SetCliente;
+ property Detalles: IBizDetallesPresupuesto read GetDetalles write SetDetalles;
+ property SelectedRows : TSelectedRowList read GetSelectedRows;
+
+ //DOCUMENTOS ASOCIADOS
+// property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
+ end;
+
+ procedure ValidarPresupuesto (const APresupuesto : IBizPresupuestos);
+
+implementation
+
+uses
+ Windows, Dialogs, uDACDSDataTable, SysUtils, uEditorUtils,
+ uDataModulePresupuestos, uDataModuleContactos, Variants, Math,
+ uDataModuleBase, uDataModuleUsuarios, FactuGES_Intf, uDataTableUtils;
+
+var
+ FMasterDeleting : Boolean;
+ FCancelInsert : Boolean;
+ cadena1, cadena2 : string;
+
+procedure ValidarPresupuesto (const APresupuesto : IBizPresupuestos);
+begin
+ if (FloatToStr(APresupuesto.FECHAPRESUPUESTO) = '0') then
+ raise Exception.Create('Debe indicar la fecha de este presupuesto');
+
+ if not Assigned(APresupuesto.Cliente) or
+ (APresupuesto.Cliente.DataTable.IsEmpty) then
+ raise Exception.Create('Debe indicar el cliente de este presupuesto');
+
+
+ if (FloatToStr(APresupuesto.FECHADECISION) <> '0') and
+ (APresupuesto.FECHADECISION < APresupuesto.FECHAPRESUPUESTO) then
+ raise Exception.Create('La fecha de decisición debe ser posterior a la fecha del presupuesto');
+
+
+ if (APresupuesto.SITUACION <> SITUACION_PENDIENTE) and
+ (FloatToStr(APresupuesto.FECHADECISION) = '0') then
+ begin
+ APresupuesto.Edit;
+ APresupuesto.FECHADECISION := Date;
+ APresupuesto.Post;
+ end;
+
+{ if (APresupuesto.SITUACION = SITUACION_ACEPTADO) and
+ (Length(APresupuesto.REFERENCIA) = 0) then
+ begin
+ APresupuesto.Edit;
+ APresupuesto.REFERENCIA := dmPresupuestos.DarNuevaReferencia(APresupuesto.TIPO);
+ APresupuesto.Post;
+ ShowMessage('Al presupuesto se le ha asignado la referencia ' + APresupuesto.REFERENCIA);
+ end;}
+end;
+
+procedure TBizPresupuestos.RecalcularImporte;
+begin
+ RecalcularImportesCabecera(Self.DataTable, Detalles.DataTable);
+end;
+
+constructor TBizPresupuestos.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FCliente := NIL;
+ FDetallesLink := TDADataSource.Create(NIL);
+ FSelectedRows := TSelectedRowList.Create(aDataTable);
+ aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
+
+ //DOCUMENTOS ASOCIADOS
+{ FGestorDocumentos := TGestorDocumentos.Create;
+ FGestorDocumentos.RootDocumentos := dmBase.darRutaDocumentos;
+ aDataTable.BeforeCancel := BeforeCancel;
+}
+end;
+
+destructor TBizPresupuestos.Destroy;
+begin
+ FCliente := NIL;
+ FDetalles := NIL;
+ FDetallesLink.Free;
+ FSelectedRows.Free;
+
+// FreeAndNil(FGestorDocumentos);
+ inherited;
+end;
+
+function TBizPresupuestos.GetDetalles: IBizDetallesPresupuesto;
+begin
+ Result := FDetalles;
+end;
+
+function TBizPresupuestos.GetSelectedRows: TSelectedRowList;
+begin
+ Result := FSelectedRows;
+end;
+
+procedure TBizPresupuestos.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ CODIGOEMPRESA := dmBase.CodigoEmpresa;
+ USUARIO := dmUsuarios.LoginInfo.UserID;
+ FECHAALTA := Date;
+ FECHAPRESUPUESTO := Date;
+ VIGENCIAPRESUPUESTO := Date + 30; // 30 días de validez por defecto
+ SITUACION := SITUACION_PENDIENTE;
+ TIPO := TIPO_COCINA;
+ CODIGO := dmPresupuestos.GetNextAutoinc;
+end;
+
+procedure TBizPresupuestos.Preview;
+begin
+ dmPresupuestos.Preview(CODIGO);
+end;
+
+function TBizPresupuestos.GetCliente: IBizCliente;
+begin
+ if not Assigned(FCliente) then
+ FCliente := dmContactos.GetCliente(CODIGOCONTACTO)
+ else
+ if (CODIGOCONTACTO <> FCliente.Codigo) and
+ not (FCliente.DataTable.State in dsEditModes) then
+ dmContactos.GetContacto(FCliente, CODIGOCONTACTO);
+
+ if not FCliente.DataTable.Active then
+ FCliente.DataTable.Active := True;
+
+ Result := FCliente;
+end;
+
+procedure TBizPresupuestos.SetCliente(Value: IBizCliente);
+var
+ bEnEdicion : Boolean;
+begin
+ bEnEdicion := (DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ Edit;
+ FCliente := Value;
+ if Assigned(FCliente) then
+ begin
+ CODIGOCONTACTO := FCliente.CODIGO;
+ Post;
+ if bEnEdicion then
+ Edit;
+ end
+end;
+
+procedure TBizPresupuestos.SetDetalles(
+ Value: IBizDetallesPresupuesto);
+begin
+ FDetalles := Value;
+ FDetallesLink.DataTable := Self.DataTable;
+ FDetalles.DataTable.MasterSource := FDetallesLink;
+end;
+
+procedure TBizPresupuestos.Show;
+begin
+ ShowEditor(IBizPresupuestos, Self, etItem);
+end;
+
+procedure TBizDetallesPresupuesto.ActivarEventos;
+begin
+ FPuedoLanzarEvento := True;
+end;
+
+procedure TBizDetallesPresupuesto.AfterDelete(Sender: TDADataTable);
+var
+ ACabecera : IBizImportesCabecera;
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (not FMasterDeleting) and (not FCancelInsert) then
+ begin
+ ReasignarPosiciones(Self.DataTable);
+ if Assigned(DataTable.MasterSource) and
+ Supports(DataTable.MasterSource.DataTable, IBizImportesCabecera, ACabecera) then
+ ACabecera.RecalcularImporte;
+ end;
+ FCancelInsert := False;
+end;
+
+procedure TBizDetallesPresupuesto.AfterInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ FIsAppend := DataTable.EOF;
+ Post; // Para lanzar AfterPost y asigne posición
+ Edit; // Para volver a dejarlo en modo de edición
+end;
+
+procedure TBizDetallesPresupuesto.AfterPost(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if POSICION < 0 then
+ AsignarPosicion(Self.DataTable, FIsAppend);
+
+ if NUMCONCEPTO < 0 then
+ AsignarNumConcepto(Self.DataTable);
+
+ FIsAppend := False;
+end;
+
+procedure TBizDetallesPresupuesto.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if (DataTable.State in dsEditModes) then
+ DataTable.Cancel;
+
+ if not FMasterDeleting then
+ FCancelInsert := not (DataTable.MasterSource.DataTable.FieldByName('CODIGO').AsInteger = CODIGOPRESUPUESTO);
+end;
+
+procedure TBizDetallesPresupuesto.BeforeInsert(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ if Assigned(DataTable.MasterSource) and
+ (DataTable.MasterSource.DataTable.State in dsEditModes) then
+ DataTable.MasterSource.DataTable.Post;
+
+ if GetRecordCount = 0 then
+ FPosicionNueva := -1
+ else
+ FPosicionNueva := POSICION * (-1);
+end;
+
+procedure TBizDetallesPresupuesto.CopyFrom(
+ ADetallesPresupuesto: IBizDetallesPresupuesto);
+begin
+ DeleteAllTable(Self.DataTable);
+
+ ADetallesPresupuesto.First;
+ while not ADetallesPresupuesto.EOF do
+ begin
+ DataTable.Append;
+ DataTable.DisableEventHandlers;
+ try
+ POSICION := ADetallesPresupuesto.POSICION;
+ TIPO := ADetallesPresupuesto.TIPO;
+ DESCRIPCION := ADetallesPresupuesto.DESCRIPCION;
+ CANTIDAD := ADetallesPresupuesto.CANTIDAD;
+ IMPORTEUNIDAD := ADetallesPresupuesto.IMPORTEUNIDAD;
+ IMPORTETOTAL := ADetallesPresupuesto.IMPORTETOTAL;
+ PUNTOS := ADetallesPresupuesto.PUNTOS;
+ IMPORTEPUNTOS := ADetallesPresupuesto.IMPORTEPUNTOS;
+ VISIBLE := ADetallesPresupuesto.VISIBLE;
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ DataTable.Post;
+ ADetallesPresupuesto.Next;
+ end;
+end;
+
+constructor TBizDetallesPresupuesto.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ FPosicionNueva := 1; // Los conceptos empiezan a contar en 1
+
+ // PARCHE *******************
+ FPuedoLanzarEvento := True;
+end;
+
+function TBizDetallesPresupuesto.DarSumaTotalImportes: Currency;
+begin
+ Result := DarTotalDetalles(Self.DataTable, True, True);
+end;
+
+procedure TBizDetallesPresupuesto.DesactivarEventos;
+begin
+ FPuedoLanzarEvento := False
+end;
+
+procedure TBizDetallesPresupuesto.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+
+ // PARCHE *******************
+ if not PuedoLanzarEvento then
+ Exit;
+
+ POSICION := FPosicionNueva;
+ NUMCONCEPTO := -1;
+ TIPO := TIPODETALLE_CONCEPTO;
+ VISIBLE := VISIBLE_TRUE;
+
+
+ Self.DataTable.DisableEventHandlers;
+ try
+ CANTIDAD := 1;
+ finally
+ Self.DataTable.EnableEventHandlers;
+ end;
+end;
+
+function TBizPresupuestos.ShowForSelect : TModalResult;
+begin
+ Result := ShowEditor(IBizPresupuestos, Self, etSelectItems);
+end;
+
+procedure TBizPresupuestos.ShowApplyUpdateFailed(
+ const Error: EDAApplyUpdateFailed);
+begin
+ if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
+ MessageBox(0, 'No se puede borrar este presupuesto porque tiene un montaje o albarán asociado', 'Atención', MB_ICONWARNING or MB_OK);
+end;
+
+procedure TBizPresupuestos.BeforeDelete(Sender: TDADataTable);
+begin
+ inherited;
+ if not dmPresupuestos.PuedoEliminarPresupuesto(CODIGO) then
+ raise Exception.Create('No se puede borrar este presupuesto porque tiene un montaje o albarán asociado');
+ FMasterDeleting := True; // Para que los detalles se borren de golpe y no recalcule posiciones ni totales
+
+ //DOCUMENTOS ASOCIADOS
+{ GestorDocumentos.Directorio := CODIGO;
+ GestorDocumentos.procesarDeleteTable;}
+end;
+
+procedure TBizPresupuestos.AfterDelete(Sender: TDADataTable);
+begin
+ inherited;
+ FMasterDeleting := False;
+end;
+
+procedure TBizPresupuestos.Print;
+begin
+ dmPresupuestos.Print(CODIGO);
+end;
+
+procedure TBizPresupuestos.BeforeApplyUpdates(Sender: TDADataTable;
+ const Delta: IDADelta);
+var
+ i : integer;
+begin
+ for i := 0 to Delta.Count - 1 do
+ case Delta.Changes[i].ChangeType of
+ ctInsert, ctUpdate : ValidarPresupuesto(Self);
+ //ctDelete :
+ end;
+end;
+
+procedure TBizPresupuestos.OnPostError(DataTable: TDADataTable;
+ Error: EDatabaseError; var Action: TDataAction);
+begin
+ inherited;
+ Action := daAbort;
+ if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
+ begin
+ if (Pos('contacto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar el cliente de este presupuesto', 'Atención', MB_ICONWARNING or MB_OK);
+ if (Pos('Fecha presupuesto', Error.Message) > 0) then
+ MessageBox(0, 'Debe indicar la fecha de este presupuesto', 'Atención', MB_ICONWARNING or MB_OK);
+ end
+ else
+ raise Error;
+end;
+
+function TBizDetallesPresupuesto.PuedoLanzarEvento: Boolean;
+begin
+ Result := FPuedoLanzarEvento;
+end;
+
+procedure TBizDetallesPresupuesto.RecalcularImporte;
+begin
+ RecalcularImporteDetalle(Self.DataTable, True, True);
+end;
+
+procedure TBizPresupuestos.CopyFrom(APresupuesto: IBizPresupuestos);
+begin
+ DataTable.DisableEventHandlers;
+ try
+ if not APresupuesto.DataTable.Active then
+ APresupuesto.DataTable.Active := True;
+ CODIGOEMPRESA := APresupuesto.CODIGOEMPRESA;
+ TIPO := APresupuesto.TIPO;
+
+ CODIGOCONTACTO := APresupuesto.CODIGOCONTACTO;
+ NOMBRE := APresupuesto.NOMBRE;
+ Cliente := APresupuesto.Cliente;
+
+ BASEIMPONIBLE := APresupuesto.BASEIMPONIBLE;
+ DESCUENTO := APresupuesto.DESCUENTO;
+ IMPORTEDESCUENTO := APresupuesto.IMPORTEDESCUENTO;
+ IVA := APresupuesto.IVA;
+ IMPORTEIVA := APresupuesto.IMPORTEIVA;
+ IMPORTETOTAL := APresupuesto.IMPORTETOTAL;
+ OBSERVACIONES := APresupuesto.OBSERVACIONES;
+ PLAZOENTREGA := APresupuesto.PLAZOENTREGA;
+ FORMAPAGO := APresupuesto.FORMAPAGO;
+ finally
+ DataTable.EnableEventHandlers;
+ end;
+ Post;
+ Detalles.CopyFrom(APresupuesto.Detalles);
+end;
+
+procedure TBizDetallesPresupuesto.Refrescar;
+begin
+ DataTable.Refresh;
+end;
+
+procedure TBizDetallesPresupuesto.SetCANTIDADValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosCANTIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTEPUNTOSValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTEPUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTETOTALValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTETOTAL].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetIMPORTEUNIDADValue(const aValue: Currency);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosIMPORTEUNIDAD].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizDetallesPresupuesto.SetPUNTOSValue(const aValue: Integer);
+begin
+ if aValue = 0
+ then DataTable.Fields[idx_DetallesPresupuestosPUNTOS].AsVariant := Null
+ else inherited;
+end;
+
+procedure TBizPresupuestos.BeforeCancel(Sender: TDADataTable);
+begin
+// GestorDocumentos.procesarCancelTable;
+end;
+
+{function TBizPresupuestos.GetGestorDocumentos: TGestorDocumentos;
+begin
+ FGestorDocumentos.Directorio := CODIGO;
+ Result := FGestorDocumentos;
+end;
+
+procedure TBizPresupuestos.SetGestorDocumentos(Value: TGestorDocumentos);
+begin
+ FGestorDocumentos := Value;
+end;
+}
+initialization
+ FMasterDeleting := False;
+ RegisterDataTableRules(BIZ_DETALLESPRESUPUESTOCLIENTE, TBizDetallesPresupuesto);
+ RegisterDataTableRules(BIZ_PRESUPUESTOCLIENTE, TBizPresupuestos);
+
+finalization
+
+end.
diff --git a/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.ddp b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.ddp differ
diff --git a/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.dfm b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.dfm
new file mode 100644
index 0000000..e0da162
--- /dev/null
+++ b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.dfm
@@ -0,0 +1,1869 @@
+object srvPresupuestos: TsrvPresupuestos
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ OnActivate = DARemoteServiceActivate
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schPresupuestos
+ ServiceAdapter = dmServer.DABINAdapter
+ Left = 729
+ Top = 363
+ Height = 359
+ Width = 328
+ object schPresupuestos: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'TIPO'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL = 'SELECT * FROM DAR_REFERENCIA_PRESUPUESTO(:TIPO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end>
+ end>
+ Name = 'DarReferenciaPresupuesto'
+ Fields = <
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ LogChanges = False
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPRESUPUESTOS'
+ SQL =
+ 'SELECT '#10' CODIGOPRESUPUESTO, NUMCONCEPTO, DESCRIPCION, CANTIDA' +
+ 'D, '#10' IMPORTEUNIDAD, IMPORTETOTAL, TIPO, POSICION, VISIBLE,'#10' ' +
+ ' PUNTOS, IMPORTEPUNTOS'#10' FROM'#10' DETALLESPRESUPUESTOS'#10' WHERE ' +
+ 'CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO'#10' ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end
+ item
+ DatasetField = 'VISIBLE'
+ TableField = 'VISIBLE'
+ end
+ item
+ DatasetField = 'PUNTOS'
+ TableField = 'PUNTOS'
+ end
+ item
+ DatasetField = 'IMPORTEPUNTOS'
+ TableField = 'IMPORTEPUNTOS'
+ end>
+ end>
+ Name = 'DetallesPresupuestos'
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DictionaryEntry = 'VISIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEPUNTOS'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'SELECT PRESUPUESTOS.CODIGOEMPRESA,'#10'PRESUPUESTOS.CODIGO, PRESUPUE' +
+ 'STOS.FECHAALTA,'#10'PRESUPUESTOS.USUARIO, PRESUPUESTOS.CODIGOCONTACT' +
+ 'O,'#10'CONTACTOS.NOMBRE,'#10'PRESUPUESTOS.REFERENCIA, PRESUPUESTOS.TIPO,' +
+ #10'PRESUPUESTOS.FECHAPRESUPUESTO, PRESUPUESTOS.VIGENCIAPRESUPUESTO' +
+ ','#10'PRESUPUESTOS.SITUACION, PRESUPUESTOS.FECHADECISION, PRESUPUEST' +
+ 'OS.BASEIMPONIBLE,'#10'PRESUPUESTOS.DESCUENTO, PRESUPUESTOS.IMPORTEDE' +
+ 'SCUENTO,'#10'PRESUPUESTOS.IVA, PRESUPUESTOS.IMPORTEIVA, PRESUPUESTOS' +
+ '.IMPORTETOTAL,'#10'PRESUPUESTOS.OBSERVACIONES, PRESUPUESTOS.PLAZOENT' +
+ 'REGA, PRESUPUESTOS.FORMAPAGO,'#10'ALBARANPAGO.CODIGO CODIGOALBARAN'#10'F' +
+ 'ROM CONTACTOS'#10' RIGHT OUTER JOIN PRESUPUESTOS ON (CONTACTOS.COD' +
+ 'IGO = PRESUPUESTOS.CODIGOCONTACTO)'#10' LEFT OUTER JOIN ALBARANPAG' +
+ 'O ON (PRESUPUESTOS.CODIGO = ALBARANPAGO.CODIGOPRESUPUESTO)'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'FECHAPRESUPUESTO'
+ TableField = 'FECHAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'VIGENCIAPRESUPUESTO'
+ TableField = 'VIGENCIAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHADECISION'
+ TableField = 'FECHADECISION'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'PLAZOENTREGA'
+ TableField = 'PLAZOENTREGA'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end>
+ end>
+ Name = 'Presupuestos'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOEMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAALTA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DictionaryEntry = 'USUARIO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOCONTACTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DictionaryEntry = 'REFERENCIA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ Description = 'Cocina, ba'#241'o, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPOPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'VIGENCIAPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ Description = 'Pendiente, aceptado o rechazado'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'SITUACIONPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FECHADECISION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'BASEIMPONIBLE'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEDESCUENTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEIVA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'OBSERVACIONES'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'PLAZOENTREGA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DictionaryEntry = 'FORMAPAGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'SELECT PRESUPUESTOS.CODIGO, CONTACTOS.NOMBRE, ALBARANPAGO.CODIGO' +
+ ' CODIGOALBARAN'#10'FROM CONTACTOS'#10' RIGHT OUTER JOIN PRESUPUESTOS O' +
+ 'N (CONTACTOS.CODIGO = PRESUPUESTOS.CODIGOCONTACTO)'#10' LEFT OUTER' +
+ ' JOIN ALBARANPAGO ON (PRESUPUESTOS.CODIGO = ALBARANPAGO.CODIGOPR' +
+ 'ESUPUESTO)'#10'WHERE PRESUPUESTOS.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CODIGOALBARAN'
+ TableField = 'CODIGOALBARAN'
+ end>
+ end>
+ Name = 'Presupuestos_RefreshDataset'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOALBARAN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. albar'#225'n'
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'SELECT PR.CODIGOEMPRESA, PR.CODIGO, PR.FECHAALTA, PR.USUARIO, PR' +
+ '.CODIGOCONTACTO,'#10'PR.REFERENCIA, PR.TIPO, PR.FECHAPRESUPUESTO, PR' +
+ '.VIGENCIAPRESUPUESTO, PR.SITUACION,'#10'PR.FECHADECISION, PR.BASEIMP' +
+ 'ONIBLE, PR.DESCUENTO, PR.IMPORTEDESCUENTO, PR.IVA,'#10'PR.IMPORTEIVA' +
+ ', PR.IMPORTETOTAL, PR.OBSERVACIONES, PR.PLAZOENTREGA, PR.FORMAPA' +
+ 'GO,'#10#10'CO.NIFCIF, CO.NOMBRE, CO.CALLE, CO.CODIGOPOSTAL, CO.POBLACI' +
+ 'ON, CO.TELEFONO1,'#10'CO.TELEFONO2, CO.MOVIL'#10#10'FROM PRESUPUESTOS PR'#10'L' +
+ 'EFT JOIN CONTACTOS CO ON (PR.codigocontacto = CO.CODIGO)'#10'WHERE P' +
+ 'R.CODIGO = :CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'FECHAALTA'
+ TableField = 'FECHAALTA'
+ end
+ item
+ DatasetField = 'USUARIO'
+ TableField = 'USUARIO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'REFERENCIA'
+ TableField = 'REFERENCIA'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'FECHAPRESUPUESTO'
+ TableField = 'FECHAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'VIGENCIAPRESUPUESTO'
+ TableField = 'VIGENCIAPRESUPUESTO'
+ end
+ item
+ DatasetField = 'SITUACION'
+ TableField = 'SITUACION'
+ end
+ item
+ DatasetField = 'FECHADECISION'
+ TableField = 'FECHADECISION'
+ end
+ item
+ DatasetField = 'BASEIMPONIBLE'
+ TableField = 'BASEIMPONIBLE'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTEDESCUENTO'
+ TableField = 'IMPORTEDESCUENTO'
+ end
+ item
+ DatasetField = 'IVA'
+ TableField = 'IVA'
+ end
+ item
+ DatasetField = 'IMPORTEIVA'
+ TableField = 'IMPORTEIVA'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'OBSERVACIONES'
+ TableField = 'OBSERVACIONES'
+ end
+ item
+ DatasetField = 'PLAZOENTREGA'
+ TableField = 'PLAZOENTREGA'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'NIFCIF'
+ TableField = 'NIFCIF'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'CALLE'
+ TableField = 'CALLE'
+ end
+ item
+ DatasetField = 'CODIGOPOSTAL'
+ TableField = 'CODIGOPOSTAL'
+ end
+ item
+ DatasetField = 'POBLACION'
+ TableField = 'POBLACION'
+ end
+ item
+ DatasetField = 'TELEFONO1'
+ TableField = 'TELEFONO1'
+ end
+ item
+ DatasetField = 'TELEFONO2'
+ TableField = 'TELEFONO2'
+ end
+ item
+ DatasetField = 'MOVIL'
+ TableField = 'MOVIL'
+ end>
+ end>
+ Name = 'InformeCabeceraPresupuesto'
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO1'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TELEFONO2'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'DETALLESPRESUPUESTOS'
+ SQL =
+ 'SELECT '#10' CODIGOPRESUPUESTO, NUMCONCEPTO, DESCRIPCION, CANTIDA' +
+ 'D, '#10' IMPORTEUNIDAD, IMPORTETOTAL, TIPO, POSICION'#10' FROM'#10' D' +
+ 'ETALLESPRESUPUESTOS'#10' WHERE CODIGOPRESUPUESTO = :CODIGOPRESUPUES' +
+ 'TO'#10' AND VISIBLE = '#39'S'#39#10' ORDER BY POSICION'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'CODIGOPRESUPUESTO'
+ TableField = 'CODIGOPRESUPUESTO'
+ end
+ item
+ DatasetField = 'NUMCONCEPTO'
+ TableField = 'NUMCONCEPTO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CANTIDAD'
+ TableField = 'CANTIDAD'
+ end
+ item
+ DatasetField = 'IMPORTEUNIDAD'
+ TableField = 'IMPORTEUNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTETOTAL'
+ TableField = 'IMPORTETOTAL'
+ end
+ item
+ DatasetField = 'TIPO'
+ TableField = 'TIPO'
+ end
+ item
+ DatasetField = 'POSICION'
+ TableField = 'POSICION'
+ end>
+ end>
+ Name = 'InformeDetallesPresupuesto'
+ Fields = <
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CODIGOPRESUPUESTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'NUMCONCEPTO'
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DictionaryEntry = 'DESCRIPCIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'CANTIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTEUNIDAD'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DictionaryEntry = 'IMPORTETOTAL'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DictionaryEntry = 'TIPODETALLESPRESUPUESTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'POSICION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'POSICIONCONCEPTO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'INSERT'#10' INTO PRESUPUESTOS'#10' (CODIGOEMPRESA, CODIGO, FECHAALTA' +
+ ', USUARIO, CODIGOCONTACTO,'#10' REFERENCIA, TIPO, FECHAPRESUPUES' +
+ 'TO, VIGENCIAPRESUPUESTO, '#10' SITUACION, FECHADECISION, BASEIMP' +
+ 'ONIBLE, DESCUENTO, '#10' IMPORTEDESCUENTO, IVA, IMPORTEIVA, IMPO' +
+ 'RTETOTAL, OBSERVACIONES, '#10' PLAZOENTREGA, FORMAPAGO)'#10' VALUES' +
+ #10' (:CODIGOEMPRESA, :CODIGO,'#10' :FECHAALTA, :USUARIO, :CODIG' +
+ 'OCONTACTO,'#10' :REFERENCIA, :TIPO, :FECHAPRESUPUESTO, :VIGENCIA' +
+ 'PRESUPUESTO, '#10' :SITUACION, :FECHADECISION, :BASEIMPONIBLE, :' +
+ 'DESCUENTO, '#10' :IMPORTEDESCUENTO, :IVA, :IMPORTEIVA, :IMPORTET' +
+ 'OTAL, '#10' :OBSERVACIONES, :PLAZOENTREGA, :FORMAPAGO);'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_Presupuestos'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'TIPO'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'SITUACION'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'UPDATE PRESUPUESTOS'#10' SET '#10' CODIGOEMPRESA = :CODIGOEMPRESA, '#10 +
+ ' FECHAALTA = :FECHAALTA, '#10' USUARIO = :USUARIO, '#10' CODIGO' +
+ 'CONTACTO = :CODIGOCONTACTO, '#10' REFERENCIA = :REFERENCIA, '#10' ' +
+ 'TIPO = :TIPO, '#10' FECHAPRESUPUESTO = :FECHAPRESUPUESTO, '#10' VI' +
+ 'GENCIAPRESUPUESTO = :VIGENCIAPRESUPUESTO, '#10' SITUACION = :SITU' +
+ 'ACION, '#10' FECHADECISION = :FECHADECISION, '#10' BASEIMPONIBLE =' +
+ ' :BASEIMPONIBLE, '#10' DESCUENTO = :DESCUENTO, '#10' IMPORTEDESCUE' +
+ 'NTO = :IMPORTEDESCUENTO, '#10' IVA = :IVA, '#10' IMPORTEIVA = :IMP' +
+ 'ORTEIVA, '#10' IMPORTETOTAL = :IMPORTETOTAL, '#10' OBSERVACIONES =' +
+ ' :OBSERVACIONES, '#10' PLAZOENTREGA = :PLAZOENTREGA, '#10' FORMAPA' +
+ 'GO = :FORMAPAGO'#10' WHERE'#10' (CODIGO = :OLD_CODIGO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_Presupuestos'
+ end
+ item
+ Params = <
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'PRESUPUESTOS'
+ SQL =
+ 'DELETE '#10' FROM'#10' PRESUPUESTOS'#10' WHERE'#10' (CODIGO = :OLD_CODIG' +
+ 'O)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_Presupuestos'
+ end>
+ RelationShips = <
+ item
+ Name = 'FK_DetallesPresupuestos_Presupuestos'
+ MasterDatasetName = 'Presupuestos'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'DetallesPresupuestos'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ end
+ item
+ Name = 'FK_InformeDetallesPresupuesto_InformeCabeceraPresupuesto'
+ MasterDatasetName = 'InformeCabeceraPresupuesto'
+ MasterFields = 'CODIGO'
+ DetailDatasetName = 'InformeDetallesPresupuesto'
+ DetailFields = 'CODIGOPRESUPUESTO'
+ end>
+ UpdateRules = <
+ item
+ Name = 'Insert Presupuestos'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update Presupuestos'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete DetallesPresupuestos'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Update DetallesPresupuestos'
+ DoUpdate = True
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Insert DetallesPresupuestos'
+ DoUpdate = False
+ DoInsert = True
+ DoDelete = False
+ DatasetName = 'DetallesPresupuestos'
+ FailureBehaviour = fbRaiseException
+ end
+ item
+ Name = 'Delete Presupuestos'
+ DoUpdate = False
+ DoInsert = False
+ DoDelete = True
+ DatasetName = 'Presupuestos'
+ FailureBehaviour = fbRaiseException
+ end>
+ Left = 48
+ Top = 24
+ end
+ object bpPresupuestos: TDABusinessProcessor
+ Schema = schPresupuestos
+ InsertCommandName = 'Insert_Presupuestos'
+ UpdateCommandName = 'Update_Presupuestos'
+ RefreshDatasetName = 'Presupuestos_RefreshDataset'
+ ReferencedDataset = 'Presupuestos'
+ ProcessorOptions = [poAutoGenerateDelete, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 208
+ Top = 24
+ end
+ object frxReport1: TfrxReport
+ Version = '3.15'
+ 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 = 38758.908826805560000000
+ ReportOptions.VersionBuild = '1'
+ ReportOptions.VersionMajor = '12'
+ ReportOptions.VersionMinor = '13'
+ ReportOptions.VersionRelease = '1'
+ ScriptLanguage = 'PascalScript'
+ ScriptText.Strings = (
+ 'procedure DatosClienteOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' DatosCliente.Lines.Clear;'
+ ' DatosCliente.Lines.Add();'
+ ''
+ ' if ( <> '#39#39')'
+ ' or ( <> '#39#39') then'
+
+ ' DatosCliente.Lines.Add( + );'
+ 'end;'
+ ''
+ 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+ ' case of'
+ ' '#39'C'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto normal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto normal'#39';'
+ ' end;'
+ ' '#39'S'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo2.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo3.Style := '#39'Concepto subtotal'#39';'
+ ' MemoCampo4.Style := '#39'Concepto subtotal'#39';'
+ ' end;'
+ ' '#39'T'#39': begin'
+ ' MemoCampo12.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo2.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo3.Style := '#39'Concepto titulo'#39';'
+ ' MemoCampo4.Style := '#39'Concepto titulo'#39';'
+ ' end;'
+ ' end;'
+ 'end;'
+ ''
+ 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
+ 'begin'
+
+ ' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSum' +
+ 'mary1.Height - 1;'
+ 'end;'
+ ''
+ 'begin'
+ ''
+ 'end.')
+ StoreInDFM = False
+ Left = 40
+ Top = 128
+ Datasets = <
+ item
+ DataSet = frxDBCabecera
+ DataSetName = 'frxDBCabecera'
+ end
+ item
+ DataSet = frxDBDetalles
+ DataSetName = 'frxDBDetalles'
+ 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 DADataCabecera: TDADataSource
+ DataTable = tbl_Presupuesto
+ Left = 120
+ Top = 176
+ end
+ object DADataDetalles: TDADataSource
+ DataTable = tbl_DetallesPresupuesto
+ Left = 200
+ Top = 176
+ end
+ object frxDBCabecera: TfrxDBDataset
+ UserName = 'frxDBCabecera'
+ CloseDataSource = False
+ DataSource = DADataCabecera
+ Left = 120
+ Top = 128
+ end
+ object frxDBDetalles: TfrxDBDataset
+ UserName = 'frxDBDetalles'
+ CloseDataSource = False
+ DataSource = DADataDetalles
+ Left = 200
+ Top = 128
+ end
+ object tbl_Presupuesto: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = dmServer.DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 120
+ Top = 240
+ end
+ object tbl_DetallesPresupuesto: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ SchemaCall.Params = <>
+ DataRequestCall.Params = <>
+ DataUpdateCall.Params = <>
+ ScriptCall.Params = <>
+ ReadOnly = False
+ Adapter = dmServer.DABINAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ IndexDefs = <>
+ Left = 200
+ Top = 240
+ end
+end
diff --git a/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.pas b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.pas
new file mode 100644
index 0000000..9e396be
--- /dev/null
+++ b/Modulos/Presupuestos_/Servidor/srvPresupuestos_Impl.pas
@@ -0,0 +1,133 @@
+unit srvPresupuestos_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDAInterfaces, uDAEngine,
+ uDAIBXDriver, frxClass, frxDBSet, DB, uDACDSDataTable, uDABINAdapter,
+ uDADriverManager;
+
+type
+ { TsrvPresupuestos }
+ TsrvPresupuestos = class(TDARemoteService, IsrvPresupuestos)
+ bpPresupuestos: TDABusinessProcessor;
+ DADataCabecera: TDADataSource;
+ DADataDetalles: TDADataSource;
+ frxDBCabecera: TfrxDBDataset;
+ frxDBDetalles: TfrxDBDataset;
+ tbl_Presupuesto: TDACDSDataTable;
+ tbl_DetallesPresupuesto: TDACDSDataTable;
+ schPresupuestos: TDASchema;
+ frxReport1: TfrxReport;
+ procedure DARemoteServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+ private
+ protected
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function GetNextAutoinc: Integer;
+ function DarNuevaReferencia(const TipoPresupuesto: String): String;
+ function PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ Dialogs,
+ {Generated:} FactuGES_Invk, uDataModuleServer, uRORemoteDataModule,
+ fServerForm, Variants, IB, schPresupuestosClient_Intf;
+
+procedure Create_srvPresupuestos(out anInstance : IUnknown);
+begin
+ anInstance := TsrvPresupuestos.Create(NIL);
+end;
+
+{ srvPresupuestos }
+procedure TsrvPresupuestos.DARemoteServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+begin
+ ((Connection as IDAConnectionObjectAccess).ConnectionObject as
+ TIBXConnection).Database.TraceFlags := [tfQPrepare, tfQExecute, tfQFetch, tfError, tfStmt, tfConnect, tfTransact, tfBlob, tfService, tfMisc];
+end;
+
+function TsrvPresupuestos.GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+var
+ dsMaster: IDADataset;
+ dsDetail: IDADataset;
+ AStream: TMemoryStream;
+begin
+ AStream := TMemoryStream.Create;
+ Result := Binary.Create;
+ try
+ dsMaster := schPresupuestos.NewDataset(Connection, 'InformeCabeceraPresupuesto', ['CODIGO'], [Codigo]);
+ dsDetail := schPresupuestos.NewDataset(Connection, 'InformeDetallesPresupuesto', ['CODIGOPRESUPUESTO'], [Codigo], False);
+ dsDetail.Active := True;
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_Presupuesto, TRUE, '', TRUE, TRUE);
+
+ AStream.Clear;
+ ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
+ ServiceAdapter.ReadDataset(AStream, tbl_DetallesPresupuesto, TRUE, '', TRUE, TRUE);
+
+ frxReport1.LoadFromFile(DarRutaInformes + 'InfPresupuesto.fr3', True);
+
+ //Tamaño de letra
+ if TamLetra <> 0 then
+ frxReport1.Styles.Find('Concepto normal').Font.Size := TamLetra;
+
+ frxReport1.PrepareReport;
+ frxReport1.PreviewPages.SaveToStream(Result);
+ finally
+ AStream.Free;
+ end;
+end;
+
+function TsrvPresupuestos.GetNextAutoinc: Integer;
+begin
+ Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_PRESUPUESTOS');
+end;
+
+function TsrvPresupuestos.DarNuevaReferencia(const TipoPresupuesto: String): String;
+var
+ dsReferencia: IDADataset;
+begin
+ dsReferencia := schPresupuestos.NewDataset(Connection, 'DarReferenciaPresupuesto', ['TIPO'], [TipoPresupuesto]);
+ Result := dsReferencia.FieldByName('REFERENCIA').AsString;
+end;
+
+function TsrvPresupuestos.PuedoEliminarPresupuesto(
+ const CodigoPresupuesto: Integer): Boolean;
+var
+ dsPresupuesto: IDASQLCommand;
+begin
+ Result := True;
+ Connection.BeginTransaction;
+ try
+ dsPresupuesto := schPresupuestos.NewCommand(Connection, 'Delete_Presupuestos', ['OLD_CODIGO'], [CodigoPresupuesto]);
+ except
+ on E: Exception do
+ Result := False;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+initialization
+ TROClassFactory.Create('srvPresupuestos', Create_srvPresupuestos, TsrvPresupuestos_Invoker);
+
+finalization
+
+end.
diff --git a/Output/Cliente/AlbaranesCliente.bpl b/Output/Cliente/AlbaranesCliente.bpl
new file mode 100644
index 0000000..6aa0d85
Binary files /dev/null and b/Output/Cliente/AlbaranesCliente.bpl differ
diff --git a/Output/Cliente/Almacenes.bpl b/Output/Cliente/Almacenes.bpl
new file mode 100644
index 0000000..166e69c
Binary files /dev/null and b/Output/Cliente/Almacenes.bpl differ
diff --git a/Output/Cliente/Articulos.bpl b/Output/Cliente/Articulos.bpl
new file mode 100644
index 0000000..5a41971
Binary files /dev/null and b/Output/Cliente/Articulos.bpl differ
diff --git a/Output/Cliente/ArticulosMontaje.bpl b/Output/Cliente/ArticulosMontaje.bpl
new file mode 100644
index 0000000..4efa238
Binary files /dev/null and b/Output/Cliente/ArticulosMontaje.bpl differ
diff --git a/Output/Cliente/Asientos.bpl b/Output/Cliente/Asientos.bpl
new file mode 100644
index 0000000..93a28b6
Binary files /dev/null and b/Output/Cliente/Asientos.bpl differ
diff --git a/Output/Cliente/BaseD7.bpl b/Output/Cliente/BaseD7.bpl
new file mode 100644
index 0000000..4176cbf
Binary files /dev/null and b/Output/Cliente/BaseD7.bpl differ
diff --git a/Output/Cliente/Calendarios.bpl b/Output/Cliente/Calendarios.bpl
new file mode 100644
index 0000000..ae22f39
Binary files /dev/null and b/Output/Cliente/Calendarios.bpl differ
diff --git a/Output/Cliente/Cliente.exe b/Output/Cliente/Cliente.exe
new file mode 100644
index 0000000..711223a
Binary files /dev/null and b/Output/Cliente/Cliente.exe differ
diff --git a/Output/Cliente/Configuracion.bpl b/Output/Cliente/Configuracion.bpl
new file mode 100644
index 0000000..e193c45
Binary files /dev/null and b/Output/Cliente/Configuracion.bpl differ
diff --git a/Output/Cliente/Contactos.bpl b/Output/Cliente/Contactos.bpl
new file mode 100644
index 0000000..583d412
Binary files /dev/null and b/Output/Cliente/Contactos.bpl differ
diff --git a/Output/Cliente/Cuentas.bpl b/Output/Cliente/Cuentas.bpl
new file mode 100644
index 0000000..b2953ae
Binary files /dev/null and b/Output/Cliente/Cuentas.bpl differ
diff --git a/Output/Cliente/DocumentosAsociados.bpl b/Output/Cliente/DocumentosAsociados.bpl
new file mode 100644
index 0000000..12a0b76
Binary files /dev/null and b/Output/Cliente/DocumentosAsociados.bpl differ
diff --git a/Output/Cliente/FactuGES.exe b/Output/Cliente/FactuGES.exe
new file mode 100644
index 0000000..96c2969
Binary files /dev/null and b/Output/Cliente/FactuGES.exe differ
diff --git a/Output/Cliente/FactuGES_Server.exe b/Output/Cliente/FactuGES_Server.exe
new file mode 100644
index 0000000..68093d0
Binary files /dev/null and b/Output/Cliente/FactuGES_Server.exe differ
diff --git a/Output/Cliente/FacturasCliente.bpl b/Output/Cliente/FacturasCliente.bpl
new file mode 100644
index 0000000..f7bd80d
Binary files /dev/null and b/Output/Cliente/FacturasCliente.bpl differ
diff --git a/Output/Cliente/FacturasProveedor.bpl b/Output/Cliente/FacturasProveedor.bpl
new file mode 100644
index 0000000..f6e2a6d
Binary files /dev/null and b/Output/Cliente/FacturasProveedor.bpl differ
diff --git a/Output/Cliente/Intervalos.bpl b/Output/Cliente/Intervalos.bpl
new file mode 100644
index 0000000..34efc2b
Binary files /dev/null and b/Output/Cliente/Intervalos.bpl differ
diff --git a/Output/Cliente/Montajes_Impl.bpl b/Output/Cliente/Montajes_Impl.bpl
new file mode 100644
index 0000000..c3bac19
Binary files /dev/null and b/Output/Cliente/Montajes_Impl.bpl differ
diff --git a/Output/Cliente/Montajes_Intf.bpl b/Output/Cliente/Montajes_Intf.bpl
new file mode 100644
index 0000000..c944f58
Binary files /dev/null and b/Output/Cliente/Montajes_Intf.bpl differ
diff --git a/Output/Cliente/Pagos.bpl b/Output/Cliente/Pagos.bpl
new file mode 100644
index 0000000..13f9b3e
Binary files /dev/null and b/Output/Cliente/Pagos.bpl differ
diff --git a/Output/Cliente/PedidosMontaje.bpl b/Output/Cliente/PedidosMontaje.bpl
new file mode 100644
index 0000000..64a1236
Binary files /dev/null and b/Output/Cliente/PedidosMontaje.bpl differ
diff --git a/Output/Cliente/PedidosProveedor.bpl b/Output/Cliente/PedidosProveedor.bpl
new file mode 100644
index 0000000..56fe881
Binary files /dev/null and b/Output/Cliente/PedidosProveedor.bpl differ
diff --git a/Output/Cliente/Presupuestos.bpl b/Output/Cliente/Presupuestos.bpl
new file mode 100644
index 0000000..bd0e4b4
Binary files /dev/null and b/Output/Cliente/Presupuestos.bpl differ
diff --git a/Output/Cliente/Presupuestos_Intf.bpl b/Output/Cliente/Presupuestos_Intf.bpl
new file mode 100644
index 0000000..2664a51
Binary files /dev/null and b/Output/Cliente/Presupuestos_Intf.bpl differ
diff --git a/Output/Cliente/Usuarios.bpl b/Output/Cliente/Usuarios.bpl
new file mode 100644
index 0000000..95f8ad3
Binary files /dev/null and b/Output/Cliente/Usuarios.bpl differ
diff --git a/Output/Produccion/Cliente/AlbaranesCliente.bpl b/Output/Produccion/Cliente/AlbaranesCliente.bpl
new file mode 100644
index 0000000..6aa0d85
Binary files /dev/null and b/Output/Produccion/Cliente/AlbaranesCliente.bpl differ
diff --git a/Output/Produccion/Cliente/Almacenes.bpl b/Output/Produccion/Cliente/Almacenes.bpl
new file mode 100644
index 0000000..166e69c
Binary files /dev/null and b/Output/Produccion/Cliente/Almacenes.bpl differ
diff --git a/Output/Produccion/Cliente/Articulos.bpl b/Output/Produccion/Cliente/Articulos.bpl
new file mode 100644
index 0000000..5a41971
Binary files /dev/null and b/Output/Produccion/Cliente/Articulos.bpl differ
diff --git a/Output/Produccion/Cliente/ArticulosMontaje.bpl b/Output/Produccion/Cliente/ArticulosMontaje.bpl
new file mode 100644
index 0000000..4efa238
Binary files /dev/null and b/Output/Produccion/Cliente/ArticulosMontaje.bpl differ
diff --git a/Output/Produccion/Cliente/Asientos.bpl b/Output/Produccion/Cliente/Asientos.bpl
new file mode 100644
index 0000000..93a28b6
Binary files /dev/null and b/Output/Produccion/Cliente/Asientos.bpl differ
diff --git a/Output/Produccion/Cliente/BaseD7.bpl b/Output/Produccion/Cliente/BaseD7.bpl
new file mode 100644
index 0000000..4176cbf
Binary files /dev/null and b/Output/Produccion/Cliente/BaseD7.bpl differ
diff --git a/Output/Produccion/Cliente/Calendarios.bpl b/Output/Produccion/Cliente/Calendarios.bpl
new file mode 100644
index 0000000..ae22f39
Binary files /dev/null and b/Output/Produccion/Cliente/Calendarios.bpl differ
diff --git a/Output/Produccion/Cliente/Configuracion.bpl b/Output/Produccion/Cliente/Configuracion.bpl
new file mode 100644
index 0000000..e193c45
Binary files /dev/null and b/Output/Produccion/Cliente/Configuracion.bpl differ
diff --git a/Output/Produccion/Cliente/Contactos.bpl b/Output/Produccion/Cliente/Contactos.bpl
new file mode 100644
index 0000000..a0eef6a
Binary files /dev/null and b/Output/Produccion/Cliente/Contactos.bpl differ
diff --git a/Output/Produccion/Cliente/Cuentas.bpl b/Output/Produccion/Cliente/Cuentas.bpl
new file mode 100644
index 0000000..b2953ae
Binary files /dev/null and b/Output/Produccion/Cliente/Cuentas.bpl differ
diff --git a/Output/Produccion/Cliente/DJcl70.bpl b/Output/Produccion/Cliente/DJcl70.bpl
new file mode 100644
index 0000000..10426b5
Binary files /dev/null and b/Output/Produccion/Cliente/DJcl70.bpl differ
diff --git a/Output/Produccion/Cliente/DJclVcl70.bpl b/Output/Produccion/Cliente/DJclVcl70.bpl
new file mode 100644
index 0000000..004a047
Binary files /dev/null and b/Output/Produccion/Cliente/DJclVcl70.bpl differ
diff --git a/Output/Produccion/Cliente/DataAbstract_D7.bpl b/Output/Produccion/Cliente/DataAbstract_D7.bpl
new file mode 100644
index 0000000..178ec60
Binary files /dev/null and b/Output/Produccion/Cliente/DataAbstract_D7.bpl differ
diff --git a/Output/Produccion/Cliente/DocumentosAsociados.bpl b/Output/Produccion/Cliente/DocumentosAsociados.bpl
new file mode 100644
index 0000000..12a0b76
Binary files /dev/null and b/Output/Produccion/Cliente/DocumentosAsociados.bpl differ
diff --git a/Output/Produccion/Cliente/EPCCommon70.bpl b/Output/Produccion/Cliente/EPCCommon70.bpl
new file mode 100644
index 0000000..c26aafe
Binary files /dev/null and b/Output/Produccion/Cliente/EPCCommon70.bpl differ
diff --git a/Output/Produccion/Cliente/EPCDUnitWizard70.bpl b/Output/Produccion/Cliente/EPCDUnitWizard70.bpl
new file mode 100644
index 0000000..ebe2516
Binary files /dev/null and b/Output/Produccion/Cliente/EPCDUnitWizard70.bpl differ
diff --git a/Output/Produccion/Cliente/EPCOTAUtils70.bpl b/Output/Produccion/Cliente/EPCOTAUtils70.bpl
new file mode 100644
index 0000000..20e9370
Binary files /dev/null and b/Output/Produccion/Cliente/EPCOTAUtils70.bpl differ
diff --git a/Output/Produccion/Cliente/EasyListviewD7.bpl b/Output/Produccion/Cliente/EasyListviewD7.bpl
new file mode 100644
index 0000000..e39f769
Binary files /dev/null and b/Output/Produccion/Cliente/EasyListviewD7.bpl differ
diff --git a/Output/Produccion/Cliente/FactuGES.exe b/Output/Produccion/Cliente/FactuGES.exe
new file mode 100644
index 0000000..96c2969
Binary files /dev/null and b/Output/Produccion/Cliente/FactuGES.exe differ
diff --git a/Output/Produccion/Cliente/FacturasCliente.bpl b/Output/Produccion/Cliente/FacturasCliente.bpl
new file mode 100644
index 0000000..f7bd80d
Binary files /dev/null and b/Output/Produccion/Cliente/FacturasCliente.bpl differ
diff --git a/Output/Produccion/Cliente/FacturasProveedor.bpl b/Output/Produccion/Cliente/FacturasProveedor.bpl
new file mode 100644
index 0000000..f6e2a6d
Binary files /dev/null and b/Output/Produccion/Cliente/FacturasProveedor.bpl differ
diff --git a/Output/Produccion/Cliente/Fax.bpl b/Output/Produccion/Cliente/Fax.bpl
new file mode 100644
index 0000000..f9754f3
Binary files /dev/null and b/Output/Produccion/Cliente/Fax.bpl differ
diff --git a/Output/Produccion/Cliente/GUISDK_D7.bpl b/Output/Produccion/Cliente/GUISDK_D7.bpl
new file mode 100644
index 0000000..6d9d592
Binary files /dev/null and b/Output/Produccion/Cliente/GUISDK_D7.bpl differ
diff --git a/Output/Produccion/Cliente/Intervalos.bpl b/Output/Produccion/Cliente/Intervalos.bpl
new file mode 100644
index 0000000..34efc2b
Binary files /dev/null and b/Output/Produccion/Cliente/Intervalos.bpl differ
diff --git a/Output/Produccion/Cliente/Jcl70.bpl b/Output/Produccion/Cliente/Jcl70.bpl
new file mode 100644
index 0000000..f8fd7f7
Binary files /dev/null and b/Output/Produccion/Cliente/Jcl70.bpl differ
diff --git a/Output/Produccion/Cliente/JclBaseExpert70.bpl b/Output/Produccion/Cliente/JclBaseExpert70.bpl
new file mode 100644
index 0000000..766f132
Binary files /dev/null and b/Output/Produccion/Cliente/JclBaseExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclDebugExpert70.bpl b/Output/Produccion/Cliente/JclDebugExpert70.bpl
new file mode 100644
index 0000000..3ab1836
Binary files /dev/null and b/Output/Produccion/Cliente/JclDebugExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclFavoriteFoldersExpert70.bpl b/Output/Produccion/Cliente/JclFavoriteFoldersExpert70.bpl
new file mode 100644
index 0000000..8ae390b
Binary files /dev/null and b/Output/Produccion/Cliente/JclFavoriteFoldersExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclProjectAnalysisExpert70.bpl b/Output/Produccion/Cliente/JclProjectAnalysisExpert70.bpl
new file mode 100644
index 0000000..d640381
Binary files /dev/null and b/Output/Produccion/Cliente/JclProjectAnalysisExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclSIMDViewExpert70.bpl b/Output/Produccion/Cliente/JclSIMDViewExpert70.bpl
new file mode 100644
index 0000000..4a96621
Binary files /dev/null and b/Output/Produccion/Cliente/JclSIMDViewExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclUsesExpert70.bpl b/Output/Produccion/Cliente/JclUsesExpert70.bpl
new file mode 100644
index 0000000..f1013b0
Binary files /dev/null and b/Output/Produccion/Cliente/JclUsesExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/JclVClx70.bpl b/Output/Produccion/Cliente/JclVClx70.bpl
new file mode 100644
index 0000000..a710215
Binary files /dev/null and b/Output/Produccion/Cliente/JclVClx70.bpl differ
diff --git a/Output/Produccion/Cliente/JclVcl70.bpl b/Output/Produccion/Cliente/JclVcl70.bpl
new file mode 100644
index 0000000..9e905a8
Binary files /dev/null and b/Output/Produccion/Cliente/JclVcl70.bpl differ
diff --git a/Output/Produccion/Cliente/JclVersionControlExpert70.bpl b/Output/Produccion/Cliente/JclVersionControlExpert70.bpl
new file mode 100644
index 0000000..23e8861
Binary files /dev/null and b/Output/Produccion/Cliente/JclVersionControlExpert70.bpl differ
diff --git a/Output/Produccion/Cliente/Jv3rdD7R.bpl b/Output/Produccion/Cliente/Jv3rdD7R.bpl
new file mode 100644
index 0000000..bb00478
Binary files /dev/null and b/Output/Produccion/Cliente/Jv3rdD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvAppFrmD7D.bpl b/Output/Produccion/Cliente/JvAppFrmD7D.bpl
new file mode 100644
index 0000000..81129bd
Binary files /dev/null and b/Output/Produccion/Cliente/JvAppFrmD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvAppFrmD7R.bpl b/Output/Produccion/Cliente/JvAppFrmD7R.bpl
new file mode 100644
index 0000000..b7538e3
Binary files /dev/null and b/Output/Produccion/Cliente/JvAppFrmD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvBDED7D.bpl b/Output/Produccion/Cliente/JvBDED7D.bpl
new file mode 100644
index 0000000..90ebe49
Binary files /dev/null and b/Output/Produccion/Cliente/JvBDED7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvBDED7R.bpl b/Output/Produccion/Cliente/JvBDED7R.bpl
new file mode 100644
index 0000000..8a63e00
Binary files /dev/null and b/Output/Produccion/Cliente/JvBDED7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvBandsD7D.bpl b/Output/Produccion/Cliente/JvBandsD7D.bpl
new file mode 100644
index 0000000..6ea75f7
Binary files /dev/null and b/Output/Produccion/Cliente/JvBandsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvBandsD7R.bpl b/Output/Produccion/Cliente/JvBandsD7R.bpl
new file mode 100644
index 0000000..5d73c87
Binary files /dev/null and b/Output/Produccion/Cliente/JvBandsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvCmpD7D.bpl b/Output/Produccion/Cliente/JvCmpD7D.bpl
new file mode 100644
index 0000000..1e4c8ca
Binary files /dev/null and b/Output/Produccion/Cliente/JvCmpD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvCmpD7R.bpl b/Output/Produccion/Cliente/JvCmpD7R.bpl
new file mode 100644
index 0000000..92f14c0
Binary files /dev/null and b/Output/Produccion/Cliente/JvCmpD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvCoreD7D.bpl b/Output/Produccion/Cliente/JvCoreD7D.bpl
new file mode 100644
index 0000000..c3b3c98
Binary files /dev/null and b/Output/Produccion/Cliente/JvCoreD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvCoreD7R.bpl b/Output/Produccion/Cliente/JvCoreD7R.bpl
new file mode 100644
index 0000000..2183595
Binary files /dev/null and b/Output/Produccion/Cliente/JvCoreD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvCryptD7D.bpl b/Output/Produccion/Cliente/JvCryptD7D.bpl
new file mode 100644
index 0000000..6c61461
Binary files /dev/null and b/Output/Produccion/Cliente/JvCryptD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvCryptD7R.bpl b/Output/Produccion/Cliente/JvCryptD7R.bpl
new file mode 100644
index 0000000..3e3ca65
Binary files /dev/null and b/Output/Produccion/Cliente/JvCryptD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvCtrlsD7D.bpl b/Output/Produccion/Cliente/JvCtrlsD7D.bpl
new file mode 100644
index 0000000..4017415
Binary files /dev/null and b/Output/Produccion/Cliente/JvCtrlsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvCtrlsD7R.bpl b/Output/Produccion/Cliente/JvCtrlsD7R.bpl
new file mode 100644
index 0000000..fedb5e2
Binary files /dev/null and b/Output/Produccion/Cliente/JvCtrlsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvCustomD7D.bpl b/Output/Produccion/Cliente/JvCustomD7D.bpl
new file mode 100644
index 0000000..f009462
Binary files /dev/null and b/Output/Produccion/Cliente/JvCustomD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvCustomD7R.bpl b/Output/Produccion/Cliente/JvCustomD7R.bpl
new file mode 100644
index 0000000..0c0c6f2
Binary files /dev/null and b/Output/Produccion/Cliente/JvCustomD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvDBD7D.bpl b/Output/Produccion/Cliente/JvDBD7D.bpl
new file mode 100644
index 0000000..3418f35
Binary files /dev/null and b/Output/Produccion/Cliente/JvDBD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvDBD7R.bpl b/Output/Produccion/Cliente/JvDBD7R.bpl
new file mode 100644
index 0000000..37b3c2f
Binary files /dev/null and b/Output/Produccion/Cliente/JvDBD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvDlgsD7D.bpl b/Output/Produccion/Cliente/JvDlgsD7D.bpl
new file mode 100644
index 0000000..ee84446
Binary files /dev/null and b/Output/Produccion/Cliente/JvDlgsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvDlgsD7R.bpl b/Output/Produccion/Cliente/JvDlgsD7R.bpl
new file mode 100644
index 0000000..36c8b2c
Binary files /dev/null and b/Output/Produccion/Cliente/JvDlgsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvDockingD7D.bpl b/Output/Produccion/Cliente/JvDockingD7D.bpl
new file mode 100644
index 0000000..546bc8a
Binary files /dev/null and b/Output/Produccion/Cliente/JvDockingD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvDockingD7R.bpl b/Output/Produccion/Cliente/JvDockingD7R.bpl
new file mode 100644
index 0000000..1333ddb
Binary files /dev/null and b/Output/Produccion/Cliente/JvDockingD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvDotNetCtrlsD7D.bpl b/Output/Produccion/Cliente/JvDotNetCtrlsD7D.bpl
new file mode 100644
index 0000000..b1e667d
Binary files /dev/null and b/Output/Produccion/Cliente/JvDotNetCtrlsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvDotNetCtrlsD7R.bpl b/Output/Produccion/Cliente/JvDotNetCtrlsD7R.bpl
new file mode 100644
index 0000000..b55990d
Binary files /dev/null and b/Output/Produccion/Cliente/JvDotNetCtrlsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvEDID7D.bpl b/Output/Produccion/Cliente/JvEDID7D.bpl
new file mode 100644
index 0000000..3b6582a
Binary files /dev/null and b/Output/Produccion/Cliente/JvEDID7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvEDID7R.bpl b/Output/Produccion/Cliente/JvEDID7R.bpl
new file mode 100644
index 0000000..ae30d97
Binary files /dev/null and b/Output/Produccion/Cliente/JvEDID7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvGlobusD7D.bpl b/Output/Produccion/Cliente/JvGlobusD7D.bpl
new file mode 100644
index 0000000..118733e
Binary files /dev/null and b/Output/Produccion/Cliente/JvGlobusD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvGlobusD7R.bpl b/Output/Produccion/Cliente/JvGlobusD7R.bpl
new file mode 100644
index 0000000..5e0d1a4
Binary files /dev/null and b/Output/Produccion/Cliente/JvGlobusD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvHMID7D.bpl b/Output/Produccion/Cliente/JvHMID7D.bpl
new file mode 100644
index 0000000..80ded5b
Binary files /dev/null and b/Output/Produccion/Cliente/JvHMID7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvHMID7R.bpl b/Output/Produccion/Cliente/JvHMID7R.bpl
new file mode 100644
index 0000000..8e3e2e2
Binary files /dev/null and b/Output/Produccion/Cliente/JvHMID7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvInterpreterD7D.bpl b/Output/Produccion/Cliente/JvInterpreterD7D.bpl
new file mode 100644
index 0000000..0573aad
Binary files /dev/null and b/Output/Produccion/Cliente/JvInterpreterD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvInterpreterD7R.bpl b/Output/Produccion/Cliente/JvInterpreterD7R.bpl
new file mode 100644
index 0000000..859b453
Binary files /dev/null and b/Output/Produccion/Cliente/JvInterpreterD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvJansD7D.bpl b/Output/Produccion/Cliente/JvJansD7D.bpl
new file mode 100644
index 0000000..acb1a75
Binary files /dev/null and b/Output/Produccion/Cliente/JvJansD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvJansD7R.bpl b/Output/Produccion/Cliente/JvJansD7R.bpl
new file mode 100644
index 0000000..6e9643b
Binary files /dev/null and b/Output/Produccion/Cliente/JvJansD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvMMD7D.bpl b/Output/Produccion/Cliente/JvMMD7D.bpl
new file mode 100644
index 0000000..8869fb2
Binary files /dev/null and b/Output/Produccion/Cliente/JvMMD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvMMD7R.bpl b/Output/Produccion/Cliente/JvMMD7R.bpl
new file mode 100644
index 0000000..257afb4
Binary files /dev/null and b/Output/Produccion/Cliente/JvMMD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvManagedThreadsD7D.bpl b/Output/Produccion/Cliente/JvManagedThreadsD7D.bpl
new file mode 100644
index 0000000..113fb19
Binary files /dev/null and b/Output/Produccion/Cliente/JvManagedThreadsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvManagedThreadsD7R.bpl b/Output/Produccion/Cliente/JvManagedThreadsD7R.bpl
new file mode 100644
index 0000000..fe280fb
Binary files /dev/null and b/Output/Produccion/Cliente/JvManagedThreadsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvNetD7D.bpl b/Output/Produccion/Cliente/JvNetD7D.bpl
new file mode 100644
index 0000000..36614b2
Binary files /dev/null and b/Output/Produccion/Cliente/JvNetD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvNetD7R.bpl b/Output/Produccion/Cliente/JvNetD7R.bpl
new file mode 100644
index 0000000..804287f
Binary files /dev/null and b/Output/Produccion/Cliente/JvNetD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvPageCompsD7D.bpl b/Output/Produccion/Cliente/JvPageCompsD7D.bpl
new file mode 100644
index 0000000..5861847
Binary files /dev/null and b/Output/Produccion/Cliente/JvPageCompsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvPageCompsD7R.bpl b/Output/Produccion/Cliente/JvPageCompsD7R.bpl
new file mode 100644
index 0000000..f3ac0da
Binary files /dev/null and b/Output/Produccion/Cliente/JvPageCompsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvPluginD7D.bpl b/Output/Produccion/Cliente/JvPluginD7D.bpl
new file mode 100644
index 0000000..105cf7e
Binary files /dev/null and b/Output/Produccion/Cliente/JvPluginD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvPluginD7R.bpl b/Output/Produccion/Cliente/JvPluginD7R.bpl
new file mode 100644
index 0000000..281c7ce
Binary files /dev/null and b/Output/Produccion/Cliente/JvPluginD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvPrintPreviewD7D.bpl b/Output/Produccion/Cliente/JvPrintPreviewD7D.bpl
new file mode 100644
index 0000000..d14a857
Binary files /dev/null and b/Output/Produccion/Cliente/JvPrintPreviewD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvPrintPreviewD7R.bpl b/Output/Produccion/Cliente/JvPrintPreviewD7R.bpl
new file mode 100644
index 0000000..2055e17
Binary files /dev/null and b/Output/Produccion/Cliente/JvPrintPreviewD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvRuntimeDesignD7D.bpl b/Output/Produccion/Cliente/JvRuntimeDesignD7D.bpl
new file mode 100644
index 0000000..b929cf4
Binary files /dev/null and b/Output/Produccion/Cliente/JvRuntimeDesignD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvRuntimeDesignD7R.bpl b/Output/Produccion/Cliente/JvRuntimeDesignD7R.bpl
new file mode 100644
index 0000000..0d39722
Binary files /dev/null and b/Output/Produccion/Cliente/JvRuntimeDesignD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvStdCtrlsD7D.bpl b/Output/Produccion/Cliente/JvStdCtrlsD7D.bpl
new file mode 100644
index 0000000..fd2c73b
Binary files /dev/null and b/Output/Produccion/Cliente/JvStdCtrlsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvStdCtrlsD7R.bpl b/Output/Produccion/Cliente/JvStdCtrlsD7R.bpl
new file mode 100644
index 0000000..ec50080
Binary files /dev/null and b/Output/Produccion/Cliente/JvStdCtrlsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvSystemD7D.bpl b/Output/Produccion/Cliente/JvSystemD7D.bpl
new file mode 100644
index 0000000..7b628c9
Binary files /dev/null and b/Output/Produccion/Cliente/JvSystemD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvSystemD7R.bpl b/Output/Produccion/Cliente/JvSystemD7R.bpl
new file mode 100644
index 0000000..4b29a7c
Binary files /dev/null and b/Output/Produccion/Cliente/JvSystemD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvTimeFrameworkD7D.bpl b/Output/Produccion/Cliente/JvTimeFrameworkD7D.bpl
new file mode 100644
index 0000000..dab9654
Binary files /dev/null and b/Output/Produccion/Cliente/JvTimeFrameworkD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvTimeFrameworkD7R.bpl b/Output/Produccion/Cliente/JvTimeFrameworkD7R.bpl
new file mode 100644
index 0000000..3238658
Binary files /dev/null and b/Output/Produccion/Cliente/JvTimeFrameworkD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvUIBD7D.bpl b/Output/Produccion/Cliente/JvUIBD7D.bpl
new file mode 100644
index 0000000..f01fcc0
Binary files /dev/null and b/Output/Produccion/Cliente/JvUIBD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvUIBD7R.bpl b/Output/Produccion/Cliente/JvUIBD7R.bpl
new file mode 100644
index 0000000..1fe1cae
Binary files /dev/null and b/Output/Produccion/Cliente/JvUIBD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvValidatorsD7D.bpl b/Output/Produccion/Cliente/JvValidatorsD7D.bpl
new file mode 100644
index 0000000..9993cab
Binary files /dev/null and b/Output/Produccion/Cliente/JvValidatorsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvValidatorsD7R.bpl b/Output/Produccion/Cliente/JvValidatorsD7R.bpl
new file mode 100644
index 0000000..01defde
Binary files /dev/null and b/Output/Produccion/Cliente/JvValidatorsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvWizardD7D.bpl b/Output/Produccion/Cliente/JvWizardD7D.bpl
new file mode 100644
index 0000000..0495550
Binary files /dev/null and b/Output/Produccion/Cliente/JvWizardD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvWizardD7R.bpl b/Output/Produccion/Cliente/JvWizardD7R.bpl
new file mode 100644
index 0000000..d211432
Binary files /dev/null and b/Output/Produccion/Cliente/JvWizardD7R.bpl differ
diff --git a/Output/Produccion/Cliente/JvXPCtrlsD7D.bpl b/Output/Produccion/Cliente/JvXPCtrlsD7D.bpl
new file mode 100644
index 0000000..678fac7
Binary files /dev/null and b/Output/Produccion/Cliente/JvXPCtrlsD7D.bpl differ
diff --git a/Output/Produccion/Cliente/JvXPCtrlsD7R.bpl b/Output/Produccion/Cliente/JvXPCtrlsD7R.bpl
new file mode 100644
index 0000000..01aaa3e
Binary files /dev/null and b/Output/Produccion/Cliente/JvXPCtrlsD7R.bpl differ
diff --git a/Output/Produccion/Cliente/Montajes_Impl.bpl b/Output/Produccion/Cliente/Montajes_Impl.bpl
new file mode 100644
index 0000000..c3bac19
Binary files /dev/null and b/Output/Produccion/Cliente/Montajes_Impl.bpl differ
diff --git a/Output/Produccion/Cliente/Montajes_Intf.bpl b/Output/Produccion/Cliente/Montajes_Intf.bpl
new file mode 100644
index 0000000..c944f58
Binary files /dev/null and b/Output/Produccion/Cliente/Montajes_Intf.bpl differ
diff --git a/Output/Produccion/Cliente/PNG_D7.bpl b/Output/Produccion/Cliente/PNG_D7.bpl
new file mode 100644
index 0000000..43e3a85
Binary files /dev/null and b/Output/Produccion/Cliente/PNG_D7.bpl differ
diff --git a/Output/Produccion/Cliente/Pagos.bpl b/Output/Produccion/Cliente/Pagos.bpl
new file mode 100644
index 0000000..13f9b3e
Binary files /dev/null and b/Output/Produccion/Cliente/Pagos.bpl differ
diff --git a/Output/Produccion/Cliente/PedidosMontaje.bpl b/Output/Produccion/Cliente/PedidosMontaje.bpl
new file mode 100644
index 0000000..64a1236
Binary files /dev/null and b/Output/Produccion/Cliente/PedidosMontaje.bpl differ
diff --git a/Output/Produccion/Cliente/PedidosProveedor.bpl b/Output/Produccion/Cliente/PedidosProveedor.bpl
new file mode 100644
index 0000000..56fe881
Binary files /dev/null and b/Output/Produccion/Cliente/PedidosProveedor.bpl differ
diff --git a/Output/Produccion/Cliente/PluginSDK_D7R.bpl b/Output/Produccion/Cliente/PluginSDK_D7R.bpl
new file mode 100644
index 0000000..fa3b923
Binary files /dev/null and b/Output/Produccion/Cliente/PluginSDK_D7R.bpl differ
diff --git a/Output/Produccion/Cliente/PngComponentsD7.bpl b/Output/Produccion/Cliente/PngComponentsD7.bpl
new file mode 100644
index 0000000..4b6272d
Binary files /dev/null and b/Output/Produccion/Cliente/PngComponentsD7.bpl differ
diff --git a/Output/Produccion/Cliente/Presupuestos.bpl b/Output/Produccion/Cliente/Presupuestos.bpl
new file mode 100644
index 0000000..bd0e4b4
Binary files /dev/null and b/Output/Produccion/Cliente/Presupuestos.bpl differ
diff --git a/Output/Produccion/Cliente/Presupuestos_Intf.bpl b/Output/Produccion/Cliente/Presupuestos_Intf.bpl
new file mode 100644
index 0000000..2664a51
Binary files /dev/null and b/Output/Produccion/Cliente/Presupuestos_Intf.bpl differ
diff --git a/Output/Produccion/Cliente/Usuarios.bpl b/Output/Produccion/Cliente/Usuarios.bpl
new file mode 100644
index 0000000..95f8ad3
Binary files /dev/null and b/Output/Produccion/Cliente/Usuarios.bpl differ
diff --git a/Output/Produccion/Cliente/bdertl70.bpl b/Output/Produccion/Cliente/bdertl70.bpl
new file mode 100644
index 0000000..f3b79de
Binary files /dev/null and b/Output/Produccion/Cliente/bdertl70.bpl differ
diff --git a/Output/Produccion/Cliente/ccpack70.bpl b/Output/Produccion/Cliente/ccpack70.bpl
new file mode 100644
index 0000000..5ab9d2c
Binary files /dev/null and b/Output/Produccion/Cliente/ccpack70.bpl differ
diff --git a/Output/Produccion/Cliente/cfpack.bpl b/Output/Produccion/Cliente/cfpack.bpl
new file mode 100644
index 0000000..e011def
Binary files /dev/null and b/Output/Produccion/Cliente/cfpack.bpl differ
diff --git a/Output/Produccion/Cliente/cxADOAdaptersD7.bpl b/Output/Produccion/Cliente/cxADOAdaptersD7.bpl
new file mode 100644
index 0000000..49ea2c1
Binary files /dev/null and b/Output/Produccion/Cliente/cxADOAdaptersD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxBDEAdaptersD7.bpl b/Output/Produccion/Cliente/cxBDEAdaptersD7.bpl
new file mode 100644
index 0000000..dbf96d2
Binary files /dev/null and b/Output/Produccion/Cliente/cxBDEAdaptersD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxDataD7.bpl b/Output/Produccion/Cliente/cxDataD7.bpl
new file mode 100644
index 0000000..78d8179
Binary files /dev/null and b/Output/Produccion/Cliente/cxDataD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxEditorsVCLD7.bpl b/Output/Produccion/Cliente/cxEditorsVCLD7.bpl
new file mode 100644
index 0000000..62593b0
Binary files /dev/null and b/Output/Produccion/Cliente/cxEditorsVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxExportVCLD7.bpl b/Output/Produccion/Cliente/cxExportVCLD7.bpl
new file mode 100644
index 0000000..3939c3f
Binary files /dev/null and b/Output/Produccion/Cliente/cxExportVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxExtEditorsVCLD7.bpl b/Output/Produccion/Cliente/cxExtEditorsVCLD7.bpl
new file mode 100644
index 0000000..490eda6
Binary files /dev/null and b/Output/Produccion/Cliente/cxExtEditorsVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxGridVCLD7.bpl b/Output/Produccion/Cliente/cxGridVCLD7.bpl
new file mode 100644
index 0000000..99b7060
Binary files /dev/null and b/Output/Produccion/Cliente/cxGridVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxIBXAdaptersD7.bpl b/Output/Produccion/Cliente/cxIBXAdaptersD7.bpl
new file mode 100644
index 0000000..b26b770
Binary files /dev/null and b/Output/Produccion/Cliente/cxIBXAdaptersD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxIntl5D7.bpl b/Output/Produccion/Cliente/cxIntl5D7.bpl
new file mode 100644
index 0000000..7f6c606
Binary files /dev/null and b/Output/Produccion/Cliente/cxIntl5D7.bpl differ
diff --git a/Output/Produccion/Cliente/cxIntlPrintSys3D7.bpl b/Output/Produccion/Cliente/cxIntlPrintSys3D7.bpl
new file mode 100644
index 0000000..fc29f44
Binary files /dev/null and b/Output/Produccion/Cliente/cxIntlPrintSys3D7.bpl differ
diff --git a/Output/Produccion/Cliente/cxLibraryVCLD7.bpl b/Output/Produccion/Cliente/cxLibraryVCLD7.bpl
new file mode 100644
index 0000000..95e0c99
Binary files /dev/null and b/Output/Produccion/Cliente/cxLibraryVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxPageControlVCLD7.bpl b/Output/Produccion/Cliente/cxPageControlVCLD7.bpl
new file mode 100644
index 0000000..dc2e3bd
Binary files /dev/null and b/Output/Produccion/Cliente/cxPageControlVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxSchedulerVCLD7.bpl b/Output/Produccion/Cliente/cxSchedulerVCLD7.bpl
new file mode 100644
index 0000000..3fd9954
Binary files /dev/null and b/Output/Produccion/Cliente/cxSchedulerVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxTreeListVCLD7.bpl b/Output/Produccion/Cliente/cxTreeListVCLD7.bpl
new file mode 100644
index 0000000..4367504
Binary files /dev/null and b/Output/Produccion/Cliente/cxTreeListVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/cxVerticalGridVCLD7.bpl b/Output/Produccion/Cliente/cxVerticalGridVCLD7.bpl
new file mode 100644
index 0000000..7720041
Binary files /dev/null and b/Output/Produccion/Cliente/cxVerticalGridVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dbrtl70.bpl b/Output/Produccion/Cliente/dbrtl70.bpl
new file mode 100644
index 0000000..ad93c9b
Binary files /dev/null and b/Output/Produccion/Cliente/dbrtl70.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxEditorsVCLD7.bpl b/Output/Produccion/Cliente/dclcxEditorsVCLD7.bpl
new file mode 100644
index 0000000..92f64fe
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxEditorsVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxExtEditorsVCLD7.bpl b/Output/Produccion/Cliente/dclcxExtEditorsVCLD7.bpl
new file mode 100644
index 0000000..56d41f9
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxExtEditorsVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxGridVCLD7.bpl b/Output/Produccion/Cliente/dclcxGridVCLD7.bpl
new file mode 100644
index 0000000..5d2ac0e
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxGridVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxLibraryVCLD7.bpl b/Output/Produccion/Cliente/dclcxLibraryVCLD7.bpl
new file mode 100644
index 0000000..4875c79
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxLibraryVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxPageControlVCLD7.bpl b/Output/Produccion/Cliente/dclcxPageControlVCLD7.bpl
new file mode 100644
index 0000000..ad1fbcf
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxPageControlVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxSchedulerVCLD7.bpl b/Output/Produccion/Cliente/dclcxSchedulerVCLD7.bpl
new file mode 100644
index 0000000..2b1429a
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxSchedulerVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxTreeListVCLD7.bpl b/Output/Produccion/Cliente/dclcxTreeListVCLD7.bpl
new file mode 100644
index 0000000..b4af6de
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxTreeListVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclcxVerticalGridVCLD7.bpl b/Output/Produccion/Cliente/dclcxVerticalGridVCLD7.bpl
new file mode 100644
index 0000000..a9c2158
Binary files /dev/null and b/Output/Produccion/Cliente/dclcxVerticalGridVCLD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxBarD7.bpl b/Output/Produccion/Cliente/dcldxBarD7.bpl
new file mode 100644
index 0000000..b1cfe45
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxBarD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxBarDBNavD7.bpl b/Output/Produccion/Cliente/dcldxBarDBNavD7.bpl
new file mode 100644
index 0000000..beba4bf
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxBarDBNavD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxBarExtDBItemsD7.bpl b/Output/Produccion/Cliente/dcldxBarExtDBItemsD7.bpl
new file mode 100644
index 0000000..47f66ca
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxBarExtDBItemsD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxBarExtItemsD7.bpl b/Output/Produccion/Cliente/dcldxBarExtItemsD7.bpl
new file mode 100644
index 0000000..5e57e25
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxBarExtItemsD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxDockingD7.bpl b/Output/Produccion/Cliente/dcldxDockingD7.bpl
new file mode 100644
index 0000000..0f4c940
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxDockingD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxLayoutControlD7.bpl b/Output/Produccion/Cliente/dcldxLayoutControlD7.bpl
new file mode 100644
index 0000000..e6c140e
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxLayoutControlD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxNavBarD7.bpl b/Output/Produccion/Cliente/dcldxNavBarD7.bpl
new file mode 100644
index 0000000..55936db
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxNavBarD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxPSCoreD7.bpl b/Output/Produccion/Cliente/dcldxPSCoreD7.bpl
new file mode 100644
index 0000000..63c6331
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxPSCoreD7.bpl differ
diff --git a/Output/Produccion/Cliente/dcldxsbD7.bpl b/Output/Produccion/Cliente/dcldxsbD7.bpl
new file mode 100644
index 0000000..1acc79e
Binary files /dev/null and b/Output/Produccion/Cliente/dcldxsbD7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfqb70.bpl b/Output/Produccion/Cliente/dclfqb70.bpl
new file mode 100644
index 0000000..e5ce98b
Binary files /dev/null and b/Output/Produccion/Cliente/dclfqb70.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrx7.bpl b/Output/Produccion/Cliente/dclfrx7.bpl
new file mode 100644
index 0000000..ea69527
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrx7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxADO7.bpl b/Output/Produccion/Cliente/dclfrxADO7.bpl
new file mode 100644
index 0000000..729e30f
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxADO7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxBDE7.bpl b/Output/Produccion/Cliente/dclfrxBDE7.bpl
new file mode 100644
index 0000000..64c5fe3
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxBDE7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxDB7.bpl b/Output/Produccion/Cliente/dclfrxDB7.bpl
new file mode 100644
index 0000000..c8269a4
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxDB7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxDBX7.bpl b/Output/Produccion/Cliente/dclfrxDBX7.bpl
new file mode 100644
index 0000000..aab71fe
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxDBX7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxIBX7.bpl b/Output/Produccion/Cliente/dclfrxIBX7.bpl
new file mode 100644
index 0000000..ec336f6
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxIBX7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxTee7.bpl b/Output/Produccion/Cliente/dclfrxTee7.bpl
new file mode 100644
index 0000000..bd04712
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxTee7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfrxe7.bpl b/Output/Produccion/Cliente/dclfrxe7.bpl
new file mode 100644
index 0000000..5a66bc6
Binary files /dev/null and b/Output/Produccion/Cliente/dclfrxe7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfs7.bpl b/Output/Produccion/Cliente/dclfs7.bpl
new file mode 100644
index 0000000..6e4349a
Binary files /dev/null and b/Output/Produccion/Cliente/dclfs7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfsADO7.bpl b/Output/Produccion/Cliente/dclfsADO7.bpl
new file mode 100644
index 0000000..f934223
Binary files /dev/null and b/Output/Produccion/Cliente/dclfsADO7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfsBDE7.bpl b/Output/Produccion/Cliente/dclfsBDE7.bpl
new file mode 100644
index 0000000..30a328d
Binary files /dev/null and b/Output/Produccion/Cliente/dclfsBDE7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfsDB7.bpl b/Output/Produccion/Cliente/dclfsDB7.bpl
new file mode 100644
index 0000000..ee93834
Binary files /dev/null and b/Output/Produccion/Cliente/dclfsDB7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfsIBX7.bpl b/Output/Produccion/Cliente/dclfsIBX7.bpl
new file mode 100644
index 0000000..9543ce0
Binary files /dev/null and b/Output/Produccion/Cliente/dclfsIBX7.bpl differ
diff --git a/Output/Produccion/Cliente/dclfsTee7.bpl b/Output/Produccion/Cliente/dclfsTee7.bpl
new file mode 100644
index 0000000..2a04436
Binary files /dev/null and b/Output/Produccion/Cliente/dclfsTee7.bpl differ
diff --git a/Output/Produccion/Cliente/dclrx7.bpl b/Output/Produccion/Cliente/dclrx7.bpl
new file mode 100644
index 0000000..e14d83b
Binary files /dev/null and b/Output/Produccion/Cliente/dclrx7.bpl differ
diff --git a/Output/Produccion/Cliente/dclrxbd7.bpl b/Output/Produccion/Cliente/dclrxbd7.bpl
new file mode 100644
index 0000000..95df1df
Binary files /dev/null and b/Output/Produccion/Cliente/dclrxbd7.bpl differ
diff --git a/Output/Produccion/Cliente/dclrxdb7.bpl b/Output/Produccion/Cliente/dclrxdb7.bpl
new file mode 100644
index 0000000..4a346f3
Binary files /dev/null and b/Output/Produccion/Cliente/dclrxdb7.bpl differ
diff --git a/Output/Produccion/Cliente/dclshlctrls70.bpl b/Output/Produccion/Cliente/dclshlctrls70.bpl
new file mode 100644
index 0000000..a4cc603
Binary files /dev/null and b/Output/Produccion/Cliente/dclshlctrls70.bpl differ
diff --git a/Output/Produccion/Cliente/designide70.bpl b/Output/Produccion/Cliente/designide70.bpl
new file mode 100644
index 0000000..d55557b
Binary files /dev/null and b/Output/Produccion/Cliente/designide70.bpl differ
diff --git a/Output/Produccion/Cliente/dsnap70.bpl b/Output/Produccion/Cliente/dsnap70.bpl
new file mode 100644
index 0000000..72aac1f
Binary files /dev/null and b/Output/Produccion/Cliente/dsnap70.bpl differ
diff --git a/Output/Produccion/Cliente/dxBarD7.bpl b/Output/Produccion/Cliente/dxBarD7.bpl
new file mode 100644
index 0000000..47eb448
Binary files /dev/null and b/Output/Produccion/Cliente/dxBarD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxBarDBNavD7.bpl b/Output/Produccion/Cliente/dxBarDBNavD7.bpl
new file mode 100644
index 0000000..9139809
Binary files /dev/null and b/Output/Produccion/Cliente/dxBarDBNavD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxBarExtDBItemsD7.bpl b/Output/Produccion/Cliente/dxBarExtDBItemsD7.bpl
new file mode 100644
index 0000000..d92f183
Binary files /dev/null and b/Output/Produccion/Cliente/dxBarExtDBItemsD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxBarExtItemsD7.bpl b/Output/Produccion/Cliente/dxBarExtItemsD7.bpl
new file mode 100644
index 0000000..9eb669f
Binary files /dev/null and b/Output/Produccion/Cliente/dxBarExtItemsD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxComnD7.bpl b/Output/Produccion/Cliente/dxComnD7.bpl
new file mode 100644
index 0000000..06137d0
Binary files /dev/null and b/Output/Produccion/Cliente/dxComnD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxDockingD7.bpl b/Output/Produccion/Cliente/dxDockingD7.bpl
new file mode 100644
index 0000000..881f5bb
Binary files /dev/null and b/Output/Produccion/Cliente/dxDockingD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxGDIPlusD7.bpl b/Output/Produccion/Cliente/dxGDIPlusD7.bpl
new file mode 100644
index 0000000..9b9ddf5
Binary files /dev/null and b/Output/Produccion/Cliente/dxGDIPlusD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxLayoutControlD7.bpl b/Output/Produccion/Cliente/dxLayoutControlD7.bpl
new file mode 100644
index 0000000..9e2a569
Binary files /dev/null and b/Output/Produccion/Cliente/dxLayoutControlD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxLayoutControlcxEditAdaptersD7.bpl b/Output/Produccion/Cliente/dxLayoutControlcxEditAdaptersD7.bpl
new file mode 100644
index 0000000..270074a
Binary files /dev/null and b/Output/Produccion/Cliente/dxLayoutControlcxEditAdaptersD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxNavBarD7.bpl b/Output/Produccion/Cliente/dxNavBarD7.bpl
new file mode 100644
index 0000000..c342aaa
Binary files /dev/null and b/Output/Produccion/Cliente/dxNavBarD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSCoreD7.bpl b/Output/Produccion/Cliente/dxPSCoreD7.bpl
new file mode 100644
index 0000000..392246f
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSCoreD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSDBTeeChartD7.bpl b/Output/Produccion/Cliente/dxPSDBTeeChartD7.bpl
new file mode 100644
index 0000000..45c53c9
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSDBTeeChartD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSLnksD7.bpl b/Output/Produccion/Cliente/dxPSLnksD7.bpl
new file mode 100644
index 0000000..7429edf
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSLnksD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSPrVwAdvD7.bpl b/Output/Produccion/Cliente/dxPSPrVwAdvD7.bpl
new file mode 100644
index 0000000..69ac98a
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSPrVwAdvD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSTeeChartD7.bpl b/Output/Produccion/Cliente/dxPSTeeChartD7.bpl
new file mode 100644
index 0000000..442f1fa
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSTeeChartD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPScxCommonD7.bpl b/Output/Produccion/Cliente/dxPScxCommonD7.bpl
new file mode 100644
index 0000000..a46acd0
Binary files /dev/null and b/Output/Produccion/Cliente/dxPScxCommonD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPScxExtCommonD7.bpl b/Output/Produccion/Cliente/dxPScxExtCommonD7.bpl
new file mode 100644
index 0000000..9329fa0
Binary files /dev/null and b/Output/Produccion/Cliente/dxPScxExtCommonD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPScxGridLnkD7.bpl b/Output/Produccion/Cliente/dxPScxGridLnkD7.bpl
new file mode 100644
index 0000000..1cc19d7
Binary files /dev/null and b/Output/Produccion/Cliente/dxPScxGridLnkD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPScxPCProdD7.bpl b/Output/Produccion/Cliente/dxPScxPCProdD7.bpl
new file mode 100644
index 0000000..554dc5d
Binary files /dev/null and b/Output/Produccion/Cliente/dxPScxPCProdD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPScxScheduler2LnkD7.bpl b/Output/Produccion/Cliente/dxPScxScheduler2LnkD7.bpl
new file mode 100644
index 0000000..61c4ed2
Binary files /dev/null and b/Output/Produccion/Cliente/dxPScxScheduler2LnkD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPSdxLCLnkD7.bpl b/Output/Produccion/Cliente/dxPSdxLCLnkD7.bpl
new file mode 100644
index 0000000..9476382
Binary files /dev/null and b/Output/Produccion/Cliente/dxPSdxLCLnkD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxPscxTLLnkD7.bpl b/Output/Produccion/Cliente/dxPscxTLLnkD7.bpl
new file mode 100644
index 0000000..b8d5964
Binary files /dev/null and b/Output/Produccion/Cliente/dxPscxTLLnkD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxThemeD7.bpl b/Output/Produccion/Cliente/dxThemeD7.bpl
new file mode 100644
index 0000000..b25a81b
Binary files /dev/null and b/Output/Produccion/Cliente/dxThemeD7.bpl differ
diff --git a/Output/Produccion/Cliente/dxsbD7.bpl b/Output/Produccion/Cliente/dxsbD7.bpl
new file mode 100644
index 0000000..d000d5f
Binary files /dev/null and b/Output/Produccion/Cliente/dxsbD7.bpl differ
diff --git a/Output/Produccion/Cliente/fqb70.bpl b/Output/Produccion/Cliente/fqb70.bpl
new file mode 100644
index 0000000..328e65c
Binary files /dev/null and b/Output/Produccion/Cliente/fqb70.bpl differ
diff --git a/Output/Produccion/Cliente/frx7.bpl b/Output/Produccion/Cliente/frx7.bpl
new file mode 100644
index 0000000..6ccd165
Binary files /dev/null and b/Output/Produccion/Cliente/frx7.bpl differ
diff --git a/Output/Produccion/Cliente/frxADO7.bpl b/Output/Produccion/Cliente/frxADO7.bpl
new file mode 100644
index 0000000..f10b666
Binary files /dev/null and b/Output/Produccion/Cliente/frxADO7.bpl differ
diff --git a/Output/Produccion/Cliente/frxBDE7.bpl b/Output/Produccion/Cliente/frxBDE7.bpl
new file mode 100644
index 0000000..9d0fd45
Binary files /dev/null and b/Output/Produccion/Cliente/frxBDE7.bpl differ
diff --git a/Output/Produccion/Cliente/frxDB7.bpl b/Output/Produccion/Cliente/frxDB7.bpl
new file mode 100644
index 0000000..326357c
Binary files /dev/null and b/Output/Produccion/Cliente/frxDB7.bpl differ
diff --git a/Output/Produccion/Cliente/frxDBX7.bpl b/Output/Produccion/Cliente/frxDBX7.bpl
new file mode 100644
index 0000000..688c478
Binary files /dev/null and b/Output/Produccion/Cliente/frxDBX7.bpl differ
diff --git a/Output/Produccion/Cliente/frxIBX7.bpl b/Output/Produccion/Cliente/frxIBX7.bpl
new file mode 100644
index 0000000..5851e35
Binary files /dev/null and b/Output/Produccion/Cliente/frxIBX7.bpl differ
diff --git a/Output/Produccion/Cliente/frxTee7.bpl b/Output/Produccion/Cliente/frxTee7.bpl
new file mode 100644
index 0000000..2b27a11
Binary files /dev/null and b/Output/Produccion/Cliente/frxTee7.bpl differ
diff --git a/Output/Produccion/Cliente/frxcs7.bpl b/Output/Produccion/Cliente/frxcs7.bpl
new file mode 100644
index 0000000..d402232
Binary files /dev/null and b/Output/Produccion/Cliente/frxcs7.bpl differ
diff --git a/Output/Produccion/Cliente/frxe7.bpl b/Output/Produccion/Cliente/frxe7.bpl
new file mode 100644
index 0000000..f56bece
Binary files /dev/null and b/Output/Produccion/Cliente/frxe7.bpl differ
diff --git a/Output/Produccion/Cliente/fs7.bpl b/Output/Produccion/Cliente/fs7.bpl
new file mode 100644
index 0000000..1131fb6
Binary files /dev/null and b/Output/Produccion/Cliente/fs7.bpl differ
diff --git a/Output/Produccion/Cliente/fsADO7.bpl b/Output/Produccion/Cliente/fsADO7.bpl
new file mode 100644
index 0000000..22e177d
Binary files /dev/null and b/Output/Produccion/Cliente/fsADO7.bpl differ
diff --git a/Output/Produccion/Cliente/fsBDE7.bpl b/Output/Produccion/Cliente/fsBDE7.bpl
new file mode 100644
index 0000000..72deaff
Binary files /dev/null and b/Output/Produccion/Cliente/fsBDE7.bpl differ
diff --git a/Output/Produccion/Cliente/fsDB7.bpl b/Output/Produccion/Cliente/fsDB7.bpl
new file mode 100644
index 0000000..fd95efe
Binary files /dev/null and b/Output/Produccion/Cliente/fsDB7.bpl differ
diff --git a/Output/Produccion/Cliente/fsIBX7.bpl b/Output/Produccion/Cliente/fsIBX7.bpl
new file mode 100644
index 0000000..00e3c88
Binary files /dev/null and b/Output/Produccion/Cliente/fsIBX7.bpl differ
diff --git a/Output/Produccion/Cliente/fsTee7.bpl b/Output/Produccion/Cliente/fsTee7.bpl
new file mode 100644
index 0000000..6f9f265
Binary files /dev/null and b/Output/Produccion/Cliente/fsTee7.bpl differ
diff --git a/Output/Produccion/Cliente/midas.dll b/Output/Produccion/Cliente/midas.dll
new file mode 100644
index 0000000..7b11def
Binary files /dev/null and b/Output/Produccion/Cliente/midas.dll differ
diff --git a/Output/Produccion/Cliente/qrpt70.bpl b/Output/Produccion/Cliente/qrpt70.bpl
new file mode 100644
index 0000000..5710102
Binary files /dev/null and b/Output/Produccion/Cliente/qrpt70.bpl differ
diff --git a/Output/Produccion/Cliente/rtl70.bpl b/Output/Produccion/Cliente/rtl70.bpl
new file mode 100644
index 0000000..c6f2b53
Binary files /dev/null and b/Output/Produccion/Cliente/rtl70.bpl differ
diff --git a/Output/Produccion/Cliente/tb2k_d7.bpl b/Output/Produccion/Cliente/tb2k_d7.bpl
new file mode 100644
index 0000000..b07b8c2
Binary files /dev/null and b/Output/Produccion/Cliente/tb2k_d7.bpl differ
diff --git a/Output/Produccion/Cliente/tbx_d7.bpl b/Output/Produccion/Cliente/tbx_d7.bpl
new file mode 100644
index 0000000..0462e8b
Binary files /dev/null and b/Output/Produccion/Cliente/tbx_d7.bpl differ
diff --git a/Output/Produccion/Cliente/tee70.bpl b/Output/Produccion/Cliente/tee70.bpl
new file mode 100644
index 0000000..b7538f3
Binary files /dev/null and b/Output/Produccion/Cliente/tee70.bpl differ
diff --git a/Output/Produccion/Cliente/teedb70.bpl b/Output/Produccion/Cliente/teedb70.bpl
new file mode 100644
index 0000000..6909302
Binary files /dev/null and b/Output/Produccion/Cliente/teedb70.bpl differ
diff --git a/Output/Produccion/Cliente/teeqr70.bpl b/Output/Produccion/Cliente/teeqr70.bpl
new file mode 100644
index 0000000..5e91a25
Binary files /dev/null and b/Output/Produccion/Cliente/teeqr70.bpl differ
diff --git a/Output/Produccion/Cliente/teeui70.bpl b/Output/Produccion/Cliente/teeui70.bpl
new file mode 100644
index 0000000..a1a1151
Binary files /dev/null and b/Output/Produccion/Cliente/teeui70.bpl differ
diff --git a/Output/Produccion/Cliente/vcl70.bpl b/Output/Produccion/Cliente/vcl70.bpl
new file mode 100644
index 0000000..70af367
Binary files /dev/null and b/Output/Produccion/Cliente/vcl70.bpl differ
diff --git a/Output/Produccion/Cliente/vclactnband70.bpl b/Output/Produccion/Cliente/vclactnband70.bpl
new file mode 100644
index 0000000..8ceef0d
Binary files /dev/null and b/Output/Produccion/Cliente/vclactnband70.bpl differ
diff --git a/Output/Produccion/Cliente/vcldb70.bpl b/Output/Produccion/Cliente/vcldb70.bpl
new file mode 100644
index 0000000..028f18b
Binary files /dev/null and b/Output/Produccion/Cliente/vcldb70.bpl differ
diff --git a/Output/Produccion/Cliente/vclie70.bpl b/Output/Produccion/Cliente/vclie70.bpl
new file mode 100644
index 0000000..554b6c2
Binary files /dev/null and b/Output/Produccion/Cliente/vclie70.bpl differ
diff --git a/Output/Produccion/Cliente/vcljpg70.bpl b/Output/Produccion/Cliente/vcljpg70.bpl
new file mode 100644
index 0000000..bf65fd9
Binary files /dev/null and b/Output/Produccion/Cliente/vcljpg70.bpl differ
diff --git a/Output/Produccion/Cliente/vclshlctrls70.bpl b/Output/Produccion/Cliente/vclshlctrls70.bpl
new file mode 100644
index 0000000..9fdff90
Binary files /dev/null and b/Output/Produccion/Cliente/vclshlctrls70.bpl differ
diff --git a/Output/Produccion/Cliente/vclx70.bpl b/Output/Produccion/Cliente/vclx70.bpl
new file mode 100644
index 0000000..e7afad8
Binary files /dev/null and b/Output/Produccion/Cliente/vclx70.bpl differ
diff --git a/Output/Produccion/Servidor/BASEDATOS.FDB b/Output/Produccion/Servidor/BASEDATOS.FDB
new file mode 100644
index 0000000..da8107b
Binary files /dev/null and b/Output/Produccion/Servidor/BASEDATOS.FDB differ
diff --git a/Output/Produccion/Servidor/FactuGES_Server.exe b/Output/Produccion/Servidor/FactuGES_Server.exe
new file mode 100644
index 0000000..68093d0
Binary files /dev/null and b/Output/Produccion/Servidor/FactuGES_Server.exe differ
diff --git a/Output/Produccion/Servidor/Informes/EstiloDetalles.fs3 b/Output/Produccion/Servidor/Informes/EstiloDetalles.fs3
new file mode 100644
index 0000000..3f92b38
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/EstiloDetalles.fs3
@@ -0,0 +1,7 @@
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfAlbaran.fr3 b/Output/Produccion/Servidor/Informes/InfAlbaran.fr3
new file mode 100644
index 0000000..fef5017
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfAlbaran.fr3
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfEtiquetasMontajes.fr3 b/Output/Produccion/Servidor/Informes/InfEtiquetasMontajes.fr3
new file mode 100644
index 0000000..0ce8097
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfEtiquetasMontajes.fr3
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfFacturaCliente.fr3 b/Output/Produccion/Servidor/Informes/InfFacturaCliente.fr3
new file mode 100644
index 0000000..89908eb
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfFacturaCliente.fr3
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfFicha.fr3 b/Output/Produccion/Servidor/Informes/InfFicha.fr3
new file mode 100644
index 0000000..c453825
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfFicha.fr3
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfPedido.fr3 b/Output/Produccion/Servidor/Informes/InfPedido.fr3
new file mode 100644
index 0000000..f160e5a
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfPedido.fr3
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfPresupuesto.fr3 b/Output/Produccion/Servidor/Informes/InfPresupuesto.fr3
new file mode 100644
index 0000000..b981805
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfPresupuesto.fr3
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Produccion/Servidor/Informes/InfRecibo.fr3 b/Output/Produccion/Servidor/Informes/InfRecibo.fr3
new file mode 100644
index 0000000..17cf8c8
--- /dev/null
+++ b/Output/Produccion/Servidor/Informes/InfRecibo.fr3
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/FactuGES_Server.exe b/Output/Servidor/FactuGES_Server.exe
new file mode 100644
index 0000000..68093d0
Binary files /dev/null and b/Output/Servidor/FactuGES_Server.exe differ
diff --git a/Output/Servidor/Informes/EstiloDetalles.fs3 b/Output/Servidor/Informes/EstiloDetalles.fs3
new file mode 100644
index 0000000..3f92b38
--- /dev/null
+++ b/Output/Servidor/Informes/EstiloDetalles.fs3
@@ -0,0 +1,7 @@
+
+
diff --git a/Output/Servidor/Informes/InfAlbaran.fr3 b/Output/Servidor/Informes/InfAlbaran.fr3
new file mode 100644
index 0000000..fef5017
--- /dev/null
+++ b/Output/Servidor/Informes/InfAlbaran.fr3
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfEtiquetasMontajes.fr3 b/Output/Servidor/Informes/InfEtiquetasMontajes.fr3
new file mode 100644
index 0000000..0ce8097
--- /dev/null
+++ b/Output/Servidor/Informes/InfEtiquetasMontajes.fr3
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfFacturaCliente.fr3 b/Output/Servidor/Informes/InfFacturaCliente.fr3
new file mode 100644
index 0000000..89908eb
--- /dev/null
+++ b/Output/Servidor/Informes/InfFacturaCliente.fr3
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfFicha.fr3 b/Output/Servidor/Informes/InfFicha.fr3
new file mode 100644
index 0000000..c453825
--- /dev/null
+++ b/Output/Servidor/Informes/InfFicha.fr3
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfPedido.fr3 b/Output/Servidor/Informes/InfPedido.fr3
new file mode 100644
index 0000000..f160e5a
--- /dev/null
+++ b/Output/Servidor/Informes/InfPedido.fr3
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfPresupuesto.fr3 b/Output/Servidor/Informes/InfPresupuesto.fr3
new file mode 100644
index 0000000..b981805
--- /dev/null
+++ b/Output/Servidor/Informes/InfPresupuesto.fr3
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/Informes/InfRecibo.fr3 b/Output/Servidor/Informes/InfRecibo.fr3
new file mode 100644
index 0000000..17cf8c8
--- /dev/null
+++ b/Output/Servidor/Informes/InfRecibo.fr3
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Servidor/UIBHook.dll b/Output/Servidor/UIBHook.dll
new file mode 100644
index 0000000..f0b69c2
Binary files /dev/null and b/Output/Servidor/UIBHook.dll differ
diff --git a/Output/Servidor/UIBMonitor.exe b/Output/Servidor/UIBMonitor.exe
new file mode 100644
index 0000000..f4a97d1
Binary files /dev/null and b/Output/Servidor/UIBMonitor.exe differ
diff --git a/Output/Servidor/config.ini b/Output/Servidor/config.ini
new file mode 100644
index 0000000..897c89f
--- /dev/null
+++ b/Output/Servidor/config.ini
@@ -0,0 +1,3 @@
+[CONFIG]
+APPPATH=D:\Proyectos\FactuGES (Arribas)\Codigo\Output\Servidor\FactuGES_Server.exe
+LIBPATH=GDS32.DLL
diff --git a/Output/Servidor/fbclient.dll b/Output/Servidor/fbclient.dll
new file mode 100644
index 0000000..9e7af3a
Binary files /dev/null and b/Output/Servidor/fbclient.dll differ
diff --git a/Output/Servidor/gds32.dll b/Output/Servidor/gds32.dll
new file mode 100644
index 0000000..9e7af3a
Binary files /dev/null and b/Output/Servidor/gds32.dll differ
diff --git a/Output/Servidor/madCHook.dll b/Output/Servidor/madCHook.dll
new file mode 100644
index 0000000..53d4fbc
Binary files /dev/null and b/Output/Servidor/madCHook.dll differ
diff --git a/SCRIPT.SQL b/SCRIPT.SQL
new file mode 100644
index 0000000..e69de29
diff --git a/Servidor/Config.ini b/Servidor/Config.ini
new file mode 100644
index 0000000..837dd02
--- /dev/null
+++ b/Servidor/Config.ini
@@ -0,0 +1,18 @@
+[Project Generation]
+SvcLibName=NewLibrary
+SvcName=NewService
+PrjName=NewProject
+PrjDir=D:\Proyectos\FactuGES (Arribas)\Codigo\Servidor\
+CreateClientAndGroup=TRUE
+
+[Class Factories]
+By Request=TROClassFactory
+Singleton Object=TROSingletonClassFactory
+Pooled Object=TROPooledClassFactory
+Per Client=TROPerCLientClassFactory
+
+[ServerToChannel]
+BPDXHTTPServer=WinInetHTTPChannel
+BPDXTCPServer=IndyTCPChannel
+IndyHTTPServer=WinInetHTTPChannel
+WebBrokerServer=WinInetHTTPChannel
diff --git a/Servidor/FactuGES.rodl b/Servidor/FactuGES.rodl
new file mode 100644
index 0000000..917e330
--- /dev/null
+++ b/Servidor/FactuGES.rodl
@@ -0,0 +1,533 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Servidor/FactuGES_Async.pas b/Servidor/FactuGES_Async.pas
new file mode 100644
index 0000000..3cd65e2
--- /dev/null
+++ b/Servidor/FactuGES_Async.pas
@@ -0,0 +1,1490 @@
+unit FactuGES_Async;
+
+{----------------------------------------------------------------------------}
+{ 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. }
+{----------------------------------------------------------------------------}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROClasses, uROTypes, uROClientIntf, uROAsync,
+ {Used RODLs:} DataAbstract_Intf, DataAbstract_Async,
+ {Project:} FactuGES_Intf;
+
+type
+ { IsrvContactos_Async }
+ IsrvContactos_Async = interface(IDARemoteService_Async)
+ ['{DB46D9A9-FEA2-41C6-8470-86874F1D31D9}']
+ procedure Invoke_GenerateReport;
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarContacto(const CodigoContacto: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarContacto: Boolean;
+ end;
+
+ { CosrvContactos_Async }
+ CosrvContactos_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos_Async;
+ end;
+
+ { TsrvContactos_AsyncProxy }
+ TsrvContactos_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvContactos_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GenerateReport;
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarContacto(const CodigoContacto: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarContacto: Boolean;
+ end;
+
+type
+ { IsrvLogin_Async }
+ IsrvLogin_Async = interface(IROAsyncInterface)
+ ['{B73CBA6A-CB82-492E-AC25-DEF339592683}']
+ procedure Invoke_Login(const UserID: String; const Password: String);
+ procedure Invoke_Logout;
+ procedure Invoke_UpdateUsers(const UsersDelta: Binary);
+ procedure Invoke_SetUserPassword(const UserID: String; const NewPassword: String);
+ procedure Invoke_Ping;
+ function Retrieve_Login(out LoginInfo: TLoginInfo): Boolean;
+ function Retrieve_UpdateUsers: Binary;
+ function Retrieve_SetUserPassword: Boolean;
+ function Retrieve_Ping: Boolean;
+ end;
+
+ { CosrvLogin_Async }
+ CosrvLogin_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin_Async;
+ end;
+
+ { TsrvLogin_AsyncProxy }
+ TsrvLogin_AsyncProxy = class(TROAsyncProxy, IsrvLogin_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_Login(const UserID: String; const Password: String);
+ procedure Invoke_Logout;
+ procedure Invoke_UpdateUsers(const UsersDelta: Binary);
+ procedure Invoke_SetUserPassword(const UserID: String; const NewPassword: String);
+ procedure Invoke_Ping;
+ function Retrieve_Login(out LoginInfo: TLoginInfo): Boolean;
+ function Retrieve_UpdateUsers: Binary;
+ function Retrieve_SetUserPassword: Boolean;
+ function Retrieve_Ping: Boolean;
+ end;
+
+type
+ { IsrvPresupuestos_Async }
+ IsrvPresupuestos_Async = interface(IDARemoteService_Async)
+ ['{A1F81289-E3AF-469D-AEC8-C111FF1B13CB}']
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_DarNuevaReferencia(const TipoPresupuesto: String);
+ procedure Invoke_PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_PuedoEliminarPresupuesto: Boolean;
+ end;
+
+ { CosrvPresupuestos_Async }
+ CosrvPresupuestos_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestos_Async;
+ end;
+
+ { TsrvPresupuestos_AsyncProxy }
+ TsrvPresupuestos_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvPresupuestos_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_DarNuevaReferencia(const TipoPresupuesto: String);
+ procedure Invoke_PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_PuedoEliminarPresupuesto: Boolean;
+ end;
+
+type
+ { IsrvPedidosProveedor_Async }
+ IsrvPedidosProveedor_Async = interface(IDARemoteService_Async)
+ ['{0DB4DD45-3291-4D78-91EE-313A6CC6750F}']
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_DarNuevaReferencia;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_PuedoEliminarPedido(const CodigoPedido: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarPedido: Boolean;
+ end;
+
+ { CosrvPedidosProveedor_Async }
+ CosrvPedidosProveedor_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor_Async;
+ end;
+
+ { TsrvPedidosProveedor_AsyncProxy }
+ TsrvPedidosProveedor_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvPedidosProveedor_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_DarNuevaReferencia;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_PuedoEliminarPedido(const CodigoPedido: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarPedido: Boolean;
+ end;
+
+type
+ { IsrvAlbaranesCliente_Async }
+ IsrvAlbaranesCliente_Async = interface(IDARemoteService_Async)
+ ['{CB28804E-2105-4803-992B-A250D523C499}']
+ procedure Invoke_ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer);
+ procedure Invoke_DarNuevaReferencia;
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_PuedoEliminarAlbaran(const CodigoAlbaran: Integer);
+ function Retrieve_ExisteAlbaranDePresupuesto(out CodigoAlbaran: Integer): Boolean;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarAlbaran: Boolean;
+ end;
+
+ { CosrvAlbaranesCliente_Async }
+ CosrvAlbaranesCliente_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente_Async;
+ end;
+
+ { TsrvAlbaranesCliente_AsyncProxy }
+ TsrvAlbaranesCliente_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvAlbaranesCliente_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer);
+ procedure Invoke_DarNuevaReferencia;
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_PuedoEliminarAlbaran(const CodigoAlbaran: Integer);
+ function Retrieve_ExisteAlbaranDePresupuesto(out CodigoAlbaran: Integer): Boolean;
+ function Retrieve_DarNuevaReferencia: String;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarAlbaran: Boolean;
+ end;
+
+type
+ { IsrvFacturasCliente_Async }
+ IsrvFacturasCliente_Async = interface(IDARemoteService_Async)
+ ['{59BC0F5E-2E2F-4139-8616-6C7AA6B435C0}']
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+ procedure Invoke_ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer);
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_DarNuevaReferencia;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarFactura: Boolean;
+ function Retrieve_ExisteFacturaDeAlbaran(out CodigoFactura: Integer): Boolean;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_DarNuevaReferencia: String;
+ end;
+
+ { CosrvFacturasCliente_Async }
+ CosrvFacturasCliente_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente_Async;
+ end;
+
+ { TsrvFacturasCliente_AsyncProxy }
+ TsrvFacturasCliente_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvFacturasCliente_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+ procedure Invoke_ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer);
+ procedure Invoke_GenerateReport(const Codigo: Integer);
+ procedure Invoke_DarNuevaReferencia;
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarFactura: Boolean;
+ function Retrieve_ExisteFacturaDeAlbaran(out CodigoFactura: Integer): Boolean;
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_DarNuevaReferencia: String;
+ end;
+
+type
+ { IsrvAlmacenes_Async }
+ IsrvAlmacenes_Async = interface(IDARemoteService_Async)
+ ['{DFF6047B-9CFD-497D-8D15-FE7F8308ACDB}']
+ procedure Invoke_GenerateReport;
+ procedure Invoke_PuedoEliminarAlmacen(const Codigo: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarAlmacen: Boolean;
+ end;
+
+ { CosrvAlmacenes_Async }
+ CosrvAlmacenes_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes_Async;
+ end;
+
+ { TsrvAlmacenes_AsyncProxy }
+ TsrvAlmacenes_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvAlmacenes_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GenerateReport;
+ procedure Invoke_PuedoEliminarAlmacen(const Codigo: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarAlmacen: Boolean;
+ end;
+
+type
+ { IsrvArticulos_Async }
+ IsrvArticulos_Async = interface(IDARemoteService_Async)
+ ['{330D86CE-7B7D-40FB-9791-D12F9331A950}']
+ procedure Invoke_GetNextAutoinc;
+ function Retrieve_GetNextAutoinc: Integer;
+ end;
+
+ { CosrvArticulos_Async }
+ CosrvArticulos_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos_Async;
+ end;
+
+ { TsrvArticulos_AsyncProxy }
+ TsrvArticulos_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvArticulos_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ function Retrieve_GetNextAutoinc: Integer;
+ end;
+
+type
+ { IsrvMontajes_Async }
+ IsrvMontajes_Async = interface(IDARemoteService_Async)
+ ['{3E2BB30E-8A2C-4262-8C49-F0478D74EA12}']
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarMontaje(const Codigo: Integer);
+ procedure Invoke_AnadirFichaBeneficios(const CodigoMontaje: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarMontaje: Boolean;
+ function Retrieve_AnadirFichaBeneficios: Boolean;
+ end;
+
+ { CosrvMontajes_Async }
+ CosrvMontajes_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvMontajes_Async;
+ end;
+
+ { TsrvMontajes_AsyncProxy }
+ TsrvMontajes_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvMontajes_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarMontaje(const Codigo: Integer);
+ procedure Invoke_AnadirFichaBeneficios(const CodigoMontaje: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarMontaje: Boolean;
+ function Retrieve_AnadirFichaBeneficios: Boolean;
+ end;
+
+type
+ { IsrvFacturasProveedor_Async }
+ IsrvFacturasProveedor_Async = interface(IDARemoteService_Async)
+ ['{75F266A8-471B-47AC-99E5-B202A309E131}']
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarFactura: Boolean;
+ end;
+
+ { CosrvFacturasProveedor_Async }
+ CosrvFacturasProveedor_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor_Async;
+ end;
+
+ { TsrvFacturasProveedor_AsyncProxy }
+ TsrvFacturasProveedor_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvFacturasProveedor_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ procedure Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+ function Retrieve_GetNextAutoinc: Integer;
+ function Retrieve_PuedoEliminarFactura: Boolean;
+ end;
+
+type
+ { IsrvPagos_Async }
+ IsrvPagos_Async = interface(IDARemoteService_Async)
+ ['{A777BD27-C3FE-4F4C-9129-4F407906FCB3}']
+ procedure Invoke_GetNextAutoinc;
+ function Retrieve_GetNextAutoinc: Integer;
+ end;
+
+ { CosrvPagos_Async }
+ CosrvPagos_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPagos_Async;
+ end;
+
+ { TsrvPagos_AsyncProxy }
+ TsrvPagos_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvPagos_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetNextAutoinc;
+ function Retrieve_GetNextAutoinc: Integer;
+ end;
+
+type
+ { IsrvCuentas_Async }
+ IsrvCuentas_Async = interface(IDARemoteService_Async)
+ ['{03FCD6F2-7705-491C-A300-09CA398CDCF3}']
+ procedure Invoke_GenerateReport;
+ procedure Invoke_PuedoEliminarCuenta(const Codigo: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarCuenta: Boolean;
+ end;
+
+ { CosrvCuentas_Async }
+ CosrvCuentas_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCuentas_Async;
+ end;
+
+ { TsrvCuentas_AsyncProxy }
+ TsrvCuentas_AsyncProxy = class(TDARemoteService_AsyncProxy, IsrvCuentas_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GenerateReport;
+ procedure Invoke_PuedoEliminarCuenta(const Codigo: Integer);
+ function Retrieve_GenerateReport: Binary;
+ function Retrieve_PuedoEliminarCuenta: Boolean;
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils;
+
+{ CosrvContactos }
+
+class function CosrvContactos_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos_Async;
+begin
+ result := TsrvContactos_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvContactos_AsyncProxy }
+
+function TsrvContactos_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvContactos';
+end;
+
+procedure TsrvContactos_AsyncProxy.Invoke_GenerateReport;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvContactos_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvContactos_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvContactos_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvContactos_AsyncProxy.Invoke_PuedoEliminarContacto(const CodigoContacto: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarContacto');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarContacto');
+ __Message.Write('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarContacto',__request);
+end;
+
+function TsrvContactos_AsyncProxy.Retrieve_PuedoEliminarContacto: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarContacto');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvLogin }
+
+class function CosrvLogin_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin_Async;
+begin
+ result := TsrvLogin_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvLogin_AsyncProxy }
+
+function TsrvLogin_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvLogin';
+end;
+
+procedure TsrvLogin_AsyncProxy.Invoke_Login(const UserID: String; const Password: String);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('Login');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Login');
+ __Message.Write('UserID', TypeInfo(String), UserID, []);
+ __Message.Write('Password', TypeInfo(String), Password, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('Login',__request);
+end;
+
+function TsrvLogin_AsyncProxy.Retrieve_Login(out LoginInfo: TLoginInfo): Boolean;
+var __response:TStream;
+begin
+ LoginInfo := nil;
+ __response := __RetrieveAsyncResponse('Login');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('LoginInfo', TypeInfo(TLoginInfo), LoginInfo, []);
+
+ __response.Free();
+end;
+
+procedure TsrvLogin_AsyncProxy.Invoke_Logout;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('Logout');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Logout');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('Logout',__request, false);
+end;
+
+procedure TsrvLogin_AsyncProxy.Invoke_UpdateUsers(const UsersDelta: Binary);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('UpdateUsers');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'UpdateUsers');
+ __Message.Write('UsersDelta', TypeInfo(Binary), UsersDelta, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('UpdateUsers',__request);
+end;
+
+function TsrvLogin_AsyncProxy.Retrieve_UpdateUsers: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('UpdateUsers');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvLogin_AsyncProxy.Invoke_SetUserPassword(const UserID: String; const NewPassword: String);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('SetUserPassword');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'SetUserPassword');
+ __Message.Write('UserID', TypeInfo(String), UserID, []);
+ __Message.Write('NewPassword', TypeInfo(String), NewPassword, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('SetUserPassword',__request);
+end;
+
+function TsrvLogin_AsyncProxy.Retrieve_SetUserPassword: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('SetUserPassword');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvLogin_AsyncProxy.Invoke_Ping;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('Ping');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Ping');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('Ping',__request);
+end;
+
+function TsrvLogin_AsyncProxy.Retrieve_Ping: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('Ping');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvPresupuestos }
+
+class function CosrvPresupuestos_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestos_Async;
+begin
+ result := TsrvPresupuestos_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPresupuestos_AsyncProxy }
+
+function TsrvPresupuestos_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvPresupuestos';
+end;
+
+procedure TsrvPresupuestos_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvPresupuestos_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPresupuestos_AsyncProxy.Invoke_GenerateReport(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvPresupuestos_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPresupuestos_AsyncProxy.Invoke_DarNuevaReferencia(const TipoPresupuesto: String);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('DarNuevaReferencia');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Write('TipoPresupuesto', TypeInfo(String), TipoPresupuesto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('DarNuevaReferencia',__request);
+end;
+
+function TsrvPresupuestos_AsyncProxy.Retrieve_DarNuevaReferencia: String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('DarNuevaReferencia');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPresupuestos_AsyncProxy.Invoke_PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarPresupuesto');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarPresupuesto');
+ __Message.Write('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarPresupuesto',__request);
+end;
+
+function TsrvPresupuestos_AsyncProxy.Retrieve_PuedoEliminarPresupuesto: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarPresupuesto');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvPedidosProveedor }
+
+class function CosrvPedidosProveedor_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor_Async;
+begin
+ result := TsrvPedidosProveedor_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPedidosProveedor_AsyncProxy }
+
+function TsrvPedidosProveedor_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvPedidosProveedor';
+end;
+
+procedure TsrvPedidosProveedor_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvPedidosProveedor_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPedidosProveedor_AsyncProxy.Invoke_DarNuevaReferencia;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('DarNuevaReferencia');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('DarNuevaReferencia',__request);
+end;
+
+function TsrvPedidosProveedor_AsyncProxy.Retrieve_DarNuevaReferencia: String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('DarNuevaReferencia');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPedidosProveedor_AsyncProxy.Invoke_GenerateReport(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvPedidosProveedor_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvPedidosProveedor_AsyncProxy.Invoke_PuedoEliminarPedido(const CodigoPedido: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarPedido');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarPedido');
+ __Message.Write('CodigoPedido', TypeInfo(Integer), CodigoPedido, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarPedido',__request);
+end;
+
+function TsrvPedidosProveedor_AsyncProxy.Retrieve_PuedoEliminarPedido: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarPedido');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvAlbaranesCliente }
+
+class function CosrvAlbaranesCliente_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente_Async;
+begin
+ result := TsrvAlbaranesCliente_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvAlbaranesCliente_AsyncProxy }
+
+function TsrvAlbaranesCliente_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvAlbaranesCliente';
+end;
+
+procedure TsrvAlbaranesCliente_AsyncProxy.Invoke_ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('ExisteAlbaranDePresupuesto');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'ExisteAlbaranDePresupuesto');
+ __Message.Write('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('ExisteAlbaranDePresupuesto',__request);
+end;
+
+function TsrvAlbaranesCliente_AsyncProxy.Retrieve_ExisteAlbaranDePresupuesto(out CodigoAlbaran: Integer): Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('ExisteAlbaranDePresupuesto');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+
+ __response.Free();
+end;
+
+procedure TsrvAlbaranesCliente_AsyncProxy.Invoke_DarNuevaReferencia;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('DarNuevaReferencia');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('DarNuevaReferencia',__request);
+end;
+
+function TsrvAlbaranesCliente_AsyncProxy.Retrieve_DarNuevaReferencia: String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('DarNuevaReferencia');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvAlbaranesCliente_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvAlbaranesCliente_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvAlbaranesCliente_AsyncProxy.Invoke_GenerateReport(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvAlbaranesCliente_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvAlbaranesCliente_AsyncProxy.Invoke_PuedoEliminarAlbaran(const CodigoAlbaran: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarAlbaran');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarAlbaran');
+ __Message.Write('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarAlbaran',__request);
+end;
+
+function TsrvAlbaranesCliente_AsyncProxy.Retrieve_PuedoEliminarAlbaran: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarAlbaran');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvFacturasCliente }
+
+class function CosrvFacturasCliente_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente_Async;
+begin
+ result := TsrvFacturasCliente_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvFacturasCliente_AsyncProxy }
+
+function TsrvFacturasCliente_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvFacturasCliente';
+end;
+
+procedure TsrvFacturasCliente_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvFacturasCliente_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvFacturasCliente_AsyncProxy.Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarFactura');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarFactura');
+ __Message.Write('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarFactura',__request);
+end;
+
+function TsrvFacturasCliente_AsyncProxy.Retrieve_PuedoEliminarFactura: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarFactura');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvFacturasCliente_AsyncProxy.Invoke_ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('ExisteFacturaDeAlbaran');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'ExisteFacturaDeAlbaran');
+ __Message.Write('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('ExisteFacturaDeAlbaran',__request);
+end;
+
+function TsrvFacturasCliente_AsyncProxy.Retrieve_ExisteFacturaDeAlbaran(out CodigoFactura: Integer): Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('ExisteFacturaDeAlbaran');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+
+ __response.Free();
+end;
+
+procedure TsrvFacturasCliente_AsyncProxy.Invoke_GenerateReport(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvFacturasCliente_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvFacturasCliente_AsyncProxy.Invoke_DarNuevaReferencia;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('DarNuevaReferencia');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('DarNuevaReferencia',__request);
+end;
+
+function TsrvFacturasCliente_AsyncProxy.Retrieve_DarNuevaReferencia: String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('DarNuevaReferencia');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvAlmacenes }
+
+class function CosrvAlmacenes_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes_Async;
+begin
+ result := TsrvAlmacenes_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvAlmacenes_AsyncProxy }
+
+function TsrvAlmacenes_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvAlmacenes';
+end;
+
+procedure TsrvAlmacenes_AsyncProxy.Invoke_GenerateReport;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvAlmacenes_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvAlmacenes_AsyncProxy.Invoke_PuedoEliminarAlmacen(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarAlmacen');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarAlmacen');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarAlmacen',__request);
+end;
+
+function TsrvAlmacenes_AsyncProxy.Retrieve_PuedoEliminarAlmacen: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarAlmacen');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvArticulos }
+
+class function CosrvArticulos_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos_Async;
+begin
+ result := TsrvArticulos_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvArticulos_AsyncProxy }
+
+function TsrvArticulos_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvArticulos';
+end;
+
+procedure TsrvArticulos_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvArticulos_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvMontajes }
+
+class function CosrvMontajes_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvMontajes_Async;
+begin
+ result := TsrvMontajes_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvMontajes_AsyncProxy }
+
+function TsrvMontajes_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvMontajes';
+end;
+
+procedure TsrvMontajes_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvMontajes_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvMontajes_AsyncProxy.Invoke_PuedoEliminarMontaje(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarMontaje');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarMontaje');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarMontaje',__request);
+end;
+
+function TsrvMontajes_AsyncProxy.Retrieve_PuedoEliminarMontaje: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarMontaje');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvMontajes_AsyncProxy.Invoke_AnadirFichaBeneficios(const CodigoMontaje: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('AnadirFichaBeneficios');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'AnadirFichaBeneficios');
+ __Message.Write('CodigoMontaje', TypeInfo(Integer), CodigoMontaje, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('AnadirFichaBeneficios',__request);
+end;
+
+function TsrvMontajes_AsyncProxy.Retrieve_AnadirFichaBeneficios: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('AnadirFichaBeneficios');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvFacturasProveedor }
+
+class function CosrvFacturasProveedor_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor_Async;
+begin
+ result := TsrvFacturasProveedor_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvFacturasProveedor_AsyncProxy }
+
+function TsrvFacturasProveedor_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvFacturasProveedor';
+end;
+
+procedure TsrvFacturasProveedor_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvFacturasProveedor_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvFacturasProveedor_AsyncProxy.Invoke_PuedoEliminarFactura(const CodigoFactura: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarFactura');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarFactura');
+ __Message.Write('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarFactura',__request);
+end;
+
+function TsrvFacturasProveedor_AsyncProxy.Retrieve_PuedoEliminarFactura: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarFactura');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvPagos }
+
+class function CosrvPagos_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPagos_Async;
+begin
+ result := TsrvPagos_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPagos_AsyncProxy }
+
+function TsrvPagos_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvPagos';
+end;
+
+procedure TsrvPagos_AsyncProxy.Invoke_GetNextAutoinc;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GetNextAutoinc');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GetNextAutoinc',__request);
+end;
+
+function TsrvPagos_AsyncProxy.Retrieve_GetNextAutoinc: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetNextAutoinc');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CosrvCuentas }
+
+class function CosrvCuentas_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCuentas_Async;
+begin
+ result := TsrvCuentas_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvCuentas_AsyncProxy }
+
+function TsrvCuentas_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'srvCuentas';
+end;
+
+procedure TsrvCuentas_AsyncProxy.Invoke_GenerateReport;
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('GenerateReport');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('GenerateReport',__request);
+end;
+
+function TsrvCuentas_AsyncProxy.Retrieve_GenerateReport: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GenerateReport');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TsrvCuentas_AsyncProxy.Invoke_PuedoEliminarCuenta(const Codigo: Integer);
+var __request:TStream;
+begin
+ __AssertProxyNotBusy('PuedoEliminarCuenta');
+ __request := TMemoryStream.Create;
+
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarCuenta');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __DispatchAsyncRequest('PuedoEliminarCuenta',__request);
+end;
+
+function TsrvCuentas_AsyncProxy.Retrieve_PuedoEliminarCuenta: Boolean;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('PuedoEliminarCuenta');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+
+ __response.Free();
+end;
+
+
+initialization
+end.
diff --git a/Servidor/FactuGES_Intf.pas b/Servidor/FactuGES_Intf.pas
new file mode 100644
index 0000000..50f648f
--- /dev/null
+++ b/Servidor/FactuGES_Intf.pas
@@ -0,0 +1,1959 @@
+unit FactuGES_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. }
+{----------------------------------------------------------------------------}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROClasses, uROClient, uROTypes, uROClientIntf,
+ {Used RODLs:} DataAbstract_Intf;
+
+const
+ { Library ID }
+ LibraryUID = '{AF0811AD-706A-47DE-A1DA-2891A7C80E01}';
+
+ { Service Interface ID's }
+ IsrvContactos_IID : TGUID = '{2502C3BD-1DD5-435B-832A-208767D5D55A}';
+ IsrvLogin_IID : TGUID = '{6B132AE4-D45F-4AE8-8215-E95789358329}';
+ IsrvPresupuestos_IID : TGUID = '{B89887A1-264C-4BF9-8D0F-C20B4709F180}';
+ IsrvPedidosProveedor_IID : TGUID = '{CCF8B5C3-4A8B-4CB4-B0FB-D95D3887C054}';
+ IsrvAlbaranesCliente_IID : TGUID = '{2DFDD00B-79D5-47C3-AD92-5FD6E88DCE61}';
+ IsrvFacturasCliente_IID : TGUID = '{9FD3194D-D8DE-4224-A209-13FC3FC6CD06}';
+ IsrvAlmacenes_IID : TGUID = '{EC5C0006-F1E0-4181-8E87-AC3C639AF9E3}';
+ IsrvArticulos_IID : TGUID = '{E6A99249-A392-4731-BC9B-9AD3A2FBDB16}';
+ IsrvMontajes_IID : TGUID = '{5A4F12DF-5370-439D-B976-A7BA389B0E30}';
+ IsrvFacturasProveedor_IID : TGUID = '{8610382E-FC02-47D6-9B1D-08DCB903B275}';
+ IsrvPagos_IID : TGUID = '{A260D4E7-F965-4457-AD15-135C802519CB}';
+ IsrvCuentas_IID : TGUID = '{E61A3B4E-AACE-4A1E-B798-968C90D61BBC}';
+ IsrvComisiones_IID : TGUID = '{461DBBE7-293D-497A-8CD1-840401883BCE}';
+ IsrvAsientos_IID : TGUID = '{1F0F3DFC-B6DD-430D-9D2D-758FEDE7F23B}';
+ IsrvIntervalos_IID : TGUID = '{DFEDABB2-C0A6-4229-A753-F4DB93B8278B}';
+ IsrvConfiguracion_IID : TGUID = '{38039721-5BEC-42A9-A057-78C47740F844}';
+ IsrvCitas_IID : TGUID = '{E31D5D39-5609-4E64-809C-B576D6CE9D1D}';
+
+ { Event ID's }
+
+type
+ { Forward declarations }
+ IsrvContactos = interface;
+ IsrvLogin = interface;
+ IsrvPresupuestos = interface;
+ IsrvPedidosProveedor = interface;
+ IsrvAlbaranesCliente = interface;
+ IsrvFacturasCliente = interface;
+ IsrvAlmacenes = interface;
+ IsrvArticulos = interface;
+ IsrvMontajes = interface;
+ IsrvFacturasProveedor = interface;
+ IsrvPagos = interface;
+ IsrvCuentas = interface;
+ IsrvComisiones = interface;
+ IsrvAsientos = interface;
+ IsrvIntervalos = interface;
+ IsrvConfiguracion = interface;
+ IsrvCitas = interface;
+
+
+ TLoginInfo = class;
+ TstImportes = class;
+
+
+ { TLoginInfo }
+ TLoginInfo = class(TDALoginInfo)
+ private
+ fRoles: TDAStringArray;
+ function GetRoles: TDAStringArray;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ published
+ property Roles:TDAStringArray read GetRoles write fRoles;
+ end;
+
+ { TLoginInfoCollection }
+ TLoginInfoCollection = class(TDALoginInfoCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(Index: integer): TLoginInfo;
+ procedure SetItems(Index: integer; const Value: TLoginInfo);
+ public
+ constructor Create; overload;
+ function Add: TLoginInfo; reintroduce;
+ property Items[Index: integer]:TLoginInfo read GetItems write SetItems; default;
+ end;
+
+ { TstImportes }
+ TstImportes = class(TROComplexType)
+ private
+ fBaseImponible: Currency;
+ fImporteIVA: Currency;
+ fImporteTotal: Currency;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ published
+ property BaseImponible:Currency read fBaseImponible write fBaseImponible;
+ property ImporteIVA:Currency read fImporteIVA write fImporteIVA;
+ property ImporteTotal:Currency read fImporteTotal write fImporteTotal;
+ end;
+
+ { TstImportesCollection }
+ TstImportesCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(Index: integer): TstImportes;
+ procedure SetItems(Index: integer; const Value: TstImportes);
+ public
+ constructor Create; overload;
+ function Add: TstImportes; reintroduce;
+ property Items[Index: integer]:TstImportes read GetItems write SetItems; default;
+ end;
+
+ { IsrvContactos }
+ IsrvContactos = interface(IDARemoteService)
+ ['{2502C3BD-1DD5-435B-832A-208767D5D55A}']
+ function GenerateReport: Binary;
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarContacto(const CodigoContacto: Integer): Boolean;
+ end;
+
+ { CosrvContactos }
+ CosrvContactos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos;
+ end;
+
+ { TsrvContactos_Proxy }
+ TsrvContactos_Proxy = class(TDARemoteService_Proxy, IsrvContactos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GenerateReport: Binary;
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarContacto(const CodigoContacto: Integer): 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;
+
+ { IsrvPresupuestos }
+ IsrvPresupuestos = interface(IDARemoteService)
+ ['{B89887A1-264C-4BF9-8D0F-C20B4709F180}']
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean;
+ end;
+
+ { CosrvPresupuestos }
+ CosrvPresupuestos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestos;
+ end;
+
+ { TsrvPresupuestos_Proxy }
+ TsrvPresupuestos_Proxy = class(TDARemoteService_Proxy, IsrvPresupuestos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean;
+ end;
+
+ { IsrvPedidosProveedor }
+ IsrvPedidosProveedor = interface(IDARemoteService)
+ ['{CCF8B5C3-4A8B-4CB4-B0FB-D95D3887C054}']
+ function GetNextAutoinc: Integer;
+ function DarNuevaReferencia: String;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function PuedoEliminarPedido(const CodigoPedido: Integer): Boolean;
+ end;
+
+ { CosrvPedidosProveedor }
+ CosrvPedidosProveedor = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor;
+ end;
+
+ { TsrvPedidosProveedor_Proxy }
+ TsrvPedidosProveedor_Proxy = class(TDARemoteService_Proxy, IsrvPedidosProveedor)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ function DarNuevaReferencia: String;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function PuedoEliminarPedido(const CodigoPedido: Integer): Boolean;
+ end;
+
+ { IsrvAlbaranesCliente }
+ IsrvAlbaranesCliente = interface(IDARemoteService)
+ ['{2DFDD00B-79D5-47C3-AD92-5FD6E88DCE61}']
+ function ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean;
+ function DarNuevaReferencia: String;
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function PuedoEliminarAlbaran(const CodigoAlbaran: Integer): Boolean;
+ function DarSumaImportes(const FechaIni: DateTime; const FechaFin: DateTime): TstImportes;
+ end;
+
+ { CosrvAlbaranesCliente }
+ CosrvAlbaranesCliente = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente;
+ end;
+
+ { TsrvAlbaranesCliente_Proxy }
+ TsrvAlbaranesCliente_Proxy = class(TDARemoteService_Proxy, IsrvAlbaranesCliente)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean;
+ function DarNuevaReferencia: String;
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer): Binary;
+ function PuedoEliminarAlbaran(const CodigoAlbaran: Integer): Boolean;
+ function DarSumaImportes(const FechaIni: DateTime; const FechaFin: DateTime): TstImportes;
+ end;
+
+ { IsrvFacturasCliente }
+ IsrvFacturasCliente = interface(IDARemoteService)
+ ['{9FD3194D-D8DE-4224-A209-13FC3FC6CD06}']
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ function ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean;
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function DarNuevaReferencia: String;
+ end;
+
+ { CosrvFacturasCliente }
+ CosrvFacturasCliente = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente;
+ end;
+
+ { TsrvFacturasCliente_Proxy }
+ TsrvFacturasCliente_Proxy = class(TDARemoteService_Proxy, IsrvFacturasCliente)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ function ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean;
+ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+ function DarNuevaReferencia: String;
+ end;
+
+ { IsrvAlmacenes }
+ IsrvAlmacenes = interface(IDARemoteService)
+ ['{EC5C0006-F1E0-4181-8E87-AC3C639AF9E3}']
+ function GenerateReport: Binary;
+ function PuedoEliminarAlmacen(const Codigo: Integer): Boolean;
+ end;
+
+ { CosrvAlmacenes }
+ CosrvAlmacenes = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes;
+ end;
+
+ { TsrvAlmacenes_Proxy }
+ TsrvAlmacenes_Proxy = class(TDARemoteService_Proxy, IsrvAlmacenes)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GenerateReport: Binary;
+ function PuedoEliminarAlmacen(const Codigo: Integer): Boolean;
+ end;
+
+ { IsrvArticulos }
+ IsrvArticulos = interface(IDARemoteService)
+ ['{E6A99249-A392-4731-BC9B-9AD3A2FBDB16}']
+ function GetNextAutoinc: Integer;
+ end;
+
+ { CosrvArticulos }
+ CosrvArticulos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
+ end;
+
+ { TsrvArticulos_Proxy }
+ TsrvArticulos_Proxy = class(TDARemoteService_Proxy, IsrvArticulos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ end;
+
+ { IsrvMontajes }
+ IsrvMontajes = interface(IDARemoteService)
+ ['{5A4F12DF-5370-439D-B976-A7BA389B0E30}']
+ function GetNextAutoinc(const Generador: String): Integer;
+ function PuedoEliminarMontaje(const Codigo: Integer): Boolean;
+ function GenerateReportFicha(const Codigo: Integer): Binary;
+ function GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas: Integer): Binary;
+ function DarNuevaReferencia(const TipoMontaje: String): String;
+ end;
+
+ { CosrvMontajes }
+ CosrvMontajes = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvMontajes;
+ end;
+
+ { TsrvMontajes_Proxy }
+ TsrvMontajes_Proxy = class(TDARemoteService_Proxy, IsrvMontajes)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc(const Generador: String): Integer;
+ function PuedoEliminarMontaje(const Codigo: Integer): Boolean;
+ function GenerateReportFicha(const Codigo: Integer): Binary;
+ function GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas: Integer): Binary;
+ function DarNuevaReferencia(const TipoMontaje: String): String;
+ end;
+
+ { IsrvFacturasProveedor }
+ IsrvFacturasProveedor = interface(IDARemoteService)
+ ['{8610382E-FC02-47D6-9B1D-08DCB903B275}']
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ end;
+
+ { CosrvFacturasProveedor }
+ CosrvFacturasProveedor = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor;
+ end;
+
+ { TsrvFacturasProveedor_Proxy }
+ TsrvFacturasProveedor_Proxy = class(TDARemoteService_Proxy, IsrvFacturasProveedor)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+ end;
+
+ { IsrvPagos }
+ IsrvPagos = interface(IDARemoteService)
+ ['{A260D4E7-F965-4457-AD15-135C802519CB}']
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer): Binary;
+ end;
+
+ { CosrvPagos }
+ CosrvPagos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPagos;
+ end;
+
+ { TsrvPagos_Proxy }
+ TsrvPagos_Proxy = class(TDARemoteService_Proxy, IsrvPagos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetNextAutoinc: Integer;
+ function GenerateReport(const Codigo: Integer): Binary;
+ end;
+
+ { IsrvCuentas }
+ IsrvCuentas = interface(IDARemoteService)
+ ['{E61A3B4E-AACE-4A1E-B798-968C90D61BBC}']
+ function GenerateReport: Binary;
+ function PuedoEliminarCuenta(const Codigo: Integer): Boolean;
+ end;
+
+ { CosrvCuentas }
+ CosrvCuentas = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCuentas;
+ end;
+
+ { TsrvCuentas_Proxy }
+ TsrvCuentas_Proxy = class(TDARemoteService_Proxy, IsrvCuentas)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GenerateReport: Binary;
+ function PuedoEliminarCuenta(const Codigo: Integer): Boolean;
+ end;
+
+ { IsrvComisiones }
+ IsrvComisiones = interface(IDARemoteService)
+ ['{461DBBE7-293D-497A-8CD1-840401883BCE}']
+ function GetComision(const CodigoContacto: Integer): Double;
+ procedure SetComision(const CodigoContacto: Integer; const Value: Double);
+ end;
+
+ { CosrvComisiones }
+ CosrvComisiones = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones;
+ end;
+
+ { TsrvComisiones_Proxy }
+ TsrvComisiones_Proxy = class(TDARemoteService_Proxy, IsrvComisiones)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetComision(const CodigoContacto: Integer): Double;
+ procedure SetComision(const CodigoContacto: Integer; const Value: Double);
+ end;
+
+ { IsrvAsientos }
+ IsrvAsientos = interface(IDARemoteService)
+ ['{1F0F3DFC-B6DD-430D-9D2D-758FEDE7F23B}']
+ function AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean;
+ function darPenultimoCierre(const CodigoCuenta: Integer): DateTime;
+ function darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+ end;
+
+ { CosrvAsientos }
+ CosrvAsientos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAsientos;
+ end;
+
+ { TsrvAsientos_Proxy }
+ TsrvAsientos_Proxy = class(TDARemoteService_Proxy, IsrvAsientos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean;
+ function darPenultimoCierre(const CodigoCuenta: Integer): DateTime;
+ function darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+ end;
+
+ { IsrvIntervalos }
+ IsrvIntervalos = interface(IDARemoteService)
+ ['{DFEDABB2-C0A6-4229-A753-F4DB93B8278B}']
+ end;
+
+ { CosrvIntervalos }
+ CosrvIntervalos = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvIntervalos;
+ end;
+
+ { TsrvIntervalos_Proxy }
+ TsrvIntervalos_Proxy = class(TDARemoteService_Proxy, IsrvIntervalos)
+ protected
+ function __GetInterfaceName:string; override;
+
+ end;
+
+ { IsrvConfiguracion }
+ IsrvConfiguracion = interface
+ ['{38039721-5BEC-42A9-A057-78C47740F844}']
+ function darRutaDocumentos: String;
+ end;
+
+ { CosrvConfiguracion }
+ CosrvConfiguracion = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion;
+ end;
+
+ { TsrvConfiguracion_Proxy }
+ TsrvConfiguracion_Proxy = class(TROProxy, IsrvConfiguracion)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function darRutaDocumentos: String;
+ end;
+
+ { IsrvCitas }
+ IsrvCitas = interface(IDARemoteService)
+ ['{E31D5D39-5609-4E64-809C-B576D6CE9D1D}']
+ function getCodigo(const Generador: String): Integer;
+ end;
+
+ { CosrvCitas }
+ CosrvCitas = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCitas;
+ end;
+
+ { TsrvCitas_Proxy }
+ TsrvCitas_Proxy = class(TDARemoteService_Proxy, IsrvCitas)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function getCodigo(const Generador: String): Integer;
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils,
+ {RemObjects:} uROEventRepository, uRORes;
+
+{ TLoginInfo }
+
+procedure TLoginInfo.Assign(iSource: TPersistent);
+var lSource:TLoginInfo;
+begin
+ inherited Assign(iSource);
+ if (iSource is TLoginInfo) then begin
+ lSource := TLoginInfo(iSource);
+ Roles.Assign(lSource.Roles);
+ end;
+end;
+
+function TLoginInfo.GetRoles: TDAStringArray;
+begin
+ if (fRoles = nil) then fRoles := TDAStringArray.Create();
+ result := fRoles;
+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(Index: integer): TLoginInfo;
+begin
+ result := TLoginInfo(inherited Items[Index]);
+end;
+
+procedure TLoginInfoCollection.SetItems(Index: integer; const Value: TLoginInfo);
+begin
+ TLoginInfo(inherited Items[Index]).Assign(Value);
+end;
+
+{ TstImportes }
+
+procedure TstImportes.Assign(iSource: TPersistent);
+var lSource:TstImportes;
+begin
+ inherited Assign(iSource);
+ if (iSource is TstImportes) then begin
+ lSource := TstImportes(iSource);
+ BaseImponible := lSource.BaseImponible;
+ ImporteIVA := lSource.ImporteIVA;
+ ImporteTotal := lSource.ImporteTotal;
+ end;
+end;
+
+{ TstImportesCollection }
+constructor TstImportesCollection.Create;
+begin
+ inherited Create(TstImportes);
+end;
+
+constructor TstImportesCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TstImportesCollection.Add: TstImportes;
+begin
+ result := TstImportes(inherited Add);
+end;
+
+function TstImportesCollection.GetItems(Index: integer): TstImportes;
+begin
+ result := TstImportes(inherited Items[Index]);
+end;
+
+procedure TstImportesCollection.SetItems(Index: integer; const Value: TstImportes);
+begin
+ TstImportes(inherited Items[Index]).Assign(Value);
+end;
+
+{ CosrvContactos }
+
+class function CosrvContactos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos;
+begin
+ result := TsrvContactos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvContactos_Proxy }
+
+function TsrvContactos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvContactos';
+end;
+
+function TsrvContactos_Proxy.GenerateReport: Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvContactos_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvContactos_Proxy.PuedoEliminarContacto(const CodigoContacto: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarContacto');
+ __Message.Write('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ 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;
+var
+ __request, __response : TMemoryStream;
+begin
+ LoginInfo := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Login');
+ __Message.Write('UserID', TypeInfo(String), UserID, []);
+ __Message.Write('Password', TypeInfo(String), Password, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('LoginInfo', TypeInfo(FactuGES_Intf.TLoginInfo), LoginInfo, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+procedure TsrvLogin_Proxy.Logout;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Logout');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvLogin_Proxy.Ping: Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'Ping');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvLogin_Proxy.SetUserPassword(const UserID: String; const NewPassword: String): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'SetUserPassword');
+ __Message.Write('UserID', TypeInfo(String), UserID, []);
+ __Message.Write('NewPassword', TypeInfo(String), NewPassword, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvLogin_Proxy.UpdateUsers(const UsersDelta: Binary): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'UpdateUsers');
+ __Message.Write('UsersDelta', TypeInfo(Binary), UsersDelta, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvPresupuestos }
+
+class function CosrvPresupuestos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestos;
+begin
+ result := TsrvPresupuestos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPresupuestos_Proxy }
+
+function TsrvPresupuestos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvPresupuestos';
+end;
+
+function TsrvPresupuestos_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPresupuestos_Proxy.GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Write('TamLetra', TypeInfo(Integer), TamLetra, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPresupuestos_Proxy.PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarPresupuesto');
+ __Message.Write('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvPedidosProveedor }
+
+class function CosrvPedidosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor;
+begin
+ result := TsrvPedidosProveedor_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPedidosProveedor_Proxy }
+
+function TsrvPedidosProveedor_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvPedidosProveedor';
+end;
+
+function TsrvPedidosProveedor_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPedidosProveedor_Proxy.DarNuevaReferencia: String;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPedidosProveedor_Proxy.GenerateReport(const Codigo: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPedidosProveedor_Proxy.PuedoEliminarPedido(const CodigoPedido: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarPedido');
+ __Message.Write('CodigoPedido', TypeInfo(Integer), CodigoPedido, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvAlbaranesCliente }
+
+class function CosrvAlbaranesCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente;
+begin
+ result := TsrvAlbaranesCliente_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvAlbaranesCliente_Proxy }
+
+function TsrvAlbaranesCliente_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvAlbaranesCliente';
+end;
+
+function TsrvAlbaranesCliente_Proxy.ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'ExisteAlbaranDePresupuesto');
+ __Message.Write('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlbaranesCliente_Proxy.DarNuevaReferencia: String;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlbaranesCliente_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlbaranesCliente_Proxy.GenerateReport(const Codigo: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlbaranesCliente_Proxy.PuedoEliminarAlbaran(const CodigoAlbaran: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarAlbaran');
+ __Message.Write('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlbaranesCliente_Proxy.DarSumaImportes(const FechaIni: DateTime; const FechaFin: DateTime): TstImportes;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarSumaImportes');
+ __Message.Write('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Write('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(FactuGES_Intf.TstImportes), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvFacturasCliente }
+
+class function CosrvFacturasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente;
+begin
+ result := TsrvFacturasCliente_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvFacturasCliente_Proxy }
+
+function TsrvFacturasCliente_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvFacturasCliente';
+end;
+
+function TsrvFacturasCliente_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvFacturasCliente_Proxy.PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarFactura');
+ __Message.Write('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvFacturasCliente_Proxy.ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'ExisteFacturaDeAlbaran');
+ __Message.Write('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvFacturasCliente_Proxy.GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Write('TamLetra', TypeInfo(Integer), TamLetra, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvFacturasCliente_Proxy.DarNuevaReferencia: String;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvAlmacenes }
+
+class function CosrvAlmacenes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes;
+begin
+ result := TsrvAlmacenes_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvAlmacenes_Proxy }
+
+function TsrvAlmacenes_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvAlmacenes';
+end;
+
+function TsrvAlmacenes_Proxy.GenerateReport: Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAlmacenes_Proxy.PuedoEliminarAlmacen(const Codigo: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarAlmacen');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvArticulos }
+
+class function CosrvArticulos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
+begin
+ result := TsrvArticulos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvArticulos_Proxy }
+
+function TsrvArticulos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvArticulos';
+end;
+
+function TsrvArticulos_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvMontajes }
+
+class function CosrvMontajes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvMontajes;
+begin
+ result := TsrvMontajes_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvMontajes_Proxy }
+
+function TsrvMontajes_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvMontajes';
+end;
+
+function TsrvMontajes_Proxy.GetNextAutoinc(const Generador: String): Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Write('Generador', TypeInfo(String), Generador, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvMontajes_Proxy.PuedoEliminarMontaje(const Codigo: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarMontaje');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvMontajes_Proxy.GenerateReportFicha(const Codigo: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReportFicha');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvMontajes_Proxy.GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReportEtiquetas');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Write('NumEtiquetas', TypeInfo(Integer), NumEtiquetas, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvMontajes_Proxy.DarNuevaReferencia(const TipoMontaje: String): String;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
+ __Message.Write('TipoMontaje', TypeInfo(String), TipoMontaje, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvFacturasProveedor }
+
+class function CosrvFacturasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor;
+begin
+ result := TsrvFacturasProveedor_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvFacturasProveedor_Proxy }
+
+function TsrvFacturasProveedor_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvFacturasProveedor';
+end;
+
+function TsrvFacturasProveedor_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvFacturasProveedor_Proxy.PuedoEliminarFactura(const CodigoFactura: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarFactura');
+ __Message.Write('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvPagos }
+
+class function CosrvPagos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPagos;
+begin
+ result := TsrvPagos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvPagos_Proxy }
+
+function TsrvPagos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvPagos';
+end;
+
+function TsrvPagos_Proxy.GetNextAutoinc: Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoinc');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvPagos_Proxy.GenerateReport(const Codigo: Integer): Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvCuentas }
+
+class function CosrvCuentas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCuentas;
+begin
+ result := TsrvCuentas_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvCuentas_Proxy }
+
+function TsrvCuentas_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvCuentas';
+end;
+
+function TsrvCuentas_Proxy.GenerateReport: Binary;
+var
+ __request, __response : TMemoryStream;
+begin
+ result := nil;
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvCuentas_Proxy.PuedoEliminarCuenta(const Codigo: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'PuedoEliminarCuenta');
+ __Message.Write('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvComisiones }
+
+class function CosrvComisiones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones;
+begin
+ result := TsrvComisiones_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvComisiones_Proxy }
+
+function TsrvComisiones_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvComisiones';
+end;
+
+function TsrvComisiones_Proxy.GetComision(const CodigoContacto: Integer): Double;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GetComision');
+ __Message.Write('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Double), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+procedure TsrvComisiones_Proxy.SetComision(const CodigoContacto: Integer; const Value: Double);
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'SetComision');
+ __Message.Write('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+ __Message.Write('Value', TypeInfo(Double), Value, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvAsientos }
+
+class function CosrvAsientos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAsientos;
+begin
+ result := TsrvAsientos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvAsientos_Proxy }
+
+function TsrvAsientos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvAsientos';
+end;
+
+function TsrvAsientos_Proxy.AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'AsignarPunteo');
+ __Message.Write('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+ __Message.Write('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Write('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+ __Message.Write('ValorPunteado', TypeInfo(Integer), ValorPunteado, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAsientos_Proxy.darPenultimoCierre(const CodigoCuenta: Integer): DateTime;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'darPenultimoCierre');
+ __Message.Write('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(DateTime), result, [paIsDateTime]);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+function TsrvAsientos_Proxy.darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'darSumaAcumulada');
+ __Message.Write('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+ __Message.Write('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Write('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Currency), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvIntervalos }
+
+class function CosrvIntervalos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvIntervalos;
+begin
+ result := TsrvIntervalos_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+function TsrvIntervalos_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvIntervalos';
+end;
+
+{ CosrvConfiguracion }
+
+class function CosrvConfiguracion.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion;
+begin
+ result := TsrvConfiguracion_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvConfiguracion_Proxy }
+
+function TsrvConfiguracion_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvConfiguracion';
+end;
+
+function TsrvConfiguracion_Proxy.darRutaDocumentos: String;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'darRutaDocumentos');
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(String), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+{ CosrvCitas }
+
+class function CosrvCitas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvCitas;
+begin
+ result := TsrvCitas_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TsrvCitas_Proxy }
+
+function TsrvCitas_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvCitas';
+end;
+
+function TsrvCitas_Proxy.getCodigo(const Generador: String): Integer;
+var
+ __request, __response : TMemoryStream;
+begin
+ __request := TMemoryStream.Create;
+ __response := TMemoryStream.Create;
+
+ try
+ __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'getCodigo');
+ __Message.Write('Generador', TypeInfo(String), Generador, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__request);
+ __TransportChannel.Dispatch(__request, __response);
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __request.Free;
+ __response.Free;
+ end
+end;
+
+initialization
+ RegisterROClass(TLoginInfo);
+ RegisterROClass(TstImportes);
+ RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy);
+ RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy);
+ RegisterProxyClass(IsrvPresupuestos_IID, TsrvPresupuestos_Proxy);
+ RegisterProxyClass(IsrvPedidosProveedor_IID, TsrvPedidosProveedor_Proxy);
+ RegisterProxyClass(IsrvAlbaranesCliente_IID, TsrvAlbaranesCliente_Proxy);
+ RegisterProxyClass(IsrvFacturasCliente_IID, TsrvFacturasCliente_Proxy);
+ RegisterProxyClass(IsrvAlmacenes_IID, TsrvAlmacenes_Proxy);
+ RegisterProxyClass(IsrvArticulos_IID, TsrvArticulos_Proxy);
+ RegisterProxyClass(IsrvMontajes_IID, TsrvMontajes_Proxy);
+ RegisterProxyClass(IsrvFacturasProveedor_IID, TsrvFacturasProveedor_Proxy);
+ RegisterProxyClass(IsrvPagos_IID, TsrvPagos_Proxy);
+ RegisterProxyClass(IsrvCuentas_IID, TsrvCuentas_Proxy);
+ RegisterProxyClass(IsrvComisiones_IID, TsrvComisiones_Proxy);
+ RegisterProxyClass(IsrvAsientos_IID, TsrvAsientos_Proxy);
+ RegisterProxyClass(IsrvIntervalos_IID, TsrvIntervalos_Proxy);
+ RegisterProxyClass(IsrvConfiguracion_IID, TsrvConfiguracion_Proxy);
+ RegisterProxyClass(IsrvCitas_IID, TsrvCitas_Proxy);
+
+
+finalization
+ UnregisterROClass(TLoginInfo);
+ UnregisterROClass(TstImportes);
+ UnregisterProxyClass(IsrvContactos_IID);
+ UnregisterProxyClass(IsrvLogin_IID);
+ UnregisterProxyClass(IsrvPresupuestos_IID);
+ UnregisterProxyClass(IsrvPedidosProveedor_IID);
+ UnregisterProxyClass(IsrvAlbaranesCliente_IID);
+ UnregisterProxyClass(IsrvFacturasCliente_IID);
+ UnregisterProxyClass(IsrvAlmacenes_IID);
+ UnregisterProxyClass(IsrvArticulos_IID);
+ UnregisterProxyClass(IsrvMontajes_IID);
+ UnregisterProxyClass(IsrvFacturasProveedor_IID);
+ UnregisterProxyClass(IsrvPagos_IID);
+ UnregisterProxyClass(IsrvCuentas_IID);
+ UnregisterProxyClass(IsrvComisiones_IID);
+ UnregisterProxyClass(IsrvAsientos_IID);
+ UnregisterProxyClass(IsrvIntervalos_IID);
+ UnregisterProxyClass(IsrvConfiguracion_IID);
+ UnregisterProxyClass(IsrvCitas_IID);
+
+end.
diff --git a/Servidor/FactuGES_Invk.pas b/Servidor/FactuGES_Invk.pas
new file mode 100644
index 0000000..d39c288
--- /dev/null
+++ b/Servidor/FactuGES_Invk.pas
@@ -0,0 +1,1184 @@
+unit FactuGES_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. }
+{----------------------------------------------------------------------------}
+
+interface
+
+uses
+ {vcl:} Classes,
+ {RemObjects:} uROServer, uROServerIntf, uROTypes, uROClientIntf,
+ {Used RODL Intf's:} DataAbstract_Intf,
+ {Used RODL Invk's:} DataAbstract_Invk,
+ {Generated:} FactuGES_Intf;
+
+type
+ TsrvContactos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarContacto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ 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;
+
+ TsrvPresupuestos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(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_PuedoEliminarPresupuesto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvPedidosProveedor_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_DarNuevaReferencia(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_PuedoEliminarPedido(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvAlbaranesCliente_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_ExisteAlbaranDePresupuesto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetNextAutoinc(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_PuedoEliminarAlbaran(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_DarSumaImportes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvFacturasCliente_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarFactura(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_ExisteFacturaDeAlbaran(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_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvAlmacenes_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarAlmacen(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvArticulos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvMontajes_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarMontaje(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GenerateReportFicha(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GenerateReportEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvFacturasProveedor_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarFactura(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvPagos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetNextAutoinc(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);
+ end;
+
+ TsrvCuentas_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_PuedoEliminarCuenta(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvComisiones_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_GetComision(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_SetComision(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvAsientos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_AsignarPunteo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_darPenultimoCierre(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_darSumaAcumulada(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvIntervalos_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ end;
+
+ TsrvConfiguracion_Invoker = class(TROInvoker)
+ private
+ protected
+ published
+ procedure Invoke_darRutaDocumentos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TsrvCitas_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ published
+ procedure Invoke_getCodigo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+implementation
+
+uses
+ {RemObjects:} uRORes, uROClient;
+
+{ TsrvContactos_Invoker }
+
+procedure TsrvContactos_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport: Binary; }
+var
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ lResult := (__Instance as IsrvContactos).GenerateReport;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvContactos', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvContactos_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvContactos).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvContactos', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvContactos_Invoker.Invoke_PuedoEliminarContacto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarContacto(const CodigoContacto: Integer): Boolean; }
+var
+ CodigoContacto: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+
+ lResult := (__Instance as IsrvContactos).PuedoEliminarContacto(CodigoContacto);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvContactos', 'PuedoEliminarContactoResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ 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: FactuGES_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.Initialize(__Transport, 'FactuGES', 'srvLogin', 'LoginResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('LoginInfo', TypeInfo(FactuGES_Intf.TLoginInfo), LoginInfo, []);
+ __Message.Finalize;
+
+ 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.Initialize(__Transport, 'FactuGES', '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.Initialize(__Transport, 'FactuGES', 'srvLogin', 'PingResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ 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.Initialize(__Transport, 'FactuGES', 'srvLogin', 'SetUserPasswordResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ 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.Initialize(__Transport, 'FactuGES', 'srvLogin', 'UpdateUsersResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(UsersDelta);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TsrvPresupuestos_Invoker }
+
+procedure TsrvPresupuestos_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvPresupuestos).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPresupuestos', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvPresupuestos_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary; }
+var
+ Codigo: Integer;
+ TamLetra: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Read('TamLetra', TypeInfo(Integer), TamLetra, []);
+
+ lResult := (__Instance as IsrvPresupuestos).GenerateReport(Codigo, TamLetra);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPresupuestos', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvPresupuestos_Invoker.Invoke_PuedoEliminarPresupuesto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarPresupuesto(const CodigoPresupuesto: Integer): Boolean; }
+var
+ CodigoPresupuesto: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+
+ lResult := (__Instance as IsrvPresupuestos).PuedoEliminarPresupuesto(CodigoPresupuesto);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPresupuestos', 'PuedoEliminarPresupuestoResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvPedidosProveedor_Invoker }
+
+procedure TsrvPedidosProveedor_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvPedidosProveedor).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvPedidosProveedor_Invoker.Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function DarNuevaReferencia: String; }
+var
+ lResult: String;
+begin
+ try
+ lResult := (__Instance as IsrvPedidosProveedor).DarNuevaReferencia;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'DarNuevaReferenciaResponse');
+ __Message.Write('Result', TypeInfo(String), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvPedidosProveedor_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport(const Codigo: Integer): Binary; }
+var
+ Codigo: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvPedidosProveedor).GenerateReport(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvPedidosProveedor_Invoker.Invoke_PuedoEliminarPedido(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarPedido(const CodigoPedido: Integer): Boolean; }
+var
+ CodigoPedido: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoPedido', TypeInfo(Integer), CodigoPedido, []);
+
+ lResult := (__Instance as IsrvPedidosProveedor).PuedoEliminarPedido(CodigoPedido);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPedidosProveedor', 'PuedoEliminarPedidoResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvAlbaranesCliente_Invoker }
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_ExisteAlbaranDePresupuesto(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExisteAlbaranDePresupuesto(const CodigoPresupuesto: Integer; out CodigoAlbaran: Integer): Boolean; }
+var
+ CodigoPresupuesto: Integer;
+ CodigoAlbaran: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoPresupuesto', TypeInfo(Integer), CodigoPresupuesto, []);
+
+ lResult := (__Instance as IsrvAlbaranesCliente).ExisteAlbaranDePresupuesto(CodigoPresupuesto, CodigoAlbaran);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'ExisteAlbaranDePresupuestoResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function DarNuevaReferencia: String; }
+var
+ lResult: String;
+begin
+ try
+ lResult := (__Instance as IsrvAlbaranesCliente).DarNuevaReferencia;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'DarNuevaReferenciaResponse');
+ __Message.Write('Result', TypeInfo(String), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvAlbaranesCliente).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport(const Codigo: Integer): Binary; }
+var
+ Codigo: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvAlbaranesCliente).GenerateReport(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_PuedoEliminarAlbaran(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarAlbaran(const CodigoAlbaran: Integer): Boolean; }
+var
+ CodigoAlbaran: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+
+ lResult := (__Instance as IsrvAlbaranesCliente).PuedoEliminarAlbaran(CodigoAlbaran);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'PuedoEliminarAlbaranResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAlbaranesCliente_Invoker.Invoke_DarSumaImportes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function DarSumaImportes(const FechaIni: DateTime; const FechaFin: DateTime): TstImportes; }
+var
+ FechaIni: DateTime;
+ FechaFin: DateTime;
+ lResult: FactuGES_Intf.TstImportes;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Read('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+
+ lResult := (__Instance as IsrvAlbaranesCliente).DarSumaImportes(FechaIni, FechaFin);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'DarSumaImportesResponse');
+ __Message.Write('Result', TypeInfo(FactuGES_Intf.TstImportes), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TsrvFacturasCliente_Invoker }
+
+procedure TsrvFacturasCliente_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvFacturasCliente).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvFacturasCliente_Invoker.Invoke_PuedoEliminarFactura(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean; }
+var
+ CodigoFactura: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+
+ lResult := (__Instance as IsrvFacturasCliente).PuedoEliminarFactura(CodigoFactura);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'PuedoEliminarFacturaResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvFacturasCliente_Invoker.Invoke_ExisteFacturaDeAlbaran(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExisteFacturaDeAlbaran(const CodigoAlbaran: Integer; out CodigoFactura: Integer): Boolean; }
+var
+ CodigoAlbaran: Integer;
+ CodigoFactura: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoAlbaran', TypeInfo(Integer), CodigoAlbaran, []);
+
+ lResult := (__Instance as IsrvFacturasCliente).ExisteFacturaDeAlbaran(CodigoAlbaran, CodigoFactura);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'ExisteFacturaDeAlbaranResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvFacturasCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport(const Codigo: Integer; const TamLetra: Integer): Binary; }
+var
+ Codigo: Integer;
+ TamLetra: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Read('TamLetra', TypeInfo(Integer), TamLetra, []);
+
+ lResult := (__Instance as IsrvFacturasCliente).GenerateReport(Codigo, TamLetra);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvFacturasCliente_Invoker.Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function DarNuevaReferencia: String; }
+var
+ lResult: String;
+begin
+ try
+ lResult := (__Instance as IsrvFacturasCliente).DarNuevaReferencia;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasCliente', 'DarNuevaReferenciaResponse');
+ __Message.Write('Result', TypeInfo(String), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvAlmacenes_Invoker }
+
+procedure TsrvAlmacenes_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport: Binary; }
+var
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ lResult := (__Instance as IsrvAlmacenes).GenerateReport;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlmacenes', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvAlmacenes_Invoker.Invoke_PuedoEliminarAlmacen(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarAlmacen(const Codigo: Integer): Boolean; }
+var
+ Codigo: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvAlmacenes).PuedoEliminarAlmacen(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAlmacenes', 'PuedoEliminarAlmacenResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvArticulos_Invoker }
+
+procedure TsrvArticulos_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvArticulos).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvArticulos', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvMontajes_Invoker }
+
+procedure TsrvMontajes_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc(const Generador: String): Integer; }
+var
+ Generador: String;
+ lResult: Integer;
+begin
+ try
+ __Message.Read('Generador', TypeInfo(String), Generador, []);
+
+ lResult := (__Instance as IsrvMontajes).GetNextAutoinc(Generador);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvMontajes', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvMontajes_Invoker.Invoke_PuedoEliminarMontaje(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarMontaje(const Codigo: Integer): Boolean; }
+var
+ Codigo: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvMontajes).PuedoEliminarMontaje(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvMontajes', 'PuedoEliminarMontajeResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvMontajes_Invoker.Invoke_GenerateReportFicha(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReportFicha(const Codigo: Integer): Binary; }
+var
+ Codigo: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvMontajes).GenerateReportFicha(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvMontajes', 'GenerateReportFichaResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvMontajes_Invoker.Invoke_GenerateReportEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas: Integer): Binary; }
+var
+ Codigo: Integer;
+ NumEtiquetas: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+ __Message.Read('NumEtiquetas', TypeInfo(Integer), NumEtiquetas, []);
+
+ lResult := (__Instance as IsrvMontajes).GenerateReportEtiquetas(Codigo, NumEtiquetas);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvMontajes', 'GenerateReportEtiquetasResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvMontajes_Invoker.Invoke_DarNuevaReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function DarNuevaReferencia(const TipoMontaje: String): String; }
+var
+ TipoMontaje: String;
+ lResult: String;
+begin
+ try
+ __Message.Read('TipoMontaje', TypeInfo(String), TipoMontaje, []);
+
+ lResult := (__Instance as IsrvMontajes).DarNuevaReferencia(TipoMontaje);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvMontajes', 'DarNuevaReferenciaResponse');
+ __Message.Write('Result', TypeInfo(String), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvFacturasProveedor_Invoker }
+
+procedure TsrvFacturasProveedor_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvFacturasProveedor).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasProveedor', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvFacturasProveedor_Invoker.Invoke_PuedoEliminarFactura(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarFactura(const CodigoFactura: Integer): Boolean; }
+var
+ CodigoFactura: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoFactura', TypeInfo(Integer), CodigoFactura, []);
+
+ lResult := (__Instance as IsrvFacturasProveedor).PuedoEliminarFactura(CodigoFactura);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvFacturasProveedor', 'PuedoEliminarFacturaResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvPagos_Invoker }
+
+procedure TsrvPagos_Invoker.Invoke_GetNextAutoinc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetNextAutoinc: Integer; }
+var
+ lResult: Integer;
+begin
+ try
+ lResult := (__Instance as IsrvPagos).GetNextAutoinc;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPagos', 'GetNextAutoincResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvPagos_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport(const Codigo: Integer): Binary; }
+var
+ Codigo: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvPagos).GenerateReport(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvPagos', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TsrvCuentas_Invoker }
+
+procedure TsrvCuentas_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GenerateReport: Binary; }
+var
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ lResult := (__Instance as IsrvCuentas).GenerateReport;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvCuentas', 'GenerateReportResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TsrvCuentas_Invoker.Invoke_PuedoEliminarCuenta(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function PuedoEliminarCuenta(const Codigo: Integer): Boolean; }
+var
+ Codigo: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('Codigo', TypeInfo(Integer), Codigo, []);
+
+ lResult := (__Instance as IsrvCuentas).PuedoEliminarCuenta(Codigo);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvCuentas', 'PuedoEliminarCuentaResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvComisiones_Invoker }
+
+procedure TsrvComisiones_Invoker.Invoke_GetComision(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetComision(const CodigoContacto: Integer): Double; }
+var
+ CodigoContacto: Integer;
+ lResult: Double;
+begin
+ try
+ __Message.Read('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+
+ lResult := (__Instance as IsrvComisiones).GetComision(CodigoContacto);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvComisiones', 'GetComisionResponse');
+ __Message.Write('Result', TypeInfo(Double), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvComisiones_Invoker.Invoke_SetComision(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ procedure SetComision(const CodigoContacto: Integer; const Value: Double); }
+var
+ CodigoContacto: Integer;
+ Value: Double;
+begin
+ try
+ __Message.Read('CodigoContacto', TypeInfo(Integer), CodigoContacto, []);
+ __Message.Read('Value', TypeInfo(Double), Value, []);
+
+ (__Instance as IsrvComisiones).SetComision(CodigoContacto, Value);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvComisiones', 'SetComisionResponse');
+ __Message.Finalize;
+
+ __oResponseOptions := [roNoResponse];
+
+ finally
+ end;
+end;
+
+{ TsrvAsientos_Invoker }
+
+procedure TsrvAsientos_Invoker.Invoke_AsignarPunteo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function AsignarPunteo(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime; const ValorPunteado: Integer): Boolean; }
+var
+ CodigoCuenta: Integer;
+ FechaIni: DateTime;
+ FechaFin: DateTime;
+ ValorPunteado: Integer;
+ lResult: Boolean;
+begin
+ try
+ __Message.Read('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+ __Message.Read('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Read('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+ __Message.Read('ValorPunteado', TypeInfo(Integer), ValorPunteado, []);
+
+ lResult := (__Instance as IsrvAsientos).AsignarPunteo(CodigoCuenta, FechaIni, FechaFin, ValorPunteado);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAsientos', 'AsignarPunteoResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAsientos_Invoker.Invoke_darPenultimoCierre(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function darPenultimoCierre(const CodigoCuenta: Integer): DateTime; }
+var
+ CodigoCuenta: Integer;
+ lResult: DateTime;
+begin
+ try
+ __Message.Read('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+
+ lResult := (__Instance as IsrvAsientos).darPenultimoCierre(CodigoCuenta);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAsientos', 'darPenultimoCierreResponse');
+ __Message.Write('Result', TypeInfo(DateTime), lResult, [paIsDateTime]);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+procedure TsrvAsientos_Invoker.Invoke_darSumaAcumulada(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function darSumaAcumulada(const CodigoCuenta: Integer; const FechaIni: DateTime; const FechaFin: DateTime): Currency; }
+var
+ CodigoCuenta: Integer;
+ FechaIni: DateTime;
+ FechaFin: DateTime;
+ lResult: Currency;
+begin
+ try
+ __Message.Read('CodigoCuenta', TypeInfo(Integer), CodigoCuenta, []);
+ __Message.Read('FechaIni', TypeInfo(DateTime), FechaIni, [paIsDateTime]);
+ __Message.Read('FechaFin', TypeInfo(DateTime), FechaFin, [paIsDateTime]);
+
+ lResult := (__Instance as IsrvAsientos).darSumaAcumulada(CodigoCuenta, FechaIni, FechaFin);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvAsientos', 'darSumaAcumuladaResponse');
+ __Message.Write('Result', TypeInfo(Currency), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvConfiguracion_Invoker }
+
+procedure TsrvConfiguracion_Invoker.Invoke_darRutaDocumentos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function darRutaDocumentos: String; }
+var
+ lResult: String;
+begin
+ try
+ lResult := (__Instance as IsrvConfiguracion).darRutaDocumentos;
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvConfiguracion', 'darRutaDocumentosResponse');
+ __Message.Write('Result', TypeInfo(String), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+{ TsrvCitas_Invoker }
+
+procedure TsrvCitas_Invoker.Invoke_getCodigo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function getCodigo(const Generador: String): Integer; }
+var
+ Generador: String;
+ lResult: Integer;
+begin
+ try
+ __Message.Read('Generador', TypeInfo(String), Generador, []);
+
+ lResult := (__Instance as IsrvCitas).getCodigo(Generador);
+
+ __Message.Initialize(__Transport, 'FactuGES', 'srvCitas', 'getCodigoResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+
+ finally
+ end;
+end;
+
+end.
diff --git a/Servidor/FactuGES_Server.bdsproj b/Servidor/FactuGES_Server.bdsproj
new file mode 100644
index 0000000..87a4f90
--- /dev/null
+++ b/Servidor/FactuGES_Server.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ FactuGES_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
+ 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\Servidor
+
+
+
+ ..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+ 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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+ C:\Archivos de programa\Borland\Delphi7\Bin\
+
+
+ True
+ False
+ 1
+ 2
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+ Rodax Software S.L.
+
+ 1.2.0.0
+
+
+
+
+ FactuGES Server
+ 1.0.0.0
+
+
+
+
+
diff --git a/Servidor/FactuGES_Server.cfg b/Servidor/FactuGES_Server.cfg
new file mode 100644
index 0000000..82ab66f
--- /dev/null
+++ b/Servidor/FactuGES_Server.cfg
@@ -0,0 +1,44 @@
+-$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"
+-LE"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-LN"c:\archivos de programa\borland\delphi7\Projects\Bpl"
+-U"..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas"
+-O"..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas"
+-I"..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas"
+-R"..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Servidor/FactuGES_Server.dof b/Servidor/FactuGES_Server.dof
new file mode 100644
index 0000000..847bbc3
--- /dev/null
+++ b/Servidor/FactuGES_Server.dof
@@ -0,0 +1,522 @@
+[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=
+PackageDCPOutputDir=
+SearchPath=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+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;CEToolsPkgd7;FR7;FRIBX7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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=4
+Release=0
+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.4.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=FactuGES Server
+ProductVersion=1.0.0.0
+Comments=
+[Excluded Packages]
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerD7.bpl=Database Comparer VCL
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerBdeD7.bpl=Database Comparer VCL BDE
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerDBXD7.bpl=Database Comparer VCL DBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerIbxD7.bpl=Database Comparer VCL IBX
+C:\Archivos de programa\Clever Components\Database Comparer\Delphi 7\Lib\ComparerAdoD7.bpl=Database Comparer VCL ADO
+C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
+C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item4=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
+[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/Servidor/FactuGES_Server.dpr b/Servidor/FactuGES_Server.dpr
new file mode 100644
index 0000000..6bd0057
--- /dev/null
+++ b/Servidor/FactuGES_Server.dpr
@@ -0,0 +1,71 @@
+program FactuGES_Server;
+
+{#ROGEN:FactuGES.rodl} // RemObjects: Careful, do not remove!
+
+uses
+ uROComInit,
+ Forms,
+ fServerForm in 'fServerForm.pas' {ServerForm},
+ FactuGES_Intf in 'FactuGES_Intf.pas',
+ FactuGES_Invk in 'FactuGES_Invk.pas',
+ uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule},
+ srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService},
+ srvLogin_Impl in 'srvLogin_Impl.pas' {srvLogin: TDALoginService},
+ srvPresupuestos_Impl in '..\Modulos\Presupuestos\Servidor\srvPresupuestos_Impl.pas' {srvPresupuestos: TDARemoteService},
+ schPresupuestosServer_Intf in '..\Modulos\Presupuestos\Reglas\schPresupuestosServer_Intf.pas',
+ schPresupuestosClient_Intf in '..\Modulos\Presupuestos\Reglas\schPresupuestosClient_Intf.pas',
+ schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Reglas\schPedidosProveedorClient_Intf.pas',
+ schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Reglas\schPedidosProveedorServer_Intf.pas',
+ uConfiguracion in 'uConfiguracion.pas' {fConfiguracion},
+ uConexionBD in 'uConexionBD.pas' {frConexionBD: TFrame},
+ srvAlbaranesCliente_Impl in '..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas' {srvAlbaranesCliente: TDARemoteService},
+ schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Reglas\schAlbaranesClienteClient_Intf.pas',
+ schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Reglas\schAlbaranesClienteServer_Intf.pas',
+ schContactosClient_Intf in '..\Modulos\Contactos\Reglas\schContactosClient_Intf.pas',
+ schContactosServer_Intf in '..\Modulos\Contactos\Reglas\schContactosServer_Intf.pas',
+ uFrameConfiguracion in 'uFrameConfiguracion.pas' {FrameConfiguracion: TFrame},
+ uConfGeneral in 'uConfGeneral.pas' {frConfGeneral: TFrame},
+ srvFacturasCliente_Impl in '..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas' {srvFacturasCliente: TDARemoteService},
+ schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Reglas\schFacturasClienteClient_Intf.pas',
+ schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Reglas\schFacturasClienteServer_Intf.pas',
+ srvAlmacenes_Impl in '..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas' {srvAlmacenes: TDARemoteService},
+ schAlmacenesClient_Intf in '..\Modulos\Almacenes\Reglas\schAlmacenesClient_Intf.pas',
+ schAlmacenesServer_Intf in '..\Modulos\Almacenes\Reglas\schAlmacenesServer_Intf.pas',
+ schArticulosClient_Intf in '..\Modulos\Articulos\Reglas\schArticulosClient_Intf.pas',
+ schArticulosServer_Intf in '..\Modulos\Articulos\Reglas\schArticulosServer_Intf.pas',
+ srvArticulos_Impl in '..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas' {srvArticulos: TDARemoteService},
+ srvPedidosProveedor_Impl in '..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas' {srvPedidosProveedor: TDARemoteService},
+ srvMontajes_Impl in '..\Modulos\Montajes\Servidor\srvMontajes_Impl.pas' {srvMontajes: TDARemoteService},
+ schMontajesClient_Intf in '..\Modulos\Montajes\Reglas\schMontajesClient_Intf.pas',
+ schMontajesServer_Intf in '..\Modulos\Montajes\Reglas\schMontajesServer_Intf.pas',
+ srvFacturasProveedor_Impl in '..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas' {srvFacturasProveedor: TDARemoteService},
+ schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Reglas\schFacturasProveedorClient_Intf.pas',
+ schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Reglas\schFacturasProveedorServer_Intf.pas',
+ schPagosServer_Intf in '..\Modulos\Pagos\Reglas\schPagosServer_Intf.pas',
+ schPagosClient_Intf in '..\Modulos\Pagos\Reglas\schPagosClient_Intf.pas',
+ srvPagos_Impl in '..\Modulos\Pagos\Servidor\srvPagos_Impl.pas' {srvPagos: TDARemoteService},
+ srvCuentas_Impl in '..\Modulos\Cuentas\Servidor\srvCuentas_Impl.pas' {srvCuentas: TDARemoteService},
+ schCuentasClient_Intf in '..\Modulos\Cuentas\Reglas\schCuentasClient_Intf.pas',
+ schCuentasServer_Intf in '..\Modulos\Cuentas\Reglas\schCuentasServer_Intf.pas',
+ srvComisiones_Impl in 'srvComisiones_Impl.pas' {srvComisiones: TRORemoteDataModule},
+ srvIntervalos_Impl in '..\Modulos\Intervalos\Servidor\srvIntervalos_Impl.pas' {srvIntervalos: TDARemoteService},
+ srvAsientos_Impl in '..\Modulos\Asientos\Servidor\srvAsientos_Impl.pas' {srvAsientos: TDARemoteService},
+ schAsientosClient_Intf in '..\Modulos\Asientos\Reglas\schAsientosClient_Intf.pas',
+ schAsientosServer_Intf in '..\Modulos\Asientos\Reglas\schAsientosServer_Intf.pas',
+ srvConfiguracion_Impl in 'srvConfiguracion_Impl.pas' {srvConfiguracion: TRORemoteDataModule},
+ srvCitas_Impl in '..\Modulos\Calendarios\Servidor\srvCitas_Impl.pas' {srvCitas: TDARemoteService},
+ schCitasClient_Intf in '..\Modulos\Calendarios\Reglas\schCitasClient_Intf.pas',
+ schCitasServer_Intf in '..\Modulos\Calendarios\Reglas\schCitasServer_Intf.pas',
+ schComisionesClient_Intf in '..\Modulos\Contactos\Reglas\schComisionesClient_Intf.pas',
+ schComisionesServer_Intf in '..\Modulos\Contactos\Reglas\schComisionesServer_Intf.pas';
+
+{$R *.res}
+{$R RODLFile.res}
+
+begin
+ Application.Initialize;
+ Application.CreateForm(TdmServer, dmServer);
+ Application.CreateForm(TServerForm, ServerForm);
+ Application.Run;
+ Application.Terminate;
+end.
diff --git a/Servidor/FactuGES_Server.drc b/Servidor/FactuGES_Server.drc
new file mode 100644
index 0000000..4c1ff2f
--- /dev/null
+++ b/Servidor/FactuGES_Server.drc
@@ -0,0 +1,2320 @@
+/* VER150
+ 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.
+*/
+
+#define TeeConst_TeeMsg_ValuesArrowEndY 64368
+#define TeeConst_TeeMsg_DefaultFontName 64384
+#define TeeConst_TeeMsg_CheckPointerSize 64385
+#define TeeConst_TeeMsg_FunctionPeriod 64386
+#define TeeConst_TeeMsg_PieOther 64387
+#define TeeConst_TeeMsg_ShapeGallery1 64388
+#define TeeConst_TeeMsg_ShapeGallery2 64389
+#define TeeConst_TeeMsg_ValuesX 64390
+#define TeeConst_TeeMsg_ValuesY 64391
+#define TeeConst_TeeMsg_ValuesPie 64392
+#define TeeConst_TeeMsg_ValuesBar 64393
+#define TeeConst_TeeMsg_ValuesAngle 64394
+#define TeeConst_TeeMsg_ValuesGanttStart 64395
+#define TeeConst_TeeMsg_ValuesGanttEnd 64396
+#define TeeConst_TeeMsg_ValuesGanttNextTask 64397
+#define TeeConst_TeeMsg_ValuesBubbleRadius 64398
+#define TeeConst_TeeMsg_ValuesArrowEndX 64399
+#define TeeConst_TeeMsg_GanttSample6 64400
+#define TeeConst_TeeMsg_GanttSample7 64401
+#define TeeConst_TeeMsg_GanttSample8 64402
+#define TeeConst_TeeMsg_GanttSample9 64403
+#define TeeConst_TeeMsg_GanttSample10 64404
+#define TeeConst_TeeMsg_DefaultFontSize 64405
+#define TeeConst_TeeMsg_DefaultGalleryFontSize 64406
+#define TeeConst_TeeMsg_FunctionAdd 64407
+#define TeeConst_TeeMsg_FunctionSubtract 64408
+#define TeeConst_TeeMsg_FunctionMultiply 64409
+#define TeeConst_TeeMsg_FunctionDivide 64410
+#define TeeConst_TeeMsg_FunctionHigh 64411
+#define TeeConst_TeeMsg_FunctionLow 64412
+#define TeeConst_TeeMsg_FunctionAverage 64413
+#define TeeConst_TeeMsg_GalleryShape 64414
+#define TeeConst_TeeMsg_GalleryBubble 64415
+#define TeeConst_TeeMsg_PieSample3 64416
+#define TeeConst_TeeMsg_PieSample4 64417
+#define TeeConst_TeeMsg_PieSample5 64418
+#define TeeConst_TeeMsg_PieSample6 64419
+#define TeeConst_TeeMsg_PieSample7 64420
+#define TeeConst_TeeMsg_PieSample8 64421
+#define TeeConst_TeeMsg_GalleryChartName 64422
+#define TeeConst_TeeMsg_GalleryStandard 64423
+#define TeeConst_TeeMsg_GalleryFunctions 64424
+#define TeeConst_TeeMsg_GalleryArrow 64425
+#define TeeConst_TeeMsg_GalleryGantt 64426
+#define TeeConst_TeeMsg_GanttSample1 64427
+#define TeeConst_TeeMsg_GanttSample2 64428
+#define TeeConst_TeeMsg_GanttSample3 64429
+#define TeeConst_TeeMsg_GanttSample4 64430
+#define TeeConst_TeeMsg_GanttSample5 64431
+#define TeeConst_TeeMsg_BarOffsetPercent 64432
+#define TeeConst_TeeMsg_DefaultPercentOf 64433
+#define TeeConst_TeeMsg_DefPercentFormat 64434
+#define TeeConst_TeeMsg_DefValueFormat 64435
+#define TeeConst_TeeMsg_AxisTitle 64436
+#define TeeConst_TeeMsg_AxisLabels 64437
+#define TeeConst_TeeMsg_GalleryLine 64438
+#define TeeConst_TeeMsg_GalleryPoint 64439
+#define TeeConst_TeeMsg_GalleryArea 64440
+#define TeeConst_TeeMsg_GalleryBar 64441
+#define TeeConst_TeeMsg_GalleryHorizBar 64442
+#define TeeConst_TeeMsg_GalleryPie 64443
+#define TeeConst_TeeMsg_GalleryFastLine 64444
+#define TeeConst_TeeMsg_Rotation 64445
+#define TeeConst_TeeMsg_PieSample1 64446
+#define TeeConst_TeeMsg_PieSample2 64447
+#define TeeConst_TeeMsg_LegendColorWidth 64448
+#define TeeConst_TeeMsg_SeriesSetDataSource 64449
+#define TeeConst_TeeMsg_SeriesInvDataSource 64450
+#define TeeConst_TeeMsg_FillSample 64451
+#define TeeConst_TeeMsg_Angle 64452
+#define TeeConst_TeeMsg_AxisLogDateTime 64453
+#define TeeConst_TeeMsg_AxisLogNotPositive 64454
+#define TeeConst_TeeMsg_AxisLabelSep 64455
+#define TeeConst_TeeMsg_AxisIncrementNeg 64456
+#define TeeConst_TeeMsg_AxisMinMax 64457
+#define TeeConst_TeeMsg_AxisMaxMin 64458
+#define TeeConst_TeeMsg_AxisLogBase 64459
+#define TeeConst_TeeMsg_MaxPointsPerPage 64460
+#define TeeConst_TeeMsg_3dPercent 64461
+#define TeeConst_TeeMsg_CircularSeries 64462
+#define TeeConst_TeeMsg_BarWidthPercent 64463
+#define MidConst_SFieldConstFail 64464
+#define MidConst_SDefExprFail 64465
+#define MidConst_SNoEditsAllowed 64466
+#define MidConst_SNoDeletesAllowed 64467
+#define MidConst_SNoInsertsAllowed 64468
+#define MidConst_SConnectionMissing 64469
+#define MidConst_SNoCircularConnection 64470
+#define OleConst_SLinkProperties 64471
+#define OleConst_SInvalidLinkSource 64472
+#define OleConst_SCannotBreakLink 64473
+#define OleConst_SEmptyContainer 64474
+#define OleConst_SInvalidVerb 64475
+#define OleConst_SPropDlgCaption 64476
+#define OleConst_SInvalidStreamFormat 64477
+#define TeeConst_TeeMsg_LegendTopPos 64478
+#define TeeConst_TeeMsg_LegendFirstValue 64479
+#define VDBConsts_SCancelEdit 64480
+#define VDBConsts_SRefreshRecord 64481
+#define VDBConsts_SDataSourceFixed 64482
+#define VDBConsts_SPropDefByLookup 64483
+#define VDBConsts_SRemoteLogin 64484
+#define MidConst_SNoDataProvider 64485
+#define MidConst_SInvalidDataPacket 64486
+#define MidConst_SRefreshError 64487
+#define MidConst_SNoCircularReference 64488
+#define MidConst_SErrorLoadingMidas 64489
+#define MidConst_SCannotCreateDataSet 64490
+#define MidConst_SNoConnectToBroker 64491
+#define MidConst_SNoParentConnection 64492
+#define MidConst_SConstraintFailed 64493
+#define MidConst_SField 64494
+#define MidConst_SRecConstFail 64495
+#define cxEditConsts_scxRegExprMissing 64496
+#define cxEditConsts_scxRegExprUnnecessary 64497
+#define cxEditConsts_scxRegExprIncorrectSpace 64498
+#define cxEditConsts_scxRegExprNotCompiled 64499
+#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64500
+#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64501
+#define cxEditConsts_scxMaskEditRegExprError 64502
+#define cxEditConsts_scxMaskEditInvalidEditValue 64503
+#define VDBConsts_SFirstRecord 64504
+#define VDBConsts_SPriorRecord 64505
+#define VDBConsts_SNextRecord 64506
+#define VDBConsts_SLastRecord 64507
+#define VDBConsts_SInsertRecord 64508
+#define VDBConsts_SDeleteRecord 64509
+#define VDBConsts_SEditRecord 64510
+#define VDBConsts_SPostEdit 64511
+#define cxEditConsts_scxRegExprLine 64512
+#define cxEditConsts_scxRegExprChar 64513
+#define cxEditConsts_scxRegExprNotAssignedSourceStream 64514
+#define cxEditConsts_scxRegExprEmptySourceStream 64515
+#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64516
+#define cxEditConsts_scxRegExprCantUseStarQuantifier 64517
+#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64518
+#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64519
+#define cxEditConsts_scxRegExprIllegalSymbol 64520
+#define cxEditConsts_scxRegExprIllegalQuantifier 64521
+#define cxEditConsts_scxRegExprIllegalIntegerValue 64522
+#define cxEditConsts_scxRegExprTooBigReferenceNumber 64523
+#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64524
+#define cxEditConsts_scxRegExprSubrangeOrder 64525
+#define cxEditConsts_scxRegExprHexNumberExpected0 64526
+#define cxEditConsts_scxRegExprHexNumberExpected 64527
+#define cxEditConsts_cxSDateThursday 64528
+#define cxEditConsts_cxSDateFriday 64529
+#define cxEditConsts_cxSDateSaturday 64530
+#define cxEditConsts_cxSDateFirst 64531
+#define cxEditConsts_cxSDateSecond 64532
+#define cxEditConsts_cxSDateThird 64533
+#define cxEditConsts_cxSDateFourth 64534
+#define cxEditConsts_cxSDateFifth 64535
+#define cxEditConsts_cxSDateSixth 64536
+#define cxEditConsts_cxSDateSeventh 64537
+#define cxEditConsts_cxSDateBOM 64538
+#define cxEditConsts_cxSDateEOM 64539
+#define cxEditConsts_cxSDateNow 64540
+#define cxEditConsts_scxSEditRepositoryButtonItem 64541
+#define cxEditConsts_scxSEditRepositoryMaskItem 64542
+#define cxEditConsts_scxSEditRepositoryTextItem 64543
+#define pnglang_EPNGCannotAddInvalidImageText 64544
+#define pnglang_EPNGOutMemoryText 64545
+#define pnglang_EPNGHeaderNotPresentText 64546
+#define cxDataConsts_cxSDataReadError 64547
+#define cxDataConsts_cxSDataWriteError 64548
+#define cxEditConsts_cxSEditInvalidRepositoryItem 64549
+#define cxEditConsts_cxSEditNumericValueConvertError 64550
+#define cxEditConsts_cxSEditValidateErrorText 64551
+#define cxEditConsts_cxSEditValueOutOfBounds 64552
+#define cxEditConsts_cxSDateToday 64553
+#define cxEditConsts_cxSDateYesterday 64554
+#define cxEditConsts_cxSDateTomorrow 64555
+#define cxEditConsts_cxSDateSunday 64556
+#define cxEditConsts_cxSDateMonday 64557
+#define cxEditConsts_cxSDateTuesday 64558
+#define cxEditConsts_cxSDateWednesday 64559
+#define pnglang_EPNGInvalidIHDRText 64560
+#define pnglang_EPNGMissingMultipleIDATText 64561
+#define pnglang_EPNGZLIBErrorText 64562
+#define pnglang_EPNGInvalidPaletteText 64563
+#define pnglang_EPNGInvalidFileHeaderText 64564
+#define pnglang_EPNGIHDRNotFirstText 64565
+#define pnglang_EPNGSizeExceedsText 64566
+#define pnglang_EPNGUnknownPalEntryText 64567
+#define pnglang_EPNGUnknownCriticalChunkText 64568
+#define pnglang_EPNGUnknownCompressionText 64569
+#define pnglang_EPNGUnknownInterlaceText 64570
+#define pnglang_EPNGCannotAssignChunkText 64571
+#define pnglang_EPNGUnexpectedEndText 64572
+#define pnglang_EPNGNoImageDataText 64573
+#define pnglang_EPNGCannotChangeSizeText 64574
+#define pnglang_EPNGCannotAddChunkText 64575
+#define IBXConst_SNoDestinationDirectory 64576
+#define IBXConst_SNosourceDirectory 64577
+#define IBXConst_SNoUninstallFile 64578
+#define IBXConst_SOptionNeedsClient 64579
+#define IBXConst_SOptionNeedsServer 64580
+#define IBXConst_SInvalidOption 64581
+#define IBXConst_SInvalidOnErrorResult 64582
+#define IBXConst_SInvalidOnStatusResult 64583
+#define IBXConst_SDPBConstantUnknownEx 64584
+#define IBXConst_STPBConstantUnknownEx 64585
+#define IBXConst_SUnknownPlan 64586
+#define IBXConst_SFieldSizeMismatch 64587
+#define IBXConst_SEventAlreadyRegistered 64588
+#define IBXConst_SStringTooLarge 64589
+#define IBXConst_SNoTimers 64590
+#define pnglang_EPngInvalidCRCText 64591
+#define IBXConst_SServiceActive 64592
+#define IBXConst_SServiceInActive 64593
+#define IBXConst_SServerNameMissing 64594
+#define IBXConst_SQueryParamsError 64595
+#define IBXConst_SStartParamsError 64596
+#define IBXConst_SOutputParsingError 64597
+#define IBXConst_SUseSpecificProcedures 64598
+#define IBXConst_SSQLMonitorAlreadyPresent 64599
+#define IBXConst_SCantPrintValue 64600
+#define IBXConst_SEOFReached 64601
+#define IBXConst_SEOFInComment 64602
+#define IBXConst_SEOFInString 64603
+#define IBXConst_SParamNameExpected 64604
+#define IBXConst_SSuccess 64605
+#define IBXConst_SDelphiException 64606
+#define IBXConst_SNoOptionsSet 64607
+#define IBXConst_SNoRecordsAffected 64608
+#define IBXConst_SNoTableName 64609
+#define IBXConst_SCannotCreatePrimaryIndex 64610
+#define IBXConst_SCannotDropSystemIndex 64611
+#define IBXConst_STableNameMismatch 64612
+#define IBXConst_SIndexFieldMissing 64613
+#define IBXConst_SInvalidCancellation 64614
+#define IBXConst_SInvalidEvent 64615
+#define IBXConst_SMaximumEvents 64616
+#define IBXConst_SNoEventsRegistered 64617
+#define IBXConst_SInvalidQueueing 64618
+#define IBXConst_SInvalidRegistration 64619
+#define IBXConst_SInvalidBatchMove 64620
+#define IBXConst_SSQLDialectInvalid 64621
+#define IBXConst_SSPBConstantNotSupported 64622
+#define IBXConst_SSPBConstantUnknown 64623
+#define IBXConst_SCannotCreateSharedResource 64624
+#define IBXConst_SWindowsAPIError 64625
+#define IBXConst_SColumnListsDontMatch 64626
+#define IBXConst_SColumnTypesDontMatch 64627
+#define IBXConst_SCantEndSharedTransaction 64628
+#define IBXConst_SFieldUnsupportedType 64629
+#define IBXConst_SCircularDataLink 64630
+#define IBXConst_SEmptySQLStatement 64631
+#define IBXConst_SIsASelectStatement 64632
+#define IBXConst_SRequiredParamNotSet 64633
+#define IBXConst_SNoStoredProcName 64634
+#define IBXConst_SIsAExecuteProcedure 64635
+#define IBXConst_SUpdateFailed 64636
+#define IBXConst_SNotCachedUpdates 64637
+#define IBXConst_SNotLiveRequest 64638
+#define IBXConst_SNoProvider 64639
+#define IBXConst_SEmptyQuery 64640
+#define IBXConst_SCannotOpenNonSQLSelect 64641
+#define IBXConst_SNoFieldAccess 64642
+#define IBXConst_SFieldReadOnly 64643
+#define IBXConst_SFieldNotFound 64644
+#define IBXConst_SNotEditing 64645
+#define IBXConst_SCannotInsert 64646
+#define IBXConst_SCannotPost 64647
+#define IBXConst_SCannotUpdate 64648
+#define IBXConst_SCannotDelete 64649
+#define IBXConst_SCannotRefresh 64650
+#define IBXConst_SBufferNotSet 64651
+#define IBXConst_SCircularReference 64652
+#define IBXConst_SSQLParseError 64653
+#define IBXConst_SUserAbort 64654
+#define IBXConst_SDataSetUniDirectional 64655
+#define IBXConst_SXSQLDAIndexOutOfRange 64656
+#define IBXConst_SXSQLDANameDoesNotExist 64657
+#define IBXConst_SEOF 64658
+#define IBXConst_SBOF 64659
+#define IBXConst_SInvalidStatementHandle 64660
+#define IBXConst_SSQLOpen 64661
+#define IBXConst_SSQLClosed 64662
+#define IBXConst_SDatasetOpen 64663
+#define IBXConst_SDatasetClosed 64664
+#define IBXConst_SUnknownSQLDataType 64665
+#define IBXConst_SInvalidColumnIndex 64666
+#define IBXConst_SInvalidParamColumnIndex 64667
+#define IBXConst_SInvalidDataConversion 64668
+#define IBXConst_SColumnIsNotNullable 64669
+#define IBXConst_SBlobCannotBeRead 64670
+#define IBXConst_SBlobCannotBeWritten 64671
+#define IBXConst_SOperationCancelled 64672
+#define IBXConst_SDPBConstantNotSupported 64673
+#define IBXConst_SDPBConstantUnknown 64674
+#define IBXConst_STPBConstantNotSupported 64675
+#define IBXConst_STPBConstantUnknown 64676
+#define IBXConst_SDatabaseClosed 64677
+#define IBXConst_SDatabaseOpen 64678
+#define IBXConst_SDatabaseNameMissing 64679
+#define IBXConst_SNotInTransaction 64680
+#define IBXConst_SInTransaction 64681
+#define IBXConst_STimeoutNegative 64682
+#define IBXConst_SNoDatabasesInTransaction 64683
+#define IBXConst_SUpdateWrongDB 64684
+#define IBXConst_SUpdateWrongTR 64685
+#define IBXConst_SDatabaseNotAssigned 64686
+#define IBXConst_STransactionNotAssigned 64687
+#define uDARes_err_DARDMInvalidSchema 64688
+#define uDARes_err_DARDMUnassignedAdapter 64689
+#define uDARes_err_DARDMConnectionIsNotAssigned 64690
+#define uDARes_err_DARDMCannotFindProxessorForDelta 64691
+#define uDARes_err_NeedShareMem 64692
+#define uDARes_err_ExecuteSQLCommandNotAllowed 64693
+#define IBXConst_SUnknownError 64694
+#define IBXConst_SInterBaseMissing 64695
+#define IBXConst_SInterBaseInstallMissing 64696
+#define IBXConst_SIB60feature 64697
+#define IBXConst_SNotSupported 64698
+#define IBXConst_SNotPermitted 64699
+#define IBXConst_SFileAccessError 64700
+#define IBXConst_SConnectionTimeout 64701
+#define IBXConst_SCannotSetDatabase 64702
+#define IBXConst_SCannotSetTransaction 64703
+#define uDARes_err_FieldTypeNotSupported 64704
+#define uDARes_err_InvalidDataset 64705
+#define uDARes_err_CannotFindItem 64706
+#define uDARes_err_DriverAlreadyLoaded 64707
+#define uDARes_err_InvalidDLL 64708
+#define uDARes_err_UnknownDriver 64709
+#define uDARes_err_UnknownParameter 64710
+#define uDARes_err_FieldIsNotBound 64711
+#define uDARes_err_CannotFindField 64712
+#define uDARes_err_LoadPackageFailed 64713
+#define uDARes_err_InvalidDriverReference 64714
+#define uDARes_err_CannotFindStatement 64715
+#define uDARes_err_CannotFindDefaultItem 64716
+#define uDARes_err_PoolIsNotEmpty 64717
+#define uDARes_err_MaxPoolSizeReached 64718
+#define uDARes_err_LAMEDataset 64719
+#define DBConsts_SProviderExecuteNotSupported 64720
+#define DBConsts_SExprNoAggOnCalcs 64721
+#define DBConsts_SDataSetUnidirectional 64722
+#define DBConsts_SUnassignedVar 64723
+#define DBConsts_SRecordNotFound 64724
+#define DBConsts_SFieldNameTooLarge 64725
+#define DBConsts_SBcdOverflow 64726
+#define DBConsts_SInvalidBcdValue 64727
+#define DBConsts_SInvalidFormatType 64728
+#define DBConsts_SCouldNotParseTimeStamp 64729
+#define DBConsts_SInvalidSqlTimeStamp 64730
+#define uDARes_err_ChangeLogAlreadyStarted 64731
+#define uDARes_err_NotAttachedToDataTable 64732
+#define uDARes_err_DriverProcAlreadyRegistered 64733
+#define uDARes_err_DriverManagerAlreadyCreated 64734
+#define uDARes_err_DriverManagerNotAssigned 64735
+#define DBConsts_SExprNothing 64736
+#define DBConsts_SExprTypeMis 64737
+#define DBConsts_SExprBadScope 64738
+#define DBConsts_SExprNoArith 64739
+#define DBConsts_SExprNotAgg 64740
+#define DBConsts_SExprBadConst 64741
+#define DBConsts_SExprNoAggFilter 64742
+#define DBConsts_SExprEmptyInList 64743
+#define DBConsts_SInvalidKeywordUse 64744
+#define DBConsts_STextFalse 64745
+#define DBConsts_STextTrue 64746
+#define DBConsts_SParameterNotFound 64747
+#define DBConsts_SInvalidVersion 64748
+#define DBConsts_SBadFieldType 64749
+#define DBConsts_SAggActive 64750
+#define DBConsts_SProviderSQLNotSupported 64751
+#define DBConsts_SDataSetClosed 64752
+#define DBConsts_SDataSetEmpty 64753
+#define DBConsts_SDataSetReadOnly 64754
+#define DBConsts_SNestedDataSetClass 64755
+#define DBConsts_SExprTermination 64756
+#define DBConsts_SExprNameError 64757
+#define DBConsts_SExprStringError 64758
+#define DBConsts_SExprInvalidChar 64759
+#define DBConsts_SExprNoLParen 64760
+#define DBConsts_SExprNoRParen 64761
+#define DBConsts_SExprNoRParenOrComma 64762
+#define DBConsts_SExprExpected 64763
+#define DBConsts_SExprBadField 64764
+#define DBConsts_SExprBadNullTest 64765
+#define DBConsts_SExprRangeError 64766
+#define DBConsts_SExprIncorrect 64767
+#define DBConsts_SFieldRequired 64768
+#define DBConsts_SDataSetMissing 64769
+#define DBConsts_SInvalidCalcType 64770
+#define DBConsts_SFieldReadOnly 64771
+#define DBConsts_SFieldIndexError 64772
+#define DBConsts_SNoFieldIndexes 64773
+#define DBConsts_SNotIndexField 64774
+#define DBConsts_SIndexFieldMissing 64775
+#define DBConsts_SNoIndexForFields 64776
+#define DBConsts_SIndexNotFound 64777
+#define DBConsts_SCircularDataLink 64778
+#define DBConsts_SLookupInfoError 64779
+#define DBConsts_SDataSourceChange 64780
+#define DBConsts_SNoNestedMasterSource 64781
+#define DBConsts_SDataSetOpen 64782
+#define DBConsts_SNotEditing 64783
+#define DBConsts_SInvalidFieldKind 64784
+#define DBConsts_SUnknownFieldType 64785
+#define DBConsts_SFieldNameMissing 64786
+#define DBConsts_SDuplicateFieldName 64787
+#define DBConsts_SFieldNotFound 64788
+#define DBConsts_SFieldAccessError 64789
+#define DBConsts_SFieldValueError 64790
+#define DBConsts_SFieldRangeError 64791
+#define DBConsts_SBcdFieldRangeError 64792
+#define DBConsts_SInvalidIntegerValue 64793
+#define DBConsts_SInvalidBoolValue 64794
+#define DBConsts_SInvalidFloatValue 64795
+#define DBConsts_SFieldTypeMismatch 64796
+#define DBConsts_SFieldSizeMismatch 64797
+#define DBConsts_SInvalidVarByteArray 64798
+#define DBConsts_SFieldOutOfRange 64799
+#define JclResources_RsIntelCacheDescr7A 64800
+#define JclResources_RsIntelCacheDescr7B 64801
+#define JclResources_RsIntelCacheDescr7C 64802
+#define JclResources_RsIntelCacheDescr7D 64803
+#define JclResources_RsIntelCacheDescr7F 64804
+#define JclResources_RsIntelCacheDescr82 64805
+#define JclResources_RsIntelCacheDescr83 64806
+#define JclResources_RsIntelCacheDescr84 64807
+#define JclResources_RsIntelCacheDescr85 64808
+#define JclResources_RsIntelCacheDescr86 64809
+#define JclResources_RsIntelCacheDescr87 64810
+#define JclResources_RsIntelCacheDescrB0 64811
+#define JclResources_RsIntelCacheDescrB3 64812
+#define JclResources_RsIntelCacheDescrF0 64813
+#define JclResources_RsIntelCacheDescrF1 64814
+#define DBConsts_SInvalidFieldSize 64815
+#define JclResources_RsIntelCacheDescr45 64816
+#define JclResources_RsIntelCacheDescr50 64817
+#define JclResources_RsIntelCacheDescr51 64818
+#define JclResources_RsIntelCacheDescr52 64819
+#define JclResources_RsIntelCacheDescr5B 64820
+#define JclResources_RsIntelCacheDescr5C 64821
+#define JclResources_RsIntelCacheDescr5D 64822
+#define JclResources_RsIntelCacheDescr60 64823
+#define JclResources_RsIntelCacheDescr66 64824
+#define JclResources_RsIntelCacheDescr67 64825
+#define JclResources_RsIntelCacheDescr68 64826
+#define JclResources_RsIntelCacheDescr70 64827
+#define JclResources_RsIntelCacheDescr71 64828
+#define JclResources_RsIntelCacheDescr72 64829
+#define JclResources_RsIntelCacheDescr78 64830
+#define JclResources_RsIntelCacheDescr79 64831
+#define JclResources_RsIntelCacheDescr04 64832
+#define JclResources_RsIntelCacheDescr06 64833
+#define JclResources_RsIntelCacheDescr08 64834
+#define JclResources_RsIntelCacheDescr0A 64835
+#define JclResources_RsIntelCacheDescr0C 64836
+#define JclResources_RsIntelCacheDescr22 64837
+#define JclResources_RsIntelCacheDescr23 64838
+#define JclResources_RsIntelCacheDescr25 64839
+#define JclResources_RsIntelCacheDescr29 64840
+#define JclResources_RsIntelCacheDescr2C 64841
+#define JclResources_RsIntelCacheDescr30 64842
+#define JclResources_RsIntelCacheDescr40 64843
+#define JclResources_RsIntelCacheDescr41 64844
+#define JclResources_RsIntelCacheDescr42 64845
+#define JclResources_RsIntelCacheDescr43 64846
+#define JclResources_RsIntelCacheDescr44 64847
+#define JclResources_RsRTTIBasedOn 64848
+#define JclResources_RsRTTIFloatType 64849
+#define JclResources_RsRTTIMethodKind 64850
+#define JclResources_RsRTTIParamCount 64851
+#define JclResources_RsRTTIReturnType 64852
+#define JclResources_RsRTTIMaxLen 64853
+#define JclResources_RsRTTIElSize 64854
+#define JclResources_RsRTTIElType 64855
+#define JclResources_RsRTTIElNeedCleanup 64856
+#define JclResources_RsRTTIVarType 64857
+#define JclResources_RsDeclarationFormat 64858
+#define JclResources_RsBlankSearchString 64859
+#define JclResources_RsIntelCacheDescr00 64860
+#define JclResources_RsIntelCacheDescr01 64861
+#define JclResources_RsIntelCacheDescr02 64862
+#define JclResources_RsIntelCacheDescr03 64863
+#define JclResources_RsRTTIVirtualMethod 64864
+#define JclResources_RsRTTIIndex 64865
+#define JclResources_RsRTTIDefault 64866
+#define JclResources_RsRTTIName 64867
+#define JclResources_RsRTTIType 64868
+#define JclResources_RsRTTIFlags 64869
+#define JclResources_RsRTTIGUID 64870
+#define JclResources_RsRTTITypeKind 64871
+#define JclResources_RsRTTIOrdinalType 64872
+#define JclResources_RsRTTIMinValue 64873
+#define JclResources_RsRTTIMaxValue 64874
+#define JclResources_RsRTTINameList 64875
+#define JclResources_RsRTTIClassName 64876
+#define JclResources_RsRTTIParent 64877
+#define JclResources_RsRTTIPropCount 64878
+#define JclResources_RsRTTIUnitName 64879
+#define JclResources_RsRTTIValueOutOfRange 64880
+#define JclResources_RsRTTIUnknownIdentifier 64881
+#define JclResources_RsRTTIVar 64882
+#define JclResources_RsRTTIConst 64883
+#define JclResources_RsRTTIArrayOf 64884
+#define JclResources_RsRTTIOut 64885
+#define JclResources_RsRTTIOrdinal 64886
+#define JclResources_RsRTTITrue 64887
+#define JclResources_RsRTTIFalse 64888
+#define JclResources_RsRTTITypeError 64889
+#define JclResources_RsRTTITypeInfoAt 64890
+#define JclResources_RsRTTIPropRead 64891
+#define JclResources_RsRTTIPropWrite 64892
+#define JclResources_RsRTTIPropStored 64893
+#define JclResources_RsRTTIField 64894
+#define JclResources_RsRTTIStaticMethod 64895
+#define JvResources_RsClBtnHighlight 64896
+#define JvResources_RsCl3DDkShadow 64897
+#define JvResources_RsCl3DLight 64898
+#define JvResources_RsClInfoText 64899
+#define JvResources_RsClInfoBk 64900
+#define JvResources_RsGradientActiveCaption 64901
+#define JvResources_RsGradientInactiveCaption 64902
+#define JvResources_RsHotLight 64903
+#define JvResources_RsMenuBar 64904
+#define JvResources_RsMenuHighlight 64905
+#define JclResources_RsFileUtilsNoVersionInfo 64906
+#define JclResources_RsUnableToOpenKeyRead 64907
+#define JclResources_RsUnableToOpenKeyWrite 64908
+#define JclResources_RsUnableToAccessValue 64909
+#define JclResources_RsWrongDataType 64910
+#define JclResources_RsInconsistentPath 64911
+#define JvResources_RsClMenu 64912
+#define JvResources_RsClWindow 64913
+#define JvResources_RsClWindowFrame 64914
+#define JvResources_RsClMenuText 64915
+#define JvResources_RsClWindowText 64916
+#define JvResources_RsClCaptionText 64917
+#define JvResources_RsClActiveBorder 64918
+#define JvResources_RsClInactiveBorder 64919
+#define JvResources_RsClAppWorkSpace 64920
+#define JvResources_RsClHighlight 64921
+#define JvResources_RsClHighlightText 64922
+#define JvResources_RsClBtnFace 64923
+#define JvResources_RsClBtnShadow 64924
+#define JvResources_RsClGrayText 64925
+#define JvResources_RsClBtnText 64926
+#define JvResources_RsClInactiveCaptionText 64927
+#define JvResources_RsClGold 64928
+#define JvResources_RsClBrightGreen 64929
+#define JvResources_RsClTurquoise 64930
+#define JvResources_RsClPlum 64931
+#define JvResources_RsClGray25 64932
+#define JvResources_RsClRose 64933
+#define JvResources_RsClTan 64934
+#define JvResources_RsClLightYellow 64935
+#define JvResources_RsClLightGreen 64936
+#define JvResources_RsClLightTurquoise 64937
+#define JvResources_RsClPaleBlue 64938
+#define JvResources_RsClLavender 64939
+#define JvResources_RsClScrollBar 64940
+#define JvResources_RsClBackground 64941
+#define JvResources_RsClActiveCaption 64942
+#define JvResources_RsClInactiveCaption 64943
+#define JvResources_RsClDarkGreen 64944
+#define JvResources_RsClDarkTeal 64945
+#define JvResources_RsClDarkBlue 64946
+#define JvResources_RsClIndigo 64947
+#define JvResources_RsClGray80 64948
+#define JvResources_RsClDarkRed 64949
+#define JvResources_RsClOrange 64950
+#define JvResources_RsClDarkYellow 64951
+#define JvResources_RsClBlueGray 64952
+#define JvResources_RsClGray50 64953
+#define JvResources_RsClLightOrange 64954
+#define JvResources_RsClSeaGreen 64955
+#define JvResources_RsClLightBlue 64956
+#define JvResources_RsClViolet 64957
+#define JvResources_RsClGray40 64958
+#define JvResources_RsClPink 64959
+#define JvResources_RsClTeal 64960
+#define JvResources_RsClGray 64961
+#define JvResources_RsClSilver 64962
+#define JvResources_RsClRed 64963
+#define JvResources_RsClLime 64964
+#define JvResources_RsClYellow 64965
+#define JvResources_RsClBlue 64966
+#define JvResources_RsClFuchsia 64967
+#define JvResources_RsClAqua 64968
+#define JvResources_RsClWhite 64969
+#define JvResources_RsClMoneyGreen 64970
+#define JvResources_RsClSkyBlue 64971
+#define JvResources_RsClCream 64972
+#define JvResources_RsClMedGray 64973
+#define JvResources_RsClBrown 64974
+#define JvResources_RsClOliveGreen 64975
+#define JvResources_RsENoGIFData 64976
+#define JvResources_RsEUnrecognizedGIFExt 64977
+#define JvResources_RsEWrongGIFColors 64978
+#define JvResources_RsEBadGIFCodeSize 64979
+#define JvResources_RsEGIFDecodeError 64980
+#define JvResources_RsEGIFEncodeError 64981
+#define JvResources_RsEGIFVersion 64982
+#define JvResources_RsYourTextHereCaption 64983
+#define JvResources_RsEPixelFormatNotImplemented 64984
+#define JvResources_RsEBitCountNotImplemented 64985
+#define JvResources_RsClBlack 64986
+#define JvResources_RsClMaroon 64987
+#define JvResources_RsClGreen 64988
+#define JvResources_RsClOlive 64989
+#define JvResources_RsClNavy 64990
+#define JvResources_RsClPurple 64991
+#define IdResourceStrings_RSThreadTerminateAndWaitFor 64992
+#define JConsts_sChangeJPGSize 64993
+#define JConsts_sJPEGError 64994
+#define JConsts_sJPEGImageFile 64995
+#define JvResources_RsAniExtension 64996
+#define JvResources_RsAniFilterName 64997
+#define JvResources_RsRootValueReplaceFmt 64998
+#define JvResources_RsEUnableToCreateKey 64999
+#define JvResources_RsEEnumeratingRegistry 65000
+#define JvResources_RsEInvalidType 65001
+#define JvResources_RsEUnknownBaseType 65002
+#define JvResources_RsEInvalidPath 65003
+#define JvResources_RsENotAUniqueRootPath 65004
+#define JvResources_RsECircularReferenceOfStorages 65005
+#define JvResources_RsGIFImage 65006
+#define JvResources_RsEChangeGIFSize 65007
+#define IdResourceStrings_RSSocksRequestServerFailed 65008
+#define IdResourceStrings_RSSocksRequestIdentFailed 65009
+#define IdResourceStrings_RSSocksUnknownError 65010
+#define IdResourceStrings_RSSocksServerRespondError 65011
+#define IdResourceStrings_RSSocksAuthMethodError 65012
+#define IdResourceStrings_RSSocksAuthError 65013
+#define IdResourceStrings_RSSocksServerGeneralError 65014
+#define IdResourceStrings_RSSocksServerPermissionError 65015
+#define IdResourceStrings_RSSocksServerNetUnreachableError 65016
+#define IdResourceStrings_RSSocksServerHostUnreachableError 65017
+#define IdResourceStrings_RSSocksServerConnectionRefusedError 65018
+#define IdResourceStrings_RSSocksServerTTLExpiredError 65019
+#define IdResourceStrings_RSSocksServerCommandError 65020
+#define IdResourceStrings_RSSocksServerAddressError 65021
+#define IdResourceStrings_RSUnevenSizeInDecodeStream 65022
+#define IdResourceStrings_RSUnevenSizeInEncodeStream 65023
+#define IdResourceStrings_RSStackECONNABORTED 65024
+#define IdResourceStrings_RSStackECONNRESET 65025
+#define IdResourceStrings_RSStackENOBUFS 65026
+#define IdResourceStrings_RSStackEISCONN 65027
+#define IdResourceStrings_RSStackENOTCONN 65028
+#define IdResourceStrings_RSStackESHUTDOWN 65029
+#define IdResourceStrings_RSStackETOOMANYREFS 65030
+#define IdResourceStrings_RSStackETIMEDOUT 65031
+#define IdResourceStrings_RSStackECONNREFUSED 65032
+#define IdResourceStrings_RSStackELOOP 65033
+#define IdResourceStrings_RSStackENAMETOOLONG 65034
+#define IdResourceStrings_RSStackEHOSTDOWN 65035
+#define IdResourceStrings_RSStackEHOSTUNREACH 65036
+#define IdResourceStrings_RSStackENOTEMPTY 65037
+#define IdResourceStrings_RSStackHOST_NOT_FOUND 65038
+#define IdResourceStrings_RSSocksRequestFailed 65039
+#define IdResourceStrings_RSStackEALREADY 65040
+#define IdResourceStrings_RSStackENOTSOCK 65041
+#define IdResourceStrings_RSStackEDESTADDRREQ 65042
+#define IdResourceStrings_RSStackEMSGSIZE 65043
+#define IdResourceStrings_RSStackEPROTOTYPE 65044
+#define IdResourceStrings_RSStackENOPROTOOPT 65045
+#define IdResourceStrings_RSStackEPROTONOSUPPORT 65046
+#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65047
+#define IdResourceStrings_RSStackEOPNOTSUPP 65048
+#define IdResourceStrings_RSStackEPFNOSUPPORT 65049
+#define IdResourceStrings_RSStackEAFNOSUPPORT 65050
+#define IdResourceStrings_RSStackEADDRINUSE 65051
+#define IdResourceStrings_RSStackEADDRNOTAVAIL 65052
+#define IdResourceStrings_RSStackENETDOWN 65053
+#define IdResourceStrings_RSStackENETUNREACH 65054
+#define IdResourceStrings_RSStackENETRESET 65055
+#define IdResourceStrings_RSHTTPUnknownResponseCode 65056
+#define IdResourceStrings_RSHTTPHeaderAlreadyWritten 65057
+#define IdResourceStrings_RSHTTPErrorParsingCommand 65058
+#define IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme 65059
+#define IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive 65060
+#define IdResourceStrings_RSHTTPAuthAlreadyRegistered 65061
+#define IdResourceStrings_RSInvalidServiceName 65062
+#define IdResourceStrings_RSStackError 65063
+#define IdResourceStrings_RSStackEINTR 65064
+#define IdResourceStrings_RSStackEBADF 65065
+#define IdResourceStrings_RSStackEACCES 65066
+#define IdResourceStrings_RSStackEFAULT 65067
+#define IdResourceStrings_RSStackEINVAL 65068
+#define IdResourceStrings_RSStackEMFILE 65069
+#define IdResourceStrings_RSStackEWOULDBLOCK 65070
+#define IdResourceStrings_RSStackEINPROGRESS 65071
+#define IdResourceStrings_RSHTTPNotAcceptable 65072
+#define IdResourceStrings_RSHTTPProxyAuthenticationRequired 65073
+#define IdResourceStrings_RSHTTPRequestTimeout 65074
+#define IdResourceStrings_RSHTTPConflict 65075
+#define IdResourceStrings_RSHTTPGone 65076
+#define IdResourceStrings_RSHTTPLengthRequired 65077
+#define IdResourceStrings_RSHTTPPreconditionFailed 65078
+#define IdResourceStrings_RSHTTPRequestEntityToLong 65079
+#define IdResourceStrings_RSHTTPRequestURITooLong 65080
+#define IdResourceStrings_RSHTTPUnsupportedMediaType 65081
+#define IdResourceStrings_RSHTTPInternalServerError 65082
+#define IdResourceStrings_RSHTTPNotImplemented 65083
+#define IdResourceStrings_RSHTTPBadGateway 65084
+#define IdResourceStrings_RSHTTPServiceUnavailable 65085
+#define IdResourceStrings_RSHTTPGatewayTimeout 65086
+#define IdResourceStrings_RSHTTPHTTPVersionNotSupported 65087
+#define IdResourceStrings_RSHTTPCreated 65088
+#define IdResourceStrings_RSHTTPAccepted 65089
+#define IdResourceStrings_RSHTTPNonAuthoritativeInformation 65090
+#define IdResourceStrings_RSHTTPNoContent 65091
+#define IdResourceStrings_RSHTTPResetContent 65092
+#define IdResourceStrings_RSHTTPPartialContent 65093
+#define IdResourceStrings_RSHTTPMovedPermanently 65094
+#define IdResourceStrings_RSHTTPMovedTemporarily 65095
+#define IdResourceStrings_RSHTTPSeeOther 65096
+#define IdResourceStrings_RSHTTPNotModified 65097
+#define IdResourceStrings_RSHTTPUseProxy 65098
+#define IdResourceStrings_RSHTTPBadRequest 65099
+#define IdResourceStrings_RSHTTPUnauthorized 65100
+#define IdResourceStrings_RSHTTPForbidden 65101
+#define IdResourceStrings_RSHTTPNotFound 65102
+#define IdResourceStrings_RSHTTPMethodeNotallowed 65103
+#define IdResourceStrings_RSReadLnMaxLineLengthExceeded 65104
+#define IdResourceStrings_RSNoCommandHandlerFound 65105
+#define IdResourceStrings_RSWS2CallError 65106
+#define IdResourceStrings_RSWS2LoadError 65107
+#define IdResourceStrings_RSMIMEExtensionEmpty 65108
+#define IdResourceStrings_RSMIMEMIMETypeEmpty 65109
+#define IdResourceStrings_RSMIMEMIMEExtAlreadyExists 65110
+#define IdResourceStrings_RSStatusResolving 65111
+#define IdResourceStrings_RSStatusConnecting 65112
+#define IdResourceStrings_RSStatusConnected 65113
+#define IdResourceStrings_RSStatusDisconnecting 65114
+#define IdResourceStrings_RSStatusDisconnected 65115
+#define IdResourceStrings_RSStatusText 65116
+#define IdResourceStrings_RSConnectTimeout 65117
+#define IdResourceStrings_RSHTTPContinue 65118
+#define IdResourceStrings_RSHTTPOK 65119
+#define IdResourceStrings_RSCouldNotBindSocket 65120
+#define IdResourceStrings_RSFailedTimeZoneInfo 65121
+#define IdResourceStrings_RSNotEnoughDataInBuffer 65122
+#define IdResourceStrings_RSWinsockInitializationError 65123
+#define IdResourceStrings_RSSetSizeExceeded 65124
+#define IdResourceStrings_RSThreadClassNotSpecified 65125
+#define IdResourceStrings_RSFileNotFound 65126
+#define IdResourceStrings_RSOnlyOneAntiFreeze 65127
+#define IdResourceStrings_RSNotConnected 65128
+#define IdResourceStrings_RSObjectTypeNotSupported 65129
+#define IdResourceStrings_RSTerminateThreadTimeout 65130
+#define IdResourceStrings_RSNoExecuteSpecified 65131
+#define IdResourceStrings_RSIdNoDataToRead 65132
+#define IdResourceStrings_RSCanNotBindRange 65133
+#define IdResourceStrings_RSInvalidPortRange 65134
+#define IdResourceStrings_RSReadTimeout 65135
+#define uRORes_err_TooManySessions 65136
+#define uRORes_err_DOMElementIsNIL 65137
+#define uRORes_err_CannotLoadXMLDocument 65138
+#define uRORes_err_ErrorCreatingMsXmlDoc 65139
+#define uRORes_err_NoXMLParsersAvailable 65140
+#define uRORes_err_IDispatchMarshalingNotSupported 65141
+#define uRORes_err_UnsupportedVariantType 65142
+#define uRORes_err_VariantIsNotArray 65143
+#define uRORes_err_InvalidVarArrayDimCount 65144
+#define uRORes_err_MessageNotAssigned 65145
+#define ComConst_SOleError 65146
+#define ComConst_SNoMethod 65147
+#define ComConst_SVarNotObject 65148
+#define ComConst_STooManyParams 65149
+#define IdResourceStrings_RSCannotAllocateSocket 65150
+#define IdResourceStrings_RSConnectionClosedGracefully 65151
+#define uRORes_err_TypeNotSupported 65152
+#define uRORes_err_ClassFactoryNotFound 65153
+#define uRORes_err_IROMessageNotSupported 65154
+#define uRORes_err_ClassAlreadyRegistered 65155
+#define uRORes_err_UnknownProxyInterface 65156
+#define uRORes_err_DispatcherAlreadyAssigned 65157
+#define uRORes_err_CannotFindMessageDispatcher 65158
+#define uRORes_err_ServerOnlySupportsOneDispatcher 65159
+#define uRORes_err_UnhandledException 65160
+#define uRORes_err_ChannelBusy 65161
+#define uRORes_err_ArrayIndexOutOfBounds 65162
+#define uRORes_err_InvalidHeader 65163
+#define uRORes_err_UnknownClassInStream 65164
+#define uRORes_err_UnexpectedClassInStream 65165
+#define uRORes_err_SessionNotFound 65166
+#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65167
+#define uRORes_err_RodlNoEnumValues 65168
+#define uRORes_err_RodlNoStructElementsDefined 65169
+#define uRORes_err_RodlNoOperationsDefined 65170
+#define uRORes_err_RodlUsedFileDoesNotExist 65171
+#define uRORes_err_RodlInvalidDataType 65172
+#define uRORes_err_RodlStructCannotBeNested 65173
+#define uRORes_err_RodlInvalidAncestorType 65174
+#define uRORes_str_ExceptionOnServer 65175
+#define uRORes_str_ExceptionReraisedFromServer 65176
+#define uRORes_err_AssignError 65177
+#define uRORes_err_InvalidRequestStream 65178
+#define uRORes_err_NILMessage 65179
+#define uRORes_err_UnspecifiedInterface 65180
+#define uRORes_err_UnspecifiedMessage 65181
+#define uRORes_err_UnknownMethod 65182
+#define uRORes_err_ClassFactoryDidNotReturnInstance 65183
+#define uRODECConst_sFMT_HEX 65184
+#define uRODECConst_sFMT_HEXL 65185
+#define uRODECConst_sFMT_MIME64 65186
+#define uRODECConst_sFMT_UU 65187
+#define uRODECConst_sFMT_XX 65188
+#define uRODECConst_sInvalidKeySize 65189
+#define uRODECConst_sNotInitialized 65190
+#define uRORes_err_InvalidIndex 65191
+#define uRORes_err_InvalidType 65192
+#define uRORes_err_InvalidStream 65193
+#define uRORes_err_InvalidParamFlag 65194
+#define uRORes_err_InvalidStringLength 65195
+#define uRORes_str_InvalidClassTypeInStream 65196
+#define uRORes_err_UnexpectedEndOfStream 65197
+#define uRORes_err_RodlDuplicateName 65198
+#define uRORes_err_RodlNoDataTypeSpecified 65199
+#define ComStrs_sUDAssociated 65200
+#define ComStrs_sPageIndexError 65201
+#define ComStrs_sInvalidComCtl32 65202
+#define ComStrs_sDateTimeMax 65203
+#define ComStrs_sDateTimeMin 65204
+#define ComStrs_sNeedAllowNone 65205
+#define ComStrs_sFailSetCalDateTime 65206
+#define ComStrs_sFailSetCalMaxSelRange 65207
+#define ComStrs_sFailSetCalMinMaxRange 65208
+#define ComStrs_sFailsetCalSelRange 65209
+#define WinHelpViewer_hNoKeyword 65210
+#define uRODECConst_sProtectionCircular 65211
+#define uRODECConst_sStringFormatExists 65212
+#define uRODECConst_sInvalidStringFormat 65213
+#define uRODECConst_sInvalidFormatString 65214
+#define uRODECConst_sFMT_COPY 65215
+#define ExtCtrls_clNameWindow 65216
+#define ExtCtrls_clNameWindowFrame 65217
+#define ExtCtrls_clNameWindowText 65218
+#define ComStrs_sTabFailClear 65219
+#define ComStrs_sTabFailDelete 65220
+#define ComStrs_sTabFailRetrieve 65221
+#define ComStrs_sTabFailGetObject 65222
+#define ComStrs_sTabFailSet 65223
+#define ComStrs_sTabFailSetObject 65224
+#define ComStrs_sTabMustBeMultiLine 65225
+#define ComStrs_sInvalidIndex 65226
+#define ComStrs_sInsertError 65227
+#define ComStrs_sInvalidOwner 65228
+#define ComStrs_sRichEditInsertError 65229
+#define ComStrs_sRichEditLoadFail 65230
+#define ComStrs_sRichEditSaveFail 65231
+#define ExtCtrls_clNameCaptionText 65232
+#define ExtCtrls_clNameDefault 65233
+#define ExtCtrls_clNameGrayText 65234
+#define ExtCtrls_clNameHighlight 65235
+#define ExtCtrls_clNameHighlightText 65236
+#define ExtCtrls_clNameInactiveBorder 65237
+#define ExtCtrls_clNameInactiveCaption 65238
+#define ExtCtrls_clNameInactiveCaptionText 65239
+#define ExtCtrls_clNameInfoBk 65240
+#define ExtCtrls_clNameInfoText 65241
+#define ExtCtrls_clNameMenu 65242
+#define ExtCtrls_clNameMenuText 65243
+#define ExtCtrls_clNameNone 65244
+#define ExtCtrls_clNameScrollBar 65245
+#define ExtCtrls_clName3DDkShadow 65246
+#define ExtCtrls_clName3DLight 65247
+#define ExtCtrls_clNameBlue 65248
+#define ExtCtrls_clNameFuchsia 65249
+#define ExtCtrls_clNameAqua 65250
+#define ExtCtrls_clNameWhite 65251
+#define ExtCtrls_clNameMoneyGreen 65252
+#define ExtCtrls_clNameSkyBlue 65253
+#define ExtCtrls_clNameCream 65254
+#define ExtCtrls_clNameMedGray 65255
+#define ExtCtrls_clNameActiveBorder 65256
+#define ExtCtrls_clNameActiveCaption 65257
+#define ExtCtrls_clNameAppWorkSpace 65258
+#define ExtCtrls_clNameBackground 65259
+#define ExtCtrls_clNameBtnFace 65260
+#define ExtCtrls_clNameBtnHighlight 65261
+#define ExtCtrls_clNameBtnShadow 65262
+#define ExtCtrls_clNameBtnText 65263
+#define HelpIntfs_hNoTableOfContents 65264
+#define HelpIntfs_hNothingFound 65265
+#define HelpIntfs_hNoContext 65266
+#define HelpIntfs_hNoTopics 65267
+#define ExtCtrls_clNameBlack 65268
+#define ExtCtrls_clNameMaroon 65269
+#define ExtCtrls_clNameGreen 65270
+#define ExtCtrls_clNameOlive 65271
+#define ExtCtrls_clNameNavy 65272
+#define ExtCtrls_clNamePurple 65273
+#define ExtCtrls_clNameTeal 65274
+#define ExtCtrls_clNameGray 65275
+#define ExtCtrls_clNameSilver 65276
+#define ExtCtrls_clNameRed 65277
+#define ExtCtrls_clNameLime 65278
+#define ExtCtrls_clNameYellow 65279
+#define Consts_SInvalidClipFmt 65280
+#define Consts_SIconToClipboard 65281
+#define Consts_SCannotOpenClipboard 65282
+#define Consts_SInvalidMemoSize 65283
+#define Consts_SInvalidPrinterOp 65284
+#define Consts_SNoDefaultPrinter 65285
+#define Consts_SDuplicateMenus 65286
+#define Consts_SDockedCtlNeedsName 65287
+#define Consts_SDockTreeRemoveError 65288
+#define Consts_SDockZoneNotFound 65289
+#define Consts_SDockZoneHasNoCtl 65290
+#define Consts_SMultiSelectRequired 65291
+#define Consts_SSeparator 65292
+#define Consts_SErrorSettingCount 65293
+#define Consts_SListBoxMustBeVirtual 65294
+#define Consts_SNoGetItemEventHandler 65295
+#define Consts_SmkcPgUp 65296
+#define Consts_SmkcPgDn 65297
+#define Consts_SmkcEnd 65298
+#define Consts_SmkcHome 65299
+#define Consts_SmkcLeft 65300
+#define Consts_SmkcUp 65301
+#define Consts_SmkcRight 65302
+#define Consts_SmkcDown 65303
+#define Consts_SmkcIns 65304
+#define Consts_SmkcDel 65305
+#define Consts_SmkcShift 65306
+#define Consts_SmkcCtrl 65307
+#define Consts_SmkcAlt 65308
+#define Consts_srNone 65309
+#define Consts_SOutOfRange 65310
+#define Consts_SInsertLineError 65311
+#define Consts_SMsgDlgYes 65312
+#define Consts_SMsgDlgNo 65313
+#define Consts_SMsgDlgOK 65314
+#define Consts_SMsgDlgCancel 65315
+#define Consts_SMsgDlgHelp 65316
+#define Consts_SMsgDlgAbort 65317
+#define Consts_SMsgDlgRetry 65318
+#define Consts_SMsgDlgIgnore 65319
+#define Consts_SMsgDlgAll 65320
+#define Consts_SMsgDlgNoToAll 65321
+#define Consts_SMsgDlgYesToAll 65322
+#define Consts_SmkcBkSp 65323
+#define Consts_SmkcTab 65324
+#define Consts_SmkcEsc 65325
+#define Consts_SmkcEnter 65326
+#define Consts_SmkcSpace 65327
+#define Consts_SCloseButton 65328
+#define Consts_SIgnoreButton 65329
+#define Consts_SRetryButton 65330
+#define Consts_SAbortButton 65331
+#define Consts_SAllButton 65332
+#define Consts_SCannotDragForm 65333
+#define Consts_SVMetafiles 65334
+#define Consts_SVEnhMetafiles 65335
+#define Consts_SVIcons 65336
+#define Consts_SVBitmaps 65337
+#define Consts_SMaskErr 65338
+#define Consts_SMaskEditErr 65339
+#define Consts_SMsgDlgWarning 65340
+#define Consts_SMsgDlgError 65341
+#define Consts_SMsgDlgInformation 65342
+#define Consts_SMsgDlgConfirm 65343
+#define Consts_SMenuIndexError 65344
+#define Consts_SMenuReinserted 65345
+#define Consts_SMenuNotFound 65346
+#define Consts_SNoTimers 65347
+#define Consts_SNotPrinting 65348
+#define Consts_SPrinting 65349
+#define Consts_SInvalidPrinter 65350
+#define Consts_SDeviceOnPort 65351
+#define Consts_SGroupIndexTooLow 65352
+#define Consts_SNoMDIForm 65353
+#define Consts_SControlParentSetToSelf 65354
+#define Consts_SOKButton 65355
+#define Consts_SCancelButton 65356
+#define Consts_SYesButton 65357
+#define Consts_SNoButton 65358
+#define Consts_SHelpButton 65359
+#define Consts_SInvalidImageSize 65360
+#define Consts_SInvalidImageList 65361
+#define Consts_SReplaceImage 65362
+#define Consts_SImageIndexError 65363
+#define Consts_SImageReadFail 65364
+#define Consts_SImageWriteFail 65365
+#define Consts_SWindowDCError 65366
+#define Consts_SWindowClass 65367
+#define Consts_SCannotFocus 65368
+#define Consts_SParentRequired 65369
+#define Consts_SParentGivenNotAParent 65370
+#define Consts_SMDIChildNotVisible 65371
+#define Consts_SVisibleChanged 65372
+#define Consts_SCannotShowModal 65373
+#define Consts_SScrollBarRange 65374
+#define Consts_SPropertyOutOfRange 65375
+#define RTLConsts_SWriteError 65376
+#define RTLConsts_SThreadCreateError 65377
+#define RTLConsts_SThreadError 65378
+#define Consts_SInvalidTabPosition 65379
+#define Consts_SInvalidTabStyle 65380
+#define Consts_SInvalidBitmap 65381
+#define Consts_SInvalidIcon 65382
+#define Consts_SInvalidMetafile 65383
+#define Consts_SInvalidPixelFormat 65384
+#define Consts_SInvalidImage 65385
+#define Consts_SScanLine 65386
+#define Consts_SChangeIconSize 65387
+#define Consts_SUnknownExtension 65388
+#define Consts_SUnknownClipboardFormat 65389
+#define Consts_SOutOfResources 65390
+#define Consts_SNoCanvasHandle 65391
+#define RTLConsts_SInvalidRegType 65392
+#define RTLConsts_SListCapacityError 65393
+#define RTLConsts_SListCountError 65394
+#define RTLConsts_SListIndexError 65395
+#define RTLConsts_SMemoryStreamError 65396
+#define RTLConsts_SPropertyException 65397
+#define RTLConsts_SReadError 65398
+#define RTLConsts_SReadOnlyProperty 65399
+#define RTLConsts_SRegCreateFailed 65400
+#define RTLConsts_SRegGetDataFailed 65401
+#define RTLConsts_SRegSetDataFailed 65402
+#define RTLConsts_SResNotFound 65403
+#define RTLConsts_SSeekNotImplemented 65404
+#define RTLConsts_SSortedListError 65405
+#define RTLConsts_SUnknownGroup 65406
+#define RTLConsts_SUnknownProperty 65407
+#define RTLConsts_SCheckSynchronizeError 65408
+#define RTLConsts_SClassNotFound 65409
+#define RTLConsts_SDuplicateClass 65410
+#define RTLConsts_SDuplicateItem 65411
+#define RTLConsts_SDuplicateName 65412
+#define RTLConsts_SDuplicateString 65413
+#define RTLConsts_SFCreateErrorEx 65414
+#define RTLConsts_SFOpenErrorEx 65415
+#define RTLConsts_SIniFileWriteError 65416
+#define RTLConsts_SInvalidImage 65417
+#define RTLConsts_SInvalidName 65418
+#define RTLConsts_SInvalidProperty 65419
+#define RTLConsts_SInvalidPropertyElement 65420
+#define RTLConsts_SInvalidPropertyPath 65421
+#define RTLConsts_SInvalidPropertyType 65422
+#define RTLConsts_SInvalidPropertyValue 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 RTLConsts_SAncestorNotFound 65436
+#define RTLConsts_SAssignError 65437
+#define RTLConsts_SBitsIndexError 65438
+#define RTLConsts_SCantWriteResourceStreamError 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
+ TeeConst_TeeMsg_ValuesArrowEndY, "EndY"
+ TeeConst_TeeMsg_DefaultFontName, "Arial"
+ TeeConst_TeeMsg_CheckPointerSize, "Pointer size must be greater than zero"
+ TeeConst_TeeMsg_FunctionPeriod, "Function Period should be >= 0"
+ TeeConst_TeeMsg_PieOther, "Other"
+ TeeConst_TeeMsg_ShapeGallery1, "abc"
+ TeeConst_TeeMsg_ShapeGallery2, "123"
+ TeeConst_TeeMsg_ValuesX, "X"
+ TeeConst_TeeMsg_ValuesY, "Y"
+ TeeConst_TeeMsg_ValuesPie, "Pie"
+ TeeConst_TeeMsg_ValuesBar, "Bar"
+ TeeConst_TeeMsg_ValuesAngle, "Angle"
+ TeeConst_TeeMsg_ValuesGanttStart, "Start"
+ TeeConst_TeeMsg_ValuesGanttEnd, "End"
+ TeeConst_TeeMsg_ValuesGanttNextTask, "NextTask"
+ TeeConst_TeeMsg_ValuesBubbleRadius, "Radius"
+ TeeConst_TeeMsg_ValuesArrowEndX, "EndX"
+ TeeConst_TeeMsg_GanttSample6, "Testing"
+ TeeConst_TeeMsg_GanttSample7, "Manufac."
+ TeeConst_TeeMsg_GanttSample8, "Debugging"
+ TeeConst_TeeMsg_GanttSample9, "New Version"
+ TeeConst_TeeMsg_GanttSample10, "Banking"
+ TeeConst_TeeMsg_DefaultFontSize, "8"
+ TeeConst_TeeMsg_DefaultGalleryFontSize, "8"
+ TeeConst_TeeMsg_FunctionAdd, "Add"
+ TeeConst_TeeMsg_FunctionSubtract, "Subtract"
+ TeeConst_TeeMsg_FunctionMultiply, "Multiply"
+ TeeConst_TeeMsg_FunctionDivide, "Divide"
+ TeeConst_TeeMsg_FunctionHigh, "High"
+ TeeConst_TeeMsg_FunctionLow, "Low"
+ TeeConst_TeeMsg_FunctionAverage, "Average"
+ TeeConst_TeeMsg_GalleryShape, "Shape"
+ TeeConst_TeeMsg_GalleryBubble, "Bubble"
+ TeeConst_TeeMsg_PieSample3, "Tables"
+ TeeConst_TeeMsg_PieSample4, "Monitors"
+ TeeConst_TeeMsg_PieSample5, "Lamps"
+ TeeConst_TeeMsg_PieSample6, "Keyboards"
+ TeeConst_TeeMsg_PieSample7, "Bikes"
+ TeeConst_TeeMsg_PieSample8, "Chairs"
+ TeeConst_TeeMsg_GalleryChartName, "TeeGalleryChart"
+ TeeConst_TeeMsg_GalleryStandard, "Standard"
+ TeeConst_TeeMsg_GalleryFunctions, "Functions"
+ TeeConst_TeeMsg_GalleryArrow, "Arrow"
+ TeeConst_TeeMsg_GalleryGantt, "Gantt"
+ TeeConst_TeeMsg_GanttSample1, "Design"
+ TeeConst_TeeMsg_GanttSample2, "Prototyping"
+ TeeConst_TeeMsg_GanttSample3, "Development"
+ TeeConst_TeeMsg_GanttSample4, "Sales"
+ TeeConst_TeeMsg_GanttSample5, "Marketing"
+ TeeConst_TeeMsg_BarOffsetPercent, "Bar Offset Percent must be between -100% and 100%"
+ TeeConst_TeeMsg_DefaultPercentOf, "%s of %s"
+ TeeConst_TeeMsg_DefPercentFormat, "##0.## %"
+ TeeConst_TeeMsg_DefValueFormat, "#,##0.###"
+ TeeConst_TeeMsg_AxisTitle, "Axis Title"
+ TeeConst_TeeMsg_AxisLabels, "Axis Labels"
+ TeeConst_TeeMsg_GalleryLine, "Line"
+ TeeConst_TeeMsg_GalleryPoint, "Point"
+ TeeConst_TeeMsg_GalleryArea, "Area"
+ TeeConst_TeeMsg_GalleryBar, "Bar"
+ TeeConst_TeeMsg_GalleryHorizBar, "Horiz. Bar"
+ TeeConst_TeeMsg_GalleryPie, "Pie"
+ TeeConst_TeeMsg_GalleryFastLine, "Fast Line"
+ TeeConst_TeeMsg_Rotation, "Rotation"
+ TeeConst_TeeMsg_PieSample1, "Cars"
+ TeeConst_TeeMsg_PieSample2, "Phones"
+ TeeConst_TeeMsg_LegendColorWidth, "Legend Color Width must be between 0 and 100 %"
+ TeeConst_TeeMsg_SeriesSetDataSource, "No ParentChart to validate DataSource"
+ TeeConst_TeeMsg_SeriesInvDataSource, "No valid DataSource: %s"
+ TeeConst_TeeMsg_FillSample, "FillSampleValues NumValues must be > 0"
+ TeeConst_TeeMsg_Angle, "%s Angle must be between 0 and 359 degrees"
+ TeeConst_TeeMsg_AxisLogDateTime, "DateTime Axis cannot be Logarithmic"
+ TeeConst_TeeMsg_AxisLogNotPositive, "Logarithmic Axis Min and Max values should be >= 0"
+ TeeConst_TeeMsg_AxisLabelSep, "Labels Separation % must be greater than 0"
+ TeeConst_TeeMsg_AxisIncrementNeg, "Axis increment must be >= 0"
+ TeeConst_TeeMsg_AxisMinMax, "Axis Minimum Value must be <= Maximum"
+ TeeConst_TeeMsg_AxisMaxMin, "Axis Maximum Value must be >= Minimum"
+ TeeConst_TeeMsg_AxisLogBase, "Axis Logarithmic Base should be >= 2"
+ TeeConst_TeeMsg_MaxPointsPerPage, "MaxPointsPerPage must be >= 0"
+ TeeConst_TeeMsg_3dPercent, "3D effect percent must be between %d and %d"
+ TeeConst_TeeMsg_CircularSeries, "Circular Series dependences are not allowed"
+ TeeConst_TeeMsg_BarWidthPercent, "Bar Width Percent must be between 1 and 100"
+ 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"
+ OleConst_SLinkProperties, "Link Properties"
+ OleConst_SInvalidLinkSource, "Cannot link to an invalid source."
+ OleConst_SCannotBreakLink, "Break link operation is not supported."
+ OleConst_SEmptyContainer, "Operation not allowed on an empty OLE container"
+ OleConst_SInvalidVerb, "Invalid object verb"
+ OleConst_SPropDlgCaption, "%s Properties"
+ OleConst_SInvalidStreamFormat, "Invalid stream format"
+ TeeConst_TeeMsg_LegendTopPos, "Top Legend Position must be between 0 and 100 %"
+ TeeConst_TeeMsg_LegendFirstValue, "First Legend Value must be > 0"
+ VDBConsts_SCancelEdit, "Cancel edit"
+ VDBConsts_SRefreshRecord, "Refresh data"
+ VDBConsts_SDataSourceFixed, "Operation not allowed in a DBCtrlGrid"
+ VDBConsts_SPropDefByLookup, "Property already defined by lookup field"
+ VDBConsts_SRemoteLogin, "Remote Login"
+ 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"
+ 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_SConstraintFailed, "Record or field constraint failed."
+ MidConst_SField, "Field"
+ MidConst_SRecConstFail, "Preparation of record constraint failed with error \"%s\""
+ 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"
+ VDBConsts_SFirstRecord, "First record"
+ VDBConsts_SPriorRecord, "Prior record"
+ VDBConsts_SNextRecord, "Next record"
+ VDBConsts_SLastRecord, "Last record"
+ VDBConsts_SInsertRecord, "Insert record"
+ VDBConsts_SDeleteRecord, "Delete record"
+ VDBConsts_SEditRecord, "Edit record"
+ VDBConsts_SPostEdit, "Post edit"
+ 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_scxRegExprHexNumberExpected0, "Hexadecimal number expected"
+ cxEditConsts_scxRegExprHexNumberExpected, "Hexadecimal number expected but '%s' found"
+ 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_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons"
+ cxEditConsts_scxSEditRepositoryMaskItem, "MaskEdit|Represents a generic masked edit control."
+ cxEditConsts_scxSEditRepositoryTextItem, "TextEdit|Represents a single line text editor"
+ 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"
+ cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable"
+ cxEditConsts_cxSEditNumericValueConvertError, "Could not convert to numeric value"
+ cxEditConsts_cxSEditValidateErrorText, "Invalid input value. Use escape key to abandon changes"
+ cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds"
+ cxEditConsts_cxSDateToday, "today"
+ cxEditConsts_cxSDateYesterday, "yesterday"
+ cxEditConsts_cxSDateTomorrow, "tomorrow"
+ cxEditConsts_cxSDateSunday, "Sunday"
+ cxEditConsts_cxSDateMonday, "Monday"
+ cxEditConsts_cxSDateTuesday, "Tuesday"
+ cxEditConsts_cxSDateWednesday, "Wednesday"
+ 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."
+ pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed."
+ 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_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"
+ pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)"
+ 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_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_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_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_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_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_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_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_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_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_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"
+ 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"
+ 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."
+ IBXConst_SUnknownError, "Unknown error"
+ 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"
+ 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_UnknownParameter, "Unknown parameter %s"
+ uDARes_err_FieldIsNotBound, "Field is not bound"
+ uDARes_err_CannotFindField, "Cannot find field %s"
+ 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"
+ 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_SFieldNameTooLarge, "Fieldname %s exceeds %d chars"
+ 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"
+ 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"
+ 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_SProviderSQLNotSupported, "SQL not supported: %s"
+ 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_SExprIncorrect, "Incorrectly formed filter expression"
+ 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_SNotEditing, "Dataset not in edit or insert mode"
+ 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'"
+ DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range"
+ JclResources_RsIntelCacheDescr7A, "2° Level cache, 256 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size"
+ JclResources_RsIntelCacheDescr7B, "2° Level cache, 512 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size"
+ JclResources_RsIntelCacheDescr7C, "2° Level cache, 1 MBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size"
+ JclResources_RsIntelCacheDescr7D, "2° Level cache, 2 MByte, 8-way set associative, 64byte line size"
+ JclResources_RsIntelCacheDescr7F, "2° Level cache, 512 KByte, 2-way set associative, 64-byte line size"
+ JclResources_RsIntelCacheDescr82, "2° Level cache, 256 KBytes, 8-way associative, 32 Bytes line size"
+ JclResources_RsIntelCacheDescr83, "2° Level cache, 512 KBytes, 8-way associative, 32 Bytes line size"
+ JclResources_RsIntelCacheDescr84, "2° Level cache, 1 MBytes, 8-way associative, 32 Bytes line size"
+ JclResources_RsIntelCacheDescr85, "2° Level cache, 2 MBytes, 8-way associative, 32 Bytes line size"
+ JclResources_RsIntelCacheDescr86, "2° Level cache, 512 KByte, 4-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescr87, "2° 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_RsIntelCacheDescrF0, "64-Byte Prefetching"
+ JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching"
+ DBConsts_SInvalidFieldSize, "Invalid field size"
+ JclResources_RsIntelCacheDescr45, "Unified cache, 32 byte cache line, 4-way set associative, 2Mb"
+ JclResources_RsIntelCacheDescr50, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 64 Entries"
+ JclResources_RsIntelCacheDescr51, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 128 Entries"
+ JclResources_RsIntelCacheDescr52, "Instruction TLB, 4 KBytes and 2 MBytes or 4 MBytes pages, 256 Entries"
+ JclResources_RsIntelCacheDescr5B, "Data TLB, 4 KBytes and 4 MBytes pages, 64 Entries"
+ JclResources_RsIntelCacheDescr5C, "Data TLB, 4 KBytes and 4 MBytes pages, 128 Entries"
+ JclResources_RsIntelCacheDescr5D, "Data TLB, 4 KBytes and 4 MBytes pages, 256 Entries"
+ JclResources_RsIntelCacheDescr60, "1° Level data cache: 16 KByte, 8-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescr66, "1° Level Data cache, 8 KBytes, 4-way set associative, 64 Bytes line size"
+ JclResources_RsIntelCacheDescr67, "1° Level Data cache, 16 KBytes, 4-way set associative, 64 Bytes line size"
+ JclResources_RsIntelCacheDescr68, "1° Level Data cache, 32 KBytes, 4-way set associative, 64 Bytes 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, "2° Level cache, 1 MBytes, 4-way set associative, 64 Bytes line size"
+ JclResources_RsIntelCacheDescr79, "2° Level cache, 128 KBytes, 8-way set associative, dual-sectored line, 64 Bytes sector size"
+ JclResources_RsIntelCacheDescr04, "Data TLB, 4Mb pages, 4-way set associative, 8 entries"
+ JclResources_RsIntelCacheDescr06, "8KB instruction cache, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr08, "16KB instruction cache, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr0A, "8KB data cache 2-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr0C, "16KB data cache, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr22, "3° Level cache, 512 KBytes, 4-way set associative, 2 lines per sector, 128 byte sector size"
+ JclResources_RsIntelCacheDescr23, "3° Level cache, 1 MBytes, 8-way set associative, 2 lines per sector, 128 byte sector size"
+ JclResources_RsIntelCacheDescr25, "3° Level cache, 2 MBytes, 8-way set associative, 2 lines per sector, 128 byte line size"
+ JclResources_RsIntelCacheDescr29, "3° Level cache, 4M Bytes, 8-way set associative, 2 lines per sector, 128 byte line size"
+ JclResources_RsIntelCacheDescr2C, "1° Level data cache: 32K Bytes, 8-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescr30, "1° Level instruction cache: 32K Bytes, 8-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescr40, "No L2 cache"
+ JclResources_RsIntelCacheDescr41, "Unified cache, 32 byte cache line, 4-way set associative, 128Kb"
+ JclResources_RsIntelCacheDescr42, "Unified cache, 32 byte cache line, 4-way set associative, 256Kb"
+ JclResources_RsIntelCacheDescr43, "Unified cache, 32 byte cache line, 4-way set associative, 512Kb"
+ JclResources_RsIntelCacheDescr44, "Unified cache, 32 byte cache line, 4-way set associative, 1Mb"
+ 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_RsRTTIVarType, "Variant type: "
+ JclResources_RsDeclarationFormat, "// Declaration for '%s' not supported."
+ JclResources_RsBlankSearchString, "Search string cannot be blank"
+ JclResources_RsIntelCacheDescr00, "Null descriptor"
+ JclResources_RsIntelCacheDescr01, "Instruction TLB, 4Kb pages, 4-way set associative, 32 entries"
+ JclResources_RsIntelCacheDescr02, "Instruction TLB, 4Mb pages, fully associative, 2 entries"
+ JclResources_RsIntelCacheDescr03, "Data TLB, 4Kb pages, 4-way set associative, 64 entries"
+ 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_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_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"
+ JclResources_RsRTTITypeError, "???"
+ JclResources_RsRTTITypeInfoAt, "Type info: %p"
+ JclResources_RsRTTIPropRead, "read"
+ JclResources_RsRTTIPropWrite, "write"
+ JclResources_RsRTTIPropStored, "stored"
+ JclResources_RsRTTIField, "field"
+ JclResources_RsRTTIStaticMethod, "static method"
+ 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_RsHotLight, "Hot Light"
+ JvResources_RsMenuBar, "Menu Bar"
+ JvResources_RsMenuHighlight, "Menu Highlight"
+ JclResources_RsFileUtilsNoVersionInfo, "File contains no version information"
+ JclResources_RsUnableToOpenKeyRead, "Unable to open key \"%s\" for read"
+ JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\" for write"
+ JclResources_RsUnableToAccessValue, "Unable to open key \"%s\" and access value \"%s\""
+ JclResources_RsWrongDataType, "\"%s\\%s\" is of wrong kind or size"
+ JclResources_RsInconsistentPath, "\"%s\" does not match RootKey"
+ 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_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_RsClGold, "Gold"
+ JvResources_RsClBrightGreen, "Bright Green"
+ JvResources_RsClTurquoise, "Turquoise"
+ JvResources_RsClPlum, "Plum"
+ JvResources_RsClGray25, "Gray 25%"
+ JvResources_RsClRose, "Rose"
+ JvResources_RsClTan, "Tan"
+ 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_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_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_RsClTeal, "Teal"
+ JvResources_RsClGray, "Gray"
+ JvResources_RsClSilver, "Silver"
+ JvResources_RsClRed, "Red"
+ JvResources_RsClLime, "Lime"
+ JvResources_RsClYellow, "Yellow"
+ JvResources_RsClBlue, "Blue"
+ 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_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"
+ JvResources_RsEGIFVersion, "Unknown GIF version"
+ JvResources_RsYourTextHereCaption, "Put your text here ..."
+ 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"
+ IdResourceStrings_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads"
+ JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image"
+ JConsts_sJPEGError, "JPEG error #%d"
+ JConsts_sJPEGImageFile, "JPEG Image File"
+ 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."
+ 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_RsGIFImage, "CompuServe GIF Image"
+ JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image"
+ IdResourceStrings_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect."
+ IdResourceStrings_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids."
+ IdResourceStrings_RSSocksUnknownError, "Unknown socks error."
+ IdResourceStrings_RSSocksServerRespondError, "Socks server did not respond."
+ IdResourceStrings_RSSocksAuthMethodError, "Invalid socks authentication method."
+ IdResourceStrings_RSSocksAuthError, "Authentication error to socks server."
+ IdResourceStrings_RSSocksServerGeneralError, "General SOCKS server failure."
+ IdResourceStrings_RSSocksServerPermissionError, "Connection not allowed by ruleset."
+ IdResourceStrings_RSSocksServerNetUnreachableError, "Network unreachable."
+ IdResourceStrings_RSSocksServerHostUnreachableError, "Host unreachable."
+ IdResourceStrings_RSSocksServerConnectionRefusedError, "Connection refused."
+ IdResourceStrings_RSSocksServerTTLExpiredError, "TTL expired."
+ IdResourceStrings_RSSocksServerCommandError, "Command not supported."
+ IdResourceStrings_RSSocksServerAddressError, "Address type not supported."
+ IdResourceStrings_RSUnevenSizeInDecodeStream, "Uneven size in DecodeToStream."
+ IdResourceStrings_RSUnevenSizeInEncodeStream, "Uneven size in Encode."
+ IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort."
+ IdResourceStrings_RSStackECONNRESET, "Connection reset by peer."
+ 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_RSSocksRequestFailed, "Request rejected or failed."
+ IdResourceStrings_RSStackEALREADY, "Operation already in progress."
+ IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket."
+ 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_RSHTTPUnknownResponseCode, "Unknown Response Code"
+ IdResourceStrings_RSHTTPHeaderAlreadyWritten, "Header has already been written."
+ IdResourceStrings_RSHTTPErrorParsingCommand, "Error in parsing command."
+ IdResourceStrings_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme."
+ IdResourceStrings_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active."
+ IdResourceStrings_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s."
+ IdResourceStrings_RSInvalidServiceName, "%s is not a valid service."
+ IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s"
+ IdResourceStrings_RSStackEINTR, "Interrupted system call."
+ IdResourceStrings_RSStackEBADF, "Bad file number."
+ IdResourceStrings_RSStackEACCES, "Access denied."
+ IdResourceStrings_RSStackEFAULT, "Bad address."
+ IdResourceStrings_RSStackEINVAL, "Invalid argument."
+ IdResourceStrings_RSStackEMFILE, "Too many open files."
+ IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block. "
+ IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress."
+ IdResourceStrings_RSHTTPNotAcceptable, "Not Acceptable"
+ IdResourceStrings_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required"
+ IdResourceStrings_RSHTTPRequestTimeout, "Request Timeout"
+ IdResourceStrings_RSHTTPConflict, "Conflict"
+ IdResourceStrings_RSHTTPGone, "Gone"
+ IdResourceStrings_RSHTTPLengthRequired, "Length Required"
+ IdResourceStrings_RSHTTPPreconditionFailed, "Precondition Failed"
+ IdResourceStrings_RSHTTPRequestEntityToLong, "Request Entity To Long"
+ IdResourceStrings_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max"
+ IdResourceStrings_RSHTTPUnsupportedMediaType, "Unsupported Media Type"
+ IdResourceStrings_RSHTTPInternalServerError, "Internal Server Error"
+ IdResourceStrings_RSHTTPNotImplemented, "Not Implemented"
+ IdResourceStrings_RSHTTPBadGateway, "Bad Gateway"
+ IdResourceStrings_RSHTTPServiceUnavailable, "Service Unavailable"
+ IdResourceStrings_RSHTTPGatewayTimeout, "Gateway timeout"
+ IdResourceStrings_RSHTTPHTTPVersionNotSupported, "HTTP version not supported"
+ IdResourceStrings_RSHTTPCreated, "Created"
+ IdResourceStrings_RSHTTPAccepted, "Accepted"
+ IdResourceStrings_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information"
+ IdResourceStrings_RSHTTPNoContent, "No Content"
+ IdResourceStrings_RSHTTPResetContent, "Reset Content"
+ IdResourceStrings_RSHTTPPartialContent, "Partial Content"
+ IdResourceStrings_RSHTTPMovedPermanently, "Moved Permanently"
+ IdResourceStrings_RSHTTPMovedTemporarily, "Moved Temporarily"
+ IdResourceStrings_RSHTTPSeeOther, "See Other"
+ IdResourceStrings_RSHTTPNotModified, "Not Modified"
+ IdResourceStrings_RSHTTPUseProxy, "Use Proxy"
+ IdResourceStrings_RSHTTPBadRequest, "Bad Request"
+ IdResourceStrings_RSHTTPUnauthorized, "Unauthorized"
+ IdResourceStrings_RSHTTPForbidden, "Forbidden"
+ IdResourceStrings_RSHTTPNotFound, "Not Found"
+ IdResourceStrings_RSHTTPMethodeNotallowed, "Method not allowed"
+ IdResourceStrings_RSReadLnMaxLineLengthExceeded, "Max line length exceeded."
+ IdResourceStrings_RSNoCommandHandlerFound, "No command handler found."
+ IdResourceStrings_RSWS2CallError, "Error on call Winsock2 library function %s"
+ IdResourceStrings_RSWS2LoadError, "Error on loading Winsock2 library (%s)"
+ IdResourceStrings_RSMIMEExtensionEmpty, "Extension is empty"
+ IdResourceStrings_RSMIMEMIMETypeEmpty, "Mimetype is empty"
+ IdResourceStrings_RSMIMEMIMEExtAlreadyExists, "Extension already exits"
+ IdResourceStrings_RSStatusResolving, "Resolving hostname %s."
+ IdResourceStrings_RSStatusConnecting, "Connecting to %s."
+ IdResourceStrings_RSStatusConnected, "Connected."
+ IdResourceStrings_RSStatusDisconnecting, "Disconnecting."
+ IdResourceStrings_RSStatusDisconnected, "Disconnected."
+ IdResourceStrings_RSStatusText, "%s"
+ IdResourceStrings_RSConnectTimeout, "Connect timed out."
+ IdResourceStrings_RSHTTPContinue, "Continue"
+ IdResourceStrings_RSHTTPOK, "OK"
+ IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use."
+ IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information."
+ IdResourceStrings_RSNotEnoughDataInBuffer, "Not enough data in buffer."
+ IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error."
+ IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded."
+ IdResourceStrings_RSThreadClassNotSpecified, "Thread Class Not Specified."
+ IdResourceStrings_RSFileNotFound, "File \"%s\" not found"
+ IdResourceStrings_RSOnlyOneAntiFreeze, "Only one TIdAntiFreeze can exist per application."
+ IdResourceStrings_RSNotConnected, "Not Connected"
+ IdResourceStrings_RSObjectTypeNotSupported, "Object type not supported."
+ IdResourceStrings_RSTerminateThreadTimeout, "Terminate Thread Timeout"
+ IdResourceStrings_RSNoExecuteSpecified, "No execute handler found."
+ IdResourceStrings_RSIdNoDataToRead, "No data to read."
+ IdResourceStrings_RSCanNotBindRange, "Can not bind in port range (%d - %d)"
+ IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)"
+ IdResourceStrings_RSReadTimeout, "Read Timeout"
+ 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_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"
+ IdResourceStrings_RSCannotAllocateSocket, "Cannot allocate socket."
+ IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully."
+ uRORes_err_TypeNotSupported, "Type \"%s\" not supported"
+ 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_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 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_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_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader"
+ uRORes_err_RodlNoEnumValues, "Enum does not contain any values."
+ uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements."
+ 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\""
+ uRODECConst_sFMT_HEX, "Hexadecimal"
+ uRODECConst_sFMT_HEXL, "Hexadecimal lowercase"
+ uRODECConst_sFMT_MIME64, "MIME Base 64"
+ uRODECConst_sFMT_UU, "UU Coding"
+ uRODECConst_sFMT_XX, "XX Coding"
+ uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be to %d-%d bytes"
+ uRODECConst_sNotInitialized, "%s is not initialized call Init() or InitKey() before."
+ uRORes_err_InvalidIndex, "Invalid index %d"
+ uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\""
+ uRORes_err_InvalidStream, "Invalid stream"
+ 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."
+ ComStrs_sUDAssociated, "%s is already associated with %s"
+ ComStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d"
+ ComStrs_sInvalidComCtl32, "This control requires version 4.70 or greater of COMCTL32.DLL"
+ ComStrs_sDateTimeMax, "Date exceeds maximum of %s"
+ ComStrs_sDateTimeMin, "Date is less than minimum of %s"
+ ComStrs_sNeedAllowNone, "You must be in ShowCheckbox mode to set to this date"
+ ComStrs_sFailSetCalDateTime, "Failed to set calendar date or time"
+ ComStrs_sFailSetCalMaxSelRange, "Failed to set maximum selection range"
+ ComStrs_sFailSetCalMinMaxRange, "Failed to set calendar min/max range"
+ ComStrs_sFailsetCalSelRange, "Failed to set calendar selected range"
+ WinHelpViewer_hNoKeyword, "No help keyword specified."
+ uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid."
+ uRODECConst_sStringFormatExists, "String Format \"%d\" not exists."
+ uRODECConst_sInvalidStringFormat, "Input is not an valid %s Format."
+ uRODECConst_sInvalidFormatString, "Input can not be convert to %s Format."
+ uRODECConst_sFMT_COPY, "copy Input to Output"
+ ExtCtrls_clNameWindow, "Window Background"
+ ExtCtrls_clNameWindowFrame, "Window Frame"
+ ExtCtrls_clNameWindowText, "Window Text"
+ ComStrs_sTabFailClear, "Failed to clear tab control"
+ ComStrs_sTabFailDelete, "Failed to delete tab at index %d"
+ ComStrs_sTabFailRetrieve, "Failed to retrieve tab at index %d"
+ ComStrs_sTabFailGetObject, "Failed to get object at index %d"
+ ComStrs_sTabFailSet, "Failed to set tab \"%s\" at index %d"
+ ComStrs_sTabFailSetObject, "Failed to set object at index %d"
+ ComStrs_sTabMustBeMultiLine, "MultiLine must be True when TabPosition is tpLeft or tpRight"
+ ComStrs_sInvalidIndex, "Invalid index"
+ ComStrs_sInsertError, "Unable to insert an item"
+ ComStrs_sInvalidOwner, "Invalid owner"
+ ComStrs_sRichEditInsertError, "RichEdit line insertion error"
+ ComStrs_sRichEditLoadFail, "Failed to Load Stream"
+ ComStrs_sRichEditSaveFail, "Failed to Save Stream"
+ ExtCtrls_clNameCaptionText, "Caption Text"
+ ExtCtrls_clNameDefault, "Default"
+ ExtCtrls_clNameGrayText, "Gray Text"
+ ExtCtrls_clNameHighlight, "Highlight Background"
+ ExtCtrls_clNameHighlightText, "Highlight Text"
+ ExtCtrls_clNameInactiveBorder, "Inactive Border"
+ ExtCtrls_clNameInactiveCaption, "Inactive Caption"
+ ExtCtrls_clNameInactiveCaptionText, "Inactive Caption Text"
+ ExtCtrls_clNameInfoBk, "Info Background"
+ ExtCtrls_clNameInfoText, "Info Text"
+ ExtCtrls_clNameMenu, "Menu Background"
+ ExtCtrls_clNameMenuText, "Menu Text"
+ ExtCtrls_clNameNone, "None"
+ ExtCtrls_clNameScrollBar, "Scroll Bar"
+ ExtCtrls_clName3DDkShadow, "3D Dark Shadow"
+ ExtCtrls_clName3DLight, "3D Light"
+ ExtCtrls_clNameBlue, "Blue"
+ ExtCtrls_clNameFuchsia, "Fuchsia"
+ ExtCtrls_clNameAqua, "Aqua"
+ ExtCtrls_clNameWhite, "White"
+ ExtCtrls_clNameMoneyGreen, "Money Green"
+ ExtCtrls_clNameSkyBlue, "Sky Blue"
+ ExtCtrls_clNameCream, "Cream"
+ ExtCtrls_clNameMedGray, "Medium Gray"
+ ExtCtrls_clNameActiveBorder, "Active Border"
+ ExtCtrls_clNameActiveCaption, "Active Caption"
+ ExtCtrls_clNameAppWorkSpace, "Application Workspace"
+ ExtCtrls_clNameBackground, "Background"
+ ExtCtrls_clNameBtnFace, "Button Face"
+ ExtCtrls_clNameBtnHighlight, "Button Highlight"
+ ExtCtrls_clNameBtnShadow, "Button Shadow"
+ ExtCtrls_clNameBtnText, "Button Text"
+ HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents"
+ HelpIntfs_hNothingFound, "No help found for %s"
+ HelpIntfs_hNoContext, "No context-sensitive help installed"
+ HelpIntfs_hNoTopics, "No topic-based help system installed"
+ ExtCtrls_clNameBlack, "Black"
+ ExtCtrls_clNameMaroon, "Maroon"
+ ExtCtrls_clNameGreen, "Green"
+ ExtCtrls_clNameOlive, "Olive"
+ ExtCtrls_clNameNavy, "Navy"
+ ExtCtrls_clNamePurple, "Purple"
+ ExtCtrls_clNameTeal, "Teal"
+ ExtCtrls_clNameGray, "Gray"
+ ExtCtrls_clNameSilver, "Silver"
+ ExtCtrls_clNameRed, "Red"
+ ExtCtrls_clNameLime, "Lime"
+ ExtCtrls_clNameYellow, "Yellow"
+ Consts_SInvalidClipFmt, "Invalid clipboard format"
+ Consts_SIconToClipboard, "Clipboard does not support Icons"
+ Consts_SCannotOpenClipboard, "Cannot open clipboard"
+ 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_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_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_SNoGetItemEventHandler, "No OnGetItem event handler assigned"
+ 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_SmkcCtrl, "Ctrl+"
+ Consts_SmkcAlt, "Alt+"
+ Consts_srNone, "(None)"
+ Consts_SOutOfRange, "Value must be between %d and %d"
+ Consts_SInsertLineError, "Unable to insert a line"
+ 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_SmkcBkSp, "BkSp"
+ Consts_SmkcTab, "Tab"
+ Consts_SmkcEsc, "Esc"
+ Consts_SmkcEnter, "Enter"
+ Consts_SmkcSpace, "Space"
+ 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_SMaskEditErr, "Invalid input value. Use escape key to abandon changes"
+ Consts_SMsgDlgWarning, "Warning"
+ Consts_SMsgDlgError, "Error"
+ Consts_SMsgDlgInformation, "Information"
+ Consts_SMsgDlgConfirm, "Confirm"
+ 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_SOKButton, "OK"
+ Consts_SCancelButton, "Cancel"
+ Consts_SYesButton, "&Yes"
+ Consts_SNoButton, "&No"
+ Consts_SHelpButton, "&Help"
+ 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'"
+ 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"
+ RTLConsts_SWriteError, "Stream write error"
+ RTLConsts_SThreadCreateError, "Thread creation error: %s"
+ RTLConsts_SThreadError, "Thread Error: %s (%d)"
+ Consts_SInvalidTabPosition, "Tab position incompatible with current tab style"
+ Consts_SInvalidTabStyle, "Tab style incompatible with current tab position"
+ 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"
+ 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"
+ 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_SUnknownGroup, "%s not in a class registration group"
+ RTLConsts_SUnknownProperty, "Property %s does not exist"
+ 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_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"
+ RTLConsts_SInvalidPropertyType, "Invalid property type: %s"
+ RTLConsts_SInvalidPropertyValue, "Invalid property value"
+ 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"
+ RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found"
+ RTLConsts_SAssignError, "Cannot assign a %s to a %s"
+ RTLConsts_SBitsIndexError, "Bits index out of range"
+ RTLConsts_SCantWriteResourceStreamError, "Can't write to a read-only resource stream"
+ 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
+
diff --git a/Servidor/FactuGES_Server.res b/Servidor/FactuGES_Server.res
new file mode 100644
index 0000000..8627530
Binary files /dev/null and b/Servidor/FactuGES_Server.res differ
diff --git a/Servidor/RODLFILE.res b/Servidor/RODLFILE.res
new file mode 100644
index 0000000..968622e
Binary files /dev/null and b/Servidor/RODLFILE.res differ
diff --git a/Servidor/fServerForm.ddp b/Servidor/fServerForm.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Servidor/fServerForm.ddp differ
diff --git a/Servidor/fServerForm.dfm b/Servidor/fServerForm.dfm
new file mode 100644
index 0000000..2c21fa2
--- /dev/null
+++ b/Servidor/fServerForm.dfm
@@ -0,0 +1,1058 @@
+object ServerForm: TServerForm
+ Left = 416
+ Top = 419
+ BorderStyle = bsDialog
+ Caption = 'FactuGES Server'
+ ClientHeight = 228
+ 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
+ WindowState = wsMinimized
+ 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 PopupMenu1: TPopupMenu
+ Left = 104
+ Top = 16
+ object Listadeconexiones1: TMenuItem
+ Action = actConexiones
+ end
+ object N1: TMenuItem
+ Caption = '-'
+ end
+ object Opciones1: TMenuItem
+ Action = actOpciones
+ end
+ object Refrescarconexin1: TMenuItem
+ Action = actRestart
+ end
+ object N2: 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
+ 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/Servidor/fServerForm.pas b/Servidor/fServerForm.pas
new file mode 100644
index 0000000..65676c5
--- /dev/null
+++ b/Servidor/fServerForm.pas
@@ -0,0 +1,87 @@
+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;
+
+type
+ TServerForm = class(TForm)
+ Memo1: TMemo;
+ PopupMenu1: TPopupMenu;
+ ActionList: TActionList;
+ actCerrar: TAction;
+ Cerrar1: TMenuItem;
+ N1: TMenuItem;
+ actRestart: TAction;
+ actOpciones: TAction;
+ actConexiones: TAction;
+ Listadeconexiones1: TMenuItem;
+ Opciones1: TMenuItem;
+ Refrescarconexin1: TMenuItem;
+ N2: TMenuItem;
+ XPManifest1: TXPManifest;
+ JvTrayIcon: TJvTrayIcon;
+ Panel1: TPanel;
+ Image1: TImage;
+ JvGradient1: TJvGradient;
+ procedure actCerrarExecute(Sender: TObject);
+ procedure actRestartExecute(Sender: TObject);
+ procedure actOpcionesExecute(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure FormClose(Sender: TObject; var Action: TCloseAction);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ ServerForm: TServerForm;
+
+implementation
+
+uses
+ uDataModuleServer, uConfiguracion;
+
+
+{$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;
+ end;
+end;
+
+procedure TServerForm.FormCreate(Sender: TObject);
+begin
+ JvTrayIcon.HideApplication;
+ JvTrayIcon.Active := True;
+end;
+
+procedure TServerForm.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+ JvTrayIcon.Active := False;
+end;
+
+end.
diff --git a/Servidor/srvComisiones_Impl.ddp b/Servidor/srvComisiones_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Servidor/srvComisiones_Impl.ddp differ
diff --git a/Servidor/srvComisiones_Impl.dfm b/Servidor/srvComisiones_Impl.dfm
new file mode 100644
index 0000000..f91a5eb
--- /dev/null
+++ b/Servidor/srvComisiones_Impl.dfm
@@ -0,0 +1,424 @@
+object srvComisiones: TsrvComisiones
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ServiceSchema = schComisiones
+ ServiceAdapter = DABINAdapter
+ Left = 678
+ Top = 193
+ Height = 300
+ Width = 300
+ object schComisiones: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'select VEN.NOMBRE as VENDEDOR, COM.COMISION as PORCENTAJE, 0 as ' +
+ 'COMISION'#10'from CONTACTOS VEN, CONTACTOSCATEGORIAS CAT, COMISIONES' +
+ ' COM'#10'where CAT.CODIGOCONTACTO = VEN.CODIGO'#10'and COM.CODIGOCONTACT' +
+ 'O = VEN.CODIGO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VENDEDOR'
+ TableField = 'VENDEDOR'
+ end
+ item
+ DatasetField = 'PORCENTAJE'
+ TableField = 'PORCENTAJE'
+ end
+ item
+ DatasetField = 'COMISION'
+ TableField = 'COMISION'
+ end>
+ end>
+ Name = 'VENDEDORESCOMISION'
+ Fields = <
+ item
+ Name = 'VENDEDOR'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vendedor'
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PORCENTAJE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DefaultValue = '0'
+ DisplayWidth = 0
+ DisplayLabel = 'Porcentaje'
+ ReadOnly = True
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'COMISION'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ DefaultValue = '0'
+ DisplayWidth = 0
+ DisplayLabel = 'Comisi'#243'n'
+ Alignment = taRightJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'COMISIONES'
+ SQL =
+ 'SELECT '#10' COMISION'#10' FROM'#10' COMISIONES'#10'WHERE CODIGOCONTACTO ' +
+ '= :CODIGOCONTACTO'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'COMISION'
+ TableField = 'COMISION'
+ end>
+ end>
+ Name = 'COMISIONES'
+ Fields = <
+ item
+ Name = 'COMISION'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ LogChanges = False
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <
+ item
+ Name = 'FECHAINI'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'FECHAFIN'
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'SELECT'#10' 1 as SELECCION, PAGOS.CODIGOEMPRESA, PAGOS.CODIGO, PA' +
+ 'GOS.CODIGOCONTACTO,'#10' CONTACTOS.NOMBRE, PAGOS.FECHAPAGO, PAGOS' +
+ '.IMPORTE, PAGOS.FORMAPAGO, PAGOS.DESCRIPCION,'#10' CONTACTOSCATEG' +
+ 'ORIAS.CODIGOCATEGORIA, CATEGORIAS.DESCRIPCION as CATEGORIA'#10#10'FROM' +
+ ' PAGOS'#10'LEFT JOIN CONTACTOS ON (PAGOS.CODIGOCONTACTO = CONTACTOS.' +
+ 'CODIGO)'#10'LEFT JOIN CONTACTOSCATEGORIAS ON (CONTACTOS.CODIGO = CON' +
+ 'TACTOSCATEGORIAS.CODIGOCONTACTO)'#10'LEFT JOIN CATEGORIAS ON (CONTAC' +
+ 'TOSCATEGORIAS.CODIGOCATEGORIA = CATEGORIAS.CODIGO)'#10#10'WHERE CONTAC' +
+ 'TOSCATEGORIAS.CODIGOCATEGORIA = 1'#10'AND PAGOS.FECHAPAGO between :F' +
+ 'ECHAINI and :FECHAFIN'#10'ORDER BY PAGOS.FECHAPAGO DESC'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'SELECCION'
+ TableField = 'SELECCION'
+ end
+ item
+ DatasetField = 'CODIGOEMPRESA'
+ TableField = 'CODIGOEMPRESA'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'CODIGOCONTACTO'
+ TableField = 'CODIGOCONTACTO'
+ end
+ item
+ DatasetField = 'NOMBRE'
+ TableField = 'NOMBRE'
+ end
+ item
+ DatasetField = 'FECHAPAGO'
+ TableField = 'FECHAPAGO'
+ end
+ item
+ DatasetField = 'IMPORTE'
+ TableField = 'IMPORTE'
+ end
+ item
+ DatasetField = 'FORMAPAGO'
+ TableField = 'FORMAPAGO'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGOCATEGORIA'
+ TableField = 'CODIGOCATEGORIA'
+ end
+ item
+ DatasetField = 'CATEGORIA'
+ TableField = 'CATEGORIA'
+ end>
+ end>
+ Name = 'COBROSCOMISION'
+ Fields = <
+ item
+ Name = 'SELECCION'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'IMPORTE'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ ReadOnly = True
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'CATEGORIA'
+ DataType = datString
+ Size = 100
+ 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 = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'COMISION'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'COMISIONES'
+ SQL =
+ 'INSERT'#10' INTO COMISIONES'#10' (CODIGOCONTACTO, COMISION)'#10' VALUES' +
+ #10' (:CODIGOCONTACTO, :COMISION)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Insert_COMISIONES'
+ end
+ item
+ Params = <
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'COMISIONES'
+ SQL =
+ 'DELETE '#10' FROM'#10' COMISIONES'#10' WHERE'#10' (CODIGOCONTACTO = :COD' +
+ 'IGOCONTACTO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Delete_COMISIONES'
+ end
+ item
+ Params = <
+ item
+ Name = 'COMISION'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'COMISIONES'
+ SQL =
+ 'UPDATE COMISIONES'#10' SET '#10' COMISION = :COMISION'#10' WHERE'#10' (C' +
+ 'ODIGOCONTACTO = :CODIGOCONTACTO)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_COMISIONES'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 32
+ Top = 24
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 32
+ Top = 80
+ end
+end
diff --git a/Servidor/srvComisiones_Impl.pas b/Servidor/srvComisiones_Impl.pas
new file mode 100644
index 0000000..88ecfc8
--- /dev/null
+++ b/Servidor/srvComisiones_Impl.pas
@@ -0,0 +1,91 @@
+unit srvComisiones_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDataModuleServer, uDADataTable,
+ uDABINAdapter;
+
+type
+ { TsrvComisiones }
+ TsrvComisiones = class(TDARemoteService, IsrvComisiones)
+ DABINAdapter: TDABINAdapter;
+ schComisiones: TDASchema;
+ private
+ protected
+ function GetComision(const CodigoContacto: Integer): Double;
+ procedure SetComision(const CodigoContacto: Integer; const Value: Double);
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk,
+ uDAInterfaces, Dialogs;
+
+procedure Create_srvComisiones(out anInstance : IUnknown);
+begin
+ anInstance := TsrvComisiones.Create(NIL);
+end;
+
+{ srvComisiones }
+{ TsrvComisiones }
+
+function TsrvComisiones.GetComision(const CodigoContacto: Integer): Double;
+var
+ dsComision: IDADataset;
+begin
+ Result := 0;
+ Connection.BeginTransaction;
+ try
+ dsComision := schComisiones.NewDataset(Connection, 'COMISIONES', ['CODIGOCONTACTO'], [CodigoContacto]);
+ dsComision.Open;
+ if dsComision.RecordCount > 0 then
+ Result := dsComision.FieldValues[0];
+ dsComision.Close;
+ except
+ on E: Exception do
+ Result := 0;
+ end;
+ Connection.RollbackTransaction;
+end;
+
+procedure TsrvComisiones.SetComision(const CodigoContacto: Integer;
+ const Value: Double);
+var
+ dsComision: IDASQLCommand;
+begin
+ Connection.BeginTransaction;
+ try
+ dsComision := schComisiones.NewCommand(Connection, 'Update_COMISIONES', ['CODIGOCONTACTO', 'COMISION'], [CodigoContacto, Value], False);
+ if dsComision.Execute = 0 then
+ // No Existe la fila asi que la insertamos
+ dsComision := schComisiones.NewCommand(Connection, 'Insert_COMISIONES', ['CODIGOCONTACTO', 'COMISION'], [CodigoContacto, Value]);
+ Connection.CommitTransaction;
+ except
+ on E: Exception do
+ begin
+ Connection.RollbackTransaction;
+ raise;
+ end;
+ end;
+end;
+
+initialization
+ TROClassFactory.Create('srvComisiones', Create_srvComisiones, TsrvComisiones_Invoker);
+
+finalization
+
+end.
diff --git a/Servidor/srvConfiguracion_Impl.ddp b/Servidor/srvConfiguracion_Impl.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Servidor/srvConfiguracion_Impl.ddp differ
diff --git a/Servidor/srvConfiguracion_Impl.dfm b/Servidor/srvConfiguracion_Impl.dfm
new file mode 100644
index 0000000..a094236
--- /dev/null
+++ b/Servidor/srvConfiguracion_Impl.dfm
@@ -0,0 +1,59 @@
+object srvConfiguracion: TsrvConfiguracion
+ OldCreateOrder = True
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schConfiguracion
+ ServiceAdapter = DABINAdapter
+ Left = 707
+ Top = 109
+ Height = 161
+ Width = 300
+ object schConfiguracion: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = dmServer.DataDictionary
+ Diagrams = dmServer.DADiagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'INTERVALOS'
+ SQL = 'SELECT VALOR'#10'FROM CONFIGURACION'#10'WHERE CODIGO = '#39'PATH_DOCUMENTOS'#39
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VALOR'
+ TableField = 'VALOR'
+ end>
+ end>
+ Name = 'darRutaDocumentos'
+ Fields = <
+ item
+ Name = 'VALOR'
+ DataType = datString
+ Size = 100
+ 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 = 40
+ Top = 16
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Servidor/srvConfiguracion_Impl.pas b/Servidor/srvConfiguracion_Impl.pas
new file mode 100644
index 0000000..1646e54
--- /dev/null
+++ b/Servidor/srvConfiguracion_Impl.pas
@@ -0,0 +1,66 @@
+unit srvConfiguracion_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,
+ {Ancestor Implementation:} DARemoteService_Impl,
+ {Used RODLs:} DataAbstract_Intf,
+// {Generated:} FactuGES_Intf, uDAClasses;
+ {Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
+ uDABusinessProcessor, uDADataTable, uDABINAdapter;
+
+
+type
+ { TsrvConfiguracion }
+ TsrvConfiguracion = class(TDARemoteService, IsrvConfiguracion)
+ schConfiguracion: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ private
+ protected
+ { IsrvConfiguracion methods }
+ function darRutaDocumentos: String;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDAInterfaces, uDataModuleServer;
+
+procedure Create_srvConfiguracion(out anInstance : IUnknown);
+begin
+ anInstance := TsrvConfiguracion.Create(NIL);
+end;
+
+{ srvConfiguracion }
+function TsrvConfiguracion.darRutaDocumentos: String;
+var
+ ADataSet : IDADataset;
+begin
+ try
+ Result:= '';
+ ADataSet := schConfiguracion.NewDataset(Connection, 'darRutaDocumentos');
+ ADataSet.Open;
+ if ADataSet.Dataset.RecordCount > 0 then
+ Result := ADataSet.Dataset.Fields[0].AsString;
+ finally
+ ADataSet.Close;
+ end;
+end;
+
+initialization
+ TROClassFactory.Create('srvConfiguracion', Create_srvConfiguracion, TsrvConfiguracion_Invoker);
+
+finalization
+
+end.
diff --git a/Servidor/srvLogin_Impl.dfm b/Servidor/srvLogin_Impl.dfm
new file mode 100644
index 0000000..424fa49
--- /dev/null
+++ b/Servidor/srvLogin_Impl.dfm
@@ -0,0 +1,179 @@
+object srvLogin: TsrvLogin
+ OldCreateOrder = True
+ SessionManager = dmServer.SessionManager
+ OnActivate = DALoginServiceActivate
+ AcquireConnection = True
+ ConnectionName = 'IBX'
+ ServiceSchema = schLogin
+ ServiceAdapter = DABINAdapter
+ Height = 282
+ Width = 282
+ object schLogin: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ Datasets = <
+ item
+ Params = <
+ item
+ Name = 'USERID'
+ DataType = datString
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'PASSWORD'
+ DataType = datString
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'USUARIOS'
+ SQL =
+ 'SELECT '#10' ID, PASS, SESSIONID, ROL'#10' FROM'#10' USUARIOS, ROLES'#10 +
+ ' WHERE ID = :USERID AND'#10' PASS = :PASSWORD AND'#10' US' +
+ 'ERID = ID;'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end
+ item
+ DatasetField = 'PASS'
+ TableField = 'PASS'
+ end
+ item
+ DatasetField = 'SESSIONID'
+ TableField = 'SESSIONID'
+ end
+ item
+ DatasetField = 'ROL'
+ TableField = 'ROL'
+ end>
+ end>
+ Name = 'GetLoginInfo'
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datString
+ Size = 8
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'PASS'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'SESSIONID'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ROL'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'USUARIOS'
+ SQL = 'SELECT '#10' ID'#10' FROM'#10' USUARIOS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end>
+ end>
+ Name = 'Usuarios'
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datString
+ Size = 8
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'PASSWORD'
+ DataType = datString
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'USERID'
+ DataType = datString
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'USUARIOS'
+ SQL =
+ 'UPDATE'#10' USUARIOS'#10' SET'#10' PASS = :PASSWORD'#10' WHERE'#10' ID = ' +
+ ':USERID'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'SetUserPassword'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 24
+ Top = 24
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 24
+ Top = 88
+ end
+end
diff --git a/Servidor/srvLogin_Impl.pas b/Servidor/srvLogin_Impl.pas
new file mode 100644
index 0000000..93f715f
--- /dev/null
+++ b/Servidor/srvLogin_Impl.pas
@@ -0,0 +1,141 @@
+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,
+ {Ancestor Implementation:} DARemoteService_Impl,
+ {Used RODLs:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDAClasses, uDAInterfaces, uDAEngine,
+ uDAIBXDriver, uDADataTable, uDABINAdapter;
+
+type
+ { TsrvLogin }
+ TsrvLogin = class(TDARemoteService, IsrvLogin)
+ schLogin: TDASchema;
+ DABINAdapter: TDABINAdapter;
+ procedure DALoginServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+ 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:} FactuGES_Invk, uDataModuleServer,
+ Dialogs, IB, Variants, schContactosServer_Intf;
+
+
+procedure Create_srvLogin(out anInstance : IUnknown);
+begin
+ anInstance := TsrvLogin.Create(NIL);
+end;
+
+{ TsrvLogin }
+
+procedure TsrvLogin.DALoginServiceActivate(const aClientID: TGUID;
+ aSession: TROSession; const aMessage: IROMessage);
+begin
+ ((Connection as IDAConnectionObjectAccess).ConnectionObject as
+ TIBXConnection).Database.TraceFlags := [tfQPrepare, tfQExecute, tfQFetch, tfError, tfStmt, tfConnect, tfTransact, tfBlob, tfService, tfMisc];
+end;
+
+function TsrvLogin.Login(const UserID, Password: String;
+ out LoginInfo: TLoginInfo): Boolean;
+var
+ dsUserInfo,
+ dsRoles,
+ dsPrivilegios : IDADataset;
+begin
+ LoginInfo := NIL;
+ Result := False;
+
+ dsUserInfo := schLogin.NewDataset(Connection, 'GetLoginInfo', ['UserID', 'Password'], [UserID, Password]);
+
+ if (dsUserInfo.RecordCount = 1) 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/Servidor/uConexionBD.dfm b/Servidor/uConexionBD.dfm
new file mode 100644
index 0000000..4c8ba7e
--- /dev/null
+++ b/Servidor/uConexionBD.dfm
@@ -0,0 +1,153 @@
+inherited frConexionBD: TfrConexionBD
+ object GroupBox1: TGroupBox
+ Left = 8
+ Top = 8
+ Width = 375
+ Height = 209
+ Caption = 'Servidor de base de datos'
+ TabOrder = 0
+ DesignSize = (
+ 375
+ 209)
+ object Label1: TLabel
+ Left = 18
+ Top = 30
+ 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 Label3: TLabel
+ Left = 18
+ Top = 92
+ Width = 71
+ Height = 13
+ Caption = 'Base de datos:'
+ end
+ object Label4: TLabel
+ Left = 18
+ Top = 150
+ Width = 36
+ Height = 13
+ Caption = 'Usuario'
+ end
+ object Label5: TLabel
+ Left = 18
+ Top = 180
+ Width = 57
+ Height = 13
+ Caption = 'Contrase'#241'a:'
+ end
+ object Bevel1: TBevel
+ Left = 16
+ Top = 120
+ 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 edtPort: TEdit
+ Left = 128
+ Top = 56
+ Width = 116
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 1
+ Text = '3050'
+ OnExit = edtPortExit
+ end
+ object edtUser: TEdit
+ Left = 128
+ Top = 144
+ Width = 116
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 3
+ Text = 'sysdba'
+ end
+ object edtPassword: TEdit
+ Left = 128
+ Top = 176
+ Width = 116
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ PasswordChar = '*'
+ TabOrder = 4
+ end
+ object edtPath: TcxButtonEdit
+ Left = 128
+ Top = 88
+ Properties.Buttons = <
+ item
+ Default = True
+ Kind = bkEllipsis
+ end>
+ Properties.OnButtonClick = cxButtonEdit1PropertiesButtonClick
+ Style.LookAndFeel.Kind = lfUltraFlat
+ Style.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.Kind = lfUltraFlat
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.Kind = lfUltraFlat
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.Kind = lfUltraFlat
+ StyleHot.LookAndFeel.NativeStyle = True
+ TabOrder = 2
+ Width = 231
+ end
+ end
+ object bProbar: TButton
+ Left = 240
+ Top = 224
+ Width = 143
+ Height = 25
+ Caption = 'Probar la conexi'#243'n'
+ TabOrder = 1
+ OnClick = bProbarClick
+ end
+ object OpenDialog: TOpenDialog
+ Filter = 'Base de datos Firebird (*.fdb)|*.FDB'
+ Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing]
+ Title = 'Abrir base de datos Firebird'
+ Left = 264
+ Top = 56
+ end
+ object IBServerProperties: TIBServerProperties
+ ServerName = 'localhost'
+ Params.Strings = (
+ 'user_name=user'
+ 'password=pass')
+ LoginPrompt = False
+ TraceFlags = []
+ Options = []
+ Left = 208
+ Top = 224
+ end
+ object IBDatabase: TIBDatabase
+ DatabaseName = 'server:dasadsads'
+ Params.Strings = (
+ 'user_name=sysdba'
+ 'password=masterkey'
+ 'lc_ctype=ISO8859_1')
+ LoginPrompt = False
+ IdleTimer = 0
+ SQLDialect = 3
+ TraceFlags = []
+ Left = 176
+ Top = 224
+ end
+end
diff --git a/Servidor/uConexionBD.pas b/Servidor/uConexionBD.pas
new file mode 100644
index 0000000..3e8d65c
--- /dev/null
+++ b/Servidor/uConexionBD.pas
@@ -0,0 +1,107 @@
+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, uConfiguracion, uFrameConfiguracion;
+
+type
+ TfrConexionBD = class(TFrameConfiguracion)
+ GroupBox1: TGroupBox;
+ edtServer: TEdit;
+ edtPort: TEdit;
+ Label1: TLabel;
+ Label2: TLabel;
+ Label3: TLabel;
+ bProbar: TButton;
+ Label4: TLabel;
+ edtUser: TEdit;
+ Label5: TLabel;
+ edtPassword: TEdit;
+ Bevel1: TBevel;
+ OpenDialog: TOpenDialog;
+ edtPath: TcxButtonEdit;
+ IBServerProperties: TIBServerProperties;
+ IBDatabase: TIBDatabase;
+ procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject;
+ AButtonIndex: Integer);
+ procedure bProbarClick(Sender: TObject);
+ procedure edtPortExit(Sender: TObject);
+ protected
+ procedure Finalize; override;
+ public
+ procedure Init; override;
+ end;
+
+implementation
+
+uses uDataModuleServer;
+
+{$R *.dfm}
+
+procedure TfrConexionBD.cxButtonEdit1PropertiesButtonClick(Sender: TObject;
+ AButtonIndex: Integer);
+begin
+ if OpenDialog.Execute then
+ edtPath.Text := OpenDialog.FileName;
+end;
+
+procedure TfrConexionBD.bProbarClick(Sender: TObject);
+var
+ Aux : string;
+begin
+ with IBDatabase do
+ begin
+ Connected := False;
+ DatabaseName := edtServer.Text + '/' + edtPort.Text + ':' + edtPath.Text;
+ LoginPrompt := False;
+
+ Params.Clear;
+ Params.Add('lc_ctype=ISO8859_1');
+ Params.Add('user_name=' + edtUser.Text);
+ Params.Add('password=' + edtPassword.Text);
+
+ try
+ Connected := True;
+ Application.MessageBox('Conexión válida con la base de datos.', 'FactuGES', MB_OK);
+ Connected := False;
+ except
+ on E : Exception do
+ begin
+ 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;
+ edtPort.Text := dmServer.FDBPort;
+ edtPath.Text := dmServer.FDBPath;
+ edtUser.Text := dmServer.FDBUser;
+ edtPassword.Text := Decrypt(dmServer.FDBPass);
+end;
+
+procedure TfrConexionBD.Finalize;
+begin
+ dmServer.FDBServer := edtServer.Text;
+ dmServer.FDBPort := edtPort.Text;
+ dmServer.FDBPath := edtPath.Text;
+ dmServer.FDBUser := edtUser.Text;
+ dmServer.FDBPass := Encrypt(edtPassword.Text);
+end;
+
+procedure TfrConexionBD.edtPortExit(Sender: TObject);
+begin
+ inherited;
+ if Length(edtPort.Text) = 0 then
+ edtPort.Text := '3050';
+end;
+
+end.
diff --git a/Servidor/uConfGeneral.dfm b/Servidor/uConfGeneral.dfm
new file mode 100644
index 0000000..9edcb03
--- /dev/null
+++ b/Servidor/uConfGeneral.dfm
@@ -0,0 +1,39 @@
+inherited frConfGeneral: TfrConfGeneral
+ Width = 519
+ 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/Servidor/uConfGeneral.pas b/Servidor/uConfGeneral.pas
new file mode 100644
index 0000000..3327901
--- /dev/null
+++ b/Servidor/uConfGeneral.pas
@@ -0,0 +1,55 @@
+unit uConfGeneral;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, uFrameConfiguracion, StdCtrls;
+
+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;
+
+var
+ frConfGeneral: TfrConfGeneral;
+
+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 := '8099';
+end;
+
+end.
diff --git a/Servidor/uConfiguracion.ddp b/Servidor/uConfiguracion.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Servidor/uConfiguracion.ddp differ
diff --git a/Servidor/uConfiguracion.dfm b/Servidor/uConfiguracion.dfm
new file mode 100644
index 0000000..6b819fb
--- /dev/null
+++ b/Servidor/uConfiguracion.dfm
@@ -0,0 +1,165 @@
+object fConfiguracion: TfConfiguracion
+ Left = 577
+ Top = 267
+ BorderStyle = bsDialog
+ Caption = 'Configuraci'#243'n'
+ ClientHeight = 443
+ ClientWidth = 617
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object tvArbol: TTreeView
+ Left = 8
+ Top = 8
+ Width = 193
+ Height = 385
+ Images = PngImageList1
+ Indent = 19
+ ReadOnly = True
+ RowSelect = True
+ ShowRoot = False
+ TabOrder = 0
+ OnChange = tvArbolChange
+ end
+ object Button1: TButton
+ Left = 445
+ Top = 407
+ Width = 75
+ Height = 25
+ Action = actAceptar
+ ModalResult = 1
+ TabOrder = 1
+ end
+ object Button2: TButton
+ Left = 533
+ Top = 407
+ Width = 75
+ Height = 25
+ Action = actCancelar
+ Cancel = True
+ ModalResult = 2
+ TabOrder = 2
+ end
+ object pnlPagina: TTabControl
+ Left = 208
+ Top = 8
+ Width = 401
+ Height = 385
+ TabOrder = 3
+ object pnlHeader: TJvGradientHeaderPanel
+ Left = 4
+ Top = 6
+ Width = 393
+ Height = 30
+ GradientStartColor = clGradientActiveCaption
+ GradientEndColor = clGradientInactiveCaption
+ GradientSteps = 255
+ GradientStyle = grHorizontal
+ LabelCaption = 'Put your text here ...'
+ LabelFont.Charset = DEFAULT_CHARSET
+ LabelFont.Color = clCaptionText
+ LabelFont.Height = -11
+ LabelFont.Name = 'MS Sans Serif'
+ LabelFont.Style = [fsBold]
+ LabelAlignment = taLeftJustify
+ Align = alTop
+ BevelInner = bvNone
+ BevelOuter = bvNone
+ DoubleBuffered = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = [fsBold]
+ TabOrder = 0
+ 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/Servidor/uConfiguracion.pas b/Servidor/uConfiguracion.pas
new file mode 100644
index 0000000..d79484f
--- /dev/null
+++ b/Servidor/uConfiguracion.pas
@@ -0,0 +1,108 @@
+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;
+
+type
+ TfConfiguracion = class(TForm)
+ tvArbol: TTreeView;
+ Button1: TButton;
+ Button2: TButton;
+ ActionList1: TActionList;
+ actAceptar: TAction;
+ actCancelar: TAction;
+ JvAppRegistryStorage1: TJvAppRegistryStorage;
+ pnlPagina: TTabControl;
+ PngImageList1: TPngImageList;
+ pnlHeader: TJvGradientHeaderPanel;
+ procedure FormCreate(Sender: TObject);
+ procedure tvArbolChange(Sender: TObject; Node: TTreeNode);
+ procedure actAceptarExecute(Sender: TObject);
+ procedure actCancelarExecute(Sender: TObject);
+ private
+ FPaginaActual : IConfiguracionFrame;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ fConfiguracion: TfConfiguracion;
+
+implementation
+
+uses uConexionBD, uDataModuleServer, uConfGeneral;
+
+{$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;
+
+constructor TfConfiguracion.Create(AOwner: TComponent);
+begin
+ inherited;
+end;
+
+destructor TfConfiguracion.Destroy;
+begin
+ inherited;
+end;
+
+procedure TfConfiguracion.FormCreate(Sender: TObject);
+var
+ ANode: TTreeNode;
+begin
+ with tvArbol.Items do
+ begin
+ ANode := AddChild(NIL, 'General');
+ ANode.ImageIndex := ANode.Index;
+ ANode := AddChild(NIL, 'Conexión con servidor de BD');
+ ANode.ImageIndex := ANode.Index;
+ end;
+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);
+ 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;
+
+end.
diff --git a/Servidor/uDataModuleServer.ddp b/Servidor/uDataModuleServer.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Servidor/uDataModuleServer.ddp differ
diff --git a/Servidor/uDataModuleServer.dfm b/Servidor/uDataModuleServer.dfm
new file mode 100644
index 0000000..40ec0ec
--- /dev/null
+++ b/Servidor/uDataModuleServer.dfm
@@ -0,0 +1,794 @@
+object dmServer: TdmServer
+ OldCreateOrder = False
+ OnCreate = DataModuleCreate
+ OnDestroy = DataModuleDestroy
+ Height = 307
+ Width = 288
+ object HTTPServer: TROIndyHTTPServer
+ Encryption.UseCompression = True
+ Dispatchers = <
+ item
+ Name = 'BINMessage'
+ Message = BINMessage
+ Enabled = True
+ PathInfo = 'Bin'
+ end>
+ OnBeforeServerActivate = HTTPServerBeforeServerActivate
+ IndyServer.Bindings = <>
+ IndyServer.CommandHandlers = <>
+ IndyServer.DefaultPort = 8099
+ IndyServer.Greeting.NumericCode = 0
+ IndyServer.MaxConnectionReply.NumericCode = 0
+ IndyServer.ReplyExceptionCode = 0
+ IndyServer.ReplyTexts = <>
+ IndyServer.ReplyUnknownCommand.NumericCode = 0
+ IndyServer.KeepAlive = True
+ Port = 8099
+ KeepAlive = True
+ Left = 40
+ Top = 16
+ end
+ object BINMessage: TROBinMessage
+ Left = 136
+ Top = 16
+ end
+ object IBXDriver: TDAIBXDriver
+ Left = 224
+ Top = 80
+ end
+ object DriverManager: TDADriverManager
+ DriverDirectory = '%SYSTEM%\'
+ AutoLoad = False
+ TraceActive = False
+ TraceFlags = []
+ Left = 136
+ Top = 80
+ end
+ object ConnectionManager: TDAConnectionManager
+ MaxPoolSize = 10
+ PoolTimeoutSeconds = 60
+ PoolBehaviour = pbWait
+ WaitIntervalSeconds = 1
+ Connections = <
+ item
+ Name = 'IBX'
+ ConnectionString =
+ 'IBX?Server=david;Database=D:\Proyectos\FactuGES (Arribas)\Codigo' +
+ '\BD\BASEDATOS.FDB;UserID=sysdba;Password=masterkey;dialect=3;'
+ Default = True
+ Tag = 0
+ end>
+ DriverManager = DriverManager
+ PoolingEnabled = True
+ Left = 40
+ Top = 80
+ end
+ object SessionManager: TROInMemorySessionManager
+ SessionDuration = -1
+ Left = 136
+ Top = 144
+ end
+ object DataDictionary: TDADataDictionary
+ Fields = <
+ item
+ Name = 'CODIGOEMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. empresa'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Notas'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CALLE'
+ DataType = datString
+ Size = 150
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Calle'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PROVINCIA'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Provincia'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOPOSTAL'
+ DataType = datString
+ Size = 5
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. postal'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'POBLACION'
+ DataType = datString
+ Size = 40
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Poblaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TELEFONOPARTICULAR'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tlf. particular'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TELEFONOTRABAJO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tlf. trabajo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'MOVIL'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'M'#243'vil'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FAX'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fax'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CORREO1'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'E-mail'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CORREO2'
+ DataType = datString
+ Size = 60
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'E-mail'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PAGINAWEB'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'P'#225'gina web'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGO (GENERICO)'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOCATEGORIA_GEN'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CATEGORIAS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. categor'#237'a'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAALTA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de alta'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'USUARIO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Usuario de alta'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'NIFCIF'
+ DataType = datString
+ Size = 10
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'NIF/CIF'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'NOMBRE'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Nombre'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PERSONACONTACTO'
+ DataType = datString
+ Size = 100
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Persona de contacto'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOCATEGORIA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. categor'#237'a'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOCONTACTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. contacto'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'REFERENCIA'
+ DataType = datString
+ Size = 20
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencia'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TIPOPRESUPUESTO'
+ DataType = datString
+ Size = 10
+ Description = 'Cocina, ba'#241'o, etc'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'VIGENCIAPRESUPUESTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vigencia'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'SITUACIONPRESUPUESTO'
+ DataType = datString
+ Size = 30
+ Description = 'Pendiente, aceptado o rechazado'
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHADECISION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha decisi'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'BASEIMPONIBLE'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Base imponible'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descuento'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IMPORTEDESCUENTO'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe dto.'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IVA'
+ DataType = datFloat
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IMPORTEIVA'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe IVA'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IMPORTETOTAL'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe total'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'OBSERVACIONES'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Observaciones'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PLAZOENTREGA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Plazo de entrega'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FORMAPAGO'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Forma de pago'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'NUMCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Num. concepto'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CANTIDAD'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Cantidad'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IMPORTEUNIDAD'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe unitario'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TIPODETALLESPRESUPUESTO'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOPRESUPUESTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. presupuesto'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'DESCRIPCIONCONCEPTO'
+ DataType = datString
+ Size = 2000
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Descripci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'POSICIONCONCEPTO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Posici'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOPEDIDO_GEN'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_PEDIDOS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOPEDIDO'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. pedido'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOALMACEN'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOMONTAJE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. montaje'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'FECHAPEDIDO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHACONFIRMACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Confirmaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'SITUACIONPEDIDO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAENTREGA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Entrega'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PedidosProveedor_DIRECCIONCOMPLETA'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PedidosProveedor_INCIDENCIAS'
+ DataType = datMemo
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOALBARANCLIENTE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. albar'#225'n'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'FECHAALBARANCLIENTE'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'SITUACIONALBARANCLIENTE'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAPAGO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de pago'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TIPODETALLESALBARANCLIENTE'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tipo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TELEFONO'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Tel'#233'fono'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOALMACEN_GEN'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ALMACENES'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. almac'#233'n'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOARTICULO_GEN'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_ARTICULOS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. art'#237'culo'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'FECHAINI'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Inicio'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAFIN'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Finalizaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'SITUACIONMONTAJE'
+ DataType = datString
+ Size = 30
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Situaci'#243'n'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAFACTURA'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAVENCIMIENTO'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Vencimiento'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOFACTURA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. factura'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Visible'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'PUNTOS'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Puntos'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'IMPORTEPUNTOS'
+ DataType = datCurrency
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Importe puntos'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'FECHAMODIFICACION'
+ DataType = datDateTime
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Fecha de pago'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'CODIGOCUENTA_GEN'
+ DataType = datAutoInc
+ BlobType = dabtUnknown
+ GeneratorName = 'GEN_CUENTAS'
+ Required = True
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'd. cuenta'
+ Alignment = taLeftJustify
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'CODIGOFACTURACLIENTE'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'CODIGOFACTURA'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'TIPODETALLESFACTURACLIENTE'
+ DataType = datString
+ Size = 1
+ Description = 'Cap'#237'tulo, etc'
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'TIPO'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'DetallesFacturasCliente_VISIBLE'
+ DataType = datString
+ Size = 1
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'VISIBLE'
+ Alignment = taLeftJustify
+ end>
+ Left = 40
+ Top = 144
+ end
+ object DADiagrams: TDADiagrams
+ Left = 224
+ 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'
+ Root = 'Software\%APPL_NAME%'
+ SubStorages = <>
+ Left = 136
+ Top = 208
+ end
+end
diff --git a/Servidor/uDataModuleServer.pas b/Servidor/uDataModuleServer.pas
new file mode 100644
index 0000000..16629fa
--- /dev/null
+++ b/Servidor/uDataModuleServer.pas
@@ -0,0 +1,204 @@
+unit uDataModuleServer;
+
+interface
+
+uses
+ SysUtils, Classes, uDAEngine, uDAIBXDriver, uDAClasses, uDADriverManager,
+ uROClient, uROBinMessage, uROServer, uROIndyTCPServer, uROIndyHTTPServer,
+ uROSessions, uDADataTable, uDABINAdapter, IBSQLMonitor, JvComponent,
+ JvAppStorage, JvAppRegistryStorage, uDAInterfaces, JvLogFile,
+ JvComponentBase;
+
+type
+ TdmServer = class(TDataModule)
+ HTTPServer: TROIndyHTTPServer;
+ BINMessage: TROBinMessage;
+ IBXDriver: TDAIBXDriver;
+ DriverManager: TDADriverManager;
+ SessionManager: TROInMemorySessionManager;
+ DADiagrams: TDADiagrams;
+ JvAppRegistryStorage: TJvAppRegistryStorage;
+ ConnectionManager: TDAConnectionManager;
+ DataDictionary: TDADataDictionary;
+ procedure DataModuleCreate(Sender: TObject);
+ procedure DataModuleDestroy(Sender: TObject);
+ procedure HTTPServerBeforeServerActivate(Sender: TObject);
+ private
+ FConnectionName : string;
+ function GetConnectionString: string;
+ property ConnectionString : string read GetConnectionString;
+ public
+ FDBServer : string;
+ FDBPort : string;
+ FDBPath : string;
+ FDBUser : string;
+ FDBPass : string;
+ FInicioWindows : Boolean;
+ FServerPort : string;
+ procedure LeerConfiguracion;
+ procedure SalvarConfiguracion;
+ procedure RefrescarConexion;
+ 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;
+
+var
+ dmServer: TdmServer;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, fServerForm, Registry, Windows, Dialogs;
+
+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.DataModuleCreate(Sender: TObject);
+begin
+ LeerConfiguracion;
+ RefrescarConexion;
+end;
+
+function TdmServer.GetConnectionString: string;
+begin
+ Result := 'IBX?Server=' + FDBServer + '/' + FDBPort
+ + ';Database=' + FDBPath
+ + ';UserID=' + FDBUser
+ + ';Password=' + Decrypt(FDBPass)
+ + ';Dialect=3;Charset=ISO8859_1;';
+end;
+
+procedure TdmServer.LeerConfiguracion;
+begin
+ with JvAppRegistryStorage do
+ begin
+ FDBServer := ReadString('ServerDB');
+ FDBPort := ReadString('PortDB');
+ FDBPath := ReadString('PathDB');
+ FDBUser := ReadString('UserDB');
+ FDBPass := ReadString('PassDB');
+
+ FServerPort := ReadString('ServerPort');
+ FInicioWindows := ReadBoolean('InicioWindows');
+ end;
+end;
+
+procedure TdmServer.SalvarConfiguracion;
+begin
+ with JvAppRegistryStorage do
+ begin
+ BeginUpdate;
+ try
+ WriteString('ServerDB', FDBServer);
+ WriteString('PortDB', FDBPort);
+ WriteString('PathDB', FDBPath);
+ WriteString('UserDB', FDBUser);
+ WriteString('PassDB', FDBPass);
+ WriteString('ServerPort', FServerPort);
+
+ WriteBoolean('InicioWindows', FInicioWindows);
+ if FInicioWindows then
+ WriteAutoRun('FactuGES_Server', Application.ExeName)
+ else
+ DeleteAutoRun('FactuGES_Server');
+ finally
+ EndUpdate
+ end;
+ end;
+end;
+
+procedure TdmServer.DataModuleDestroy(Sender: TObject);
+begin
+// HTTPServer.Active := False;
+end;
+
+procedure TdmServer.RefrescarConexion;
+begin
+ HTTPServer.Active := False;
+ ConnectionManager.Connections.GetDefaultConnection.ConnectionString := '';
+
+ ConnectionName := ConnectionManager.GetDefaultConnectionName;
+ ConnectionManager.Connections.GetDefaultConnection.ConnectionString := GetConnectionString;
+
+ HTTPServer.Active := TRUE;
+end;
+
+procedure TdmServer.HTTPServerBeforeServerActivate(Sender: TObject);
+begin
+ HTTPServer.Port := StrToInt(FServerPort);
+end;
+
+end.
diff --git a/Servidor/uFrameConfiguracion.dfm b/Servidor/uFrameConfiguracion.dfm
new file mode 100644
index 0000000..6c2309a
--- /dev/null
+++ b/Servidor/uFrameConfiguracion.dfm
@@ -0,0 +1,9 @@
+object FrameConfiguracion: TFrameConfiguracion
+ Left = 0
+ Top = 0
+ Width = 320
+ Height = 240
+ Align = alClient
+ TabOrder = 0
+ Visible = False
+end
diff --git a/Servidor/uFrameConfiguracion.pas b/Servidor/uFrameConfiguracion.pas
new file mode 100644
index 0000000..7ac322f
--- /dev/null
+++ b/Servidor/uFrameConfiguracion.pas
@@ -0,0 +1,34 @@
+unit uFrameConfiguracion;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs;
+
+type
+ IConfiguracionFrame = interface
+ ['{07F3EDBF-DFED-4B76-ADC7-0D3B83FB6F9B}']
+ procedure Init;
+ procedure Finalize;
+ end;
+
+ TFrameConfiguracion = class(TFrame, IConfiguracionFrame)
+ protected
+ procedure Finalize; virtual;
+ public
+ procedure Init; virtual; abstract;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+{ TFrameConfiguracion }
+
+procedure TFrameConfiguracion.Finalize;
+begin
+ Hide;
+end;
+
+end.
diff --git a/Usuarios/Usuarios.bdsproj b/Usuarios/Usuarios.bdsproj
new file mode 100644
index 0000000..8d65505
--- /dev/null
+++ b/Usuarios/Usuarios.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ 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\Cliente
+ .\
+ $(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor
+ 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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+
+
+ 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/Usuarios/Usuarios.cfg b/Usuarios/Usuarios.cfg
new file mode 100644
index 0000000..e6102f8
--- /dev/null
+++ b/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".\"
+-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor"
+-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor"
+-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor"
+-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/Usuarios/Usuarios.dcp b/Usuarios/Usuarios.dcp
new file mode 100644
index 0000000..f0cfe54
Binary files /dev/null and b/Usuarios/Usuarios.dcp differ
diff --git a/Usuarios/Usuarios.dof b/Usuarios/Usuarios.dof
new file mode 100644
index 0000000..a286504
--- /dev/null
+++ b/Usuarios/Usuarios.dof
@@ -0,0 +1,186 @@
+[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=.\
+SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Servidor
+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;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
+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\Projects\Bpl\DJclVcl70.bpl=JEDI Code Library VCL package for Delphi 7
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\DJcl70.bpl=JEDI Code Library RTL package for Delphi 7
+C:\WINDOWS\system32\fqb70.bpl=FastQueryBuilder 1.01
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System (core 3.1) by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
+C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
+c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_Core_D7.bpl=RemObjects Hydra - Core Library
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_IDE_D7.bpl=RemObjects Hydra - IDE Integration
+C:\Archivos de programa\RemObjects Software\Hydra\Dcu\D7\Hydra_RO_D7.bpl=RemObjects Hydra - RemObjects SDK Integration Library
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=16
+Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente;..\..\Cuentas\Cliente
+Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente;..\..\Asientos\Cliente
+Item2=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente;..\..\Intervalos\Cliente
+Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\Presupuestos\Cliente;..\..\..\Usuarios;..\..\Albaranes de cliente\Cliente;..\..\Documentos asociados;..\..\Pagos\Cliente
+Item4=..\Modulos\Presupuestos\Reglas;..\Modulos\Contactos\Reglas;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Albaranes de cliente\Reglas
+Item5=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Base;..\Configuracion;..\Usuarios;..\Modulos\Intervalos;..\Modulos\Documentos asociados;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Presupuestos\Cliente;..\Modulos\Presupuestos\Reglas;..\Modulos\Albaranes de cliente\Cliente;..\Modulos\Albaranes de cliente\Reglas;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Pedidos a proveedor\Cliente;..\Modulos\Pedidos a proveedor\Reglas;..\Modulos\Facturas de proveedor\Cliente;..\Modulos\Facturas de proveedor\Reglas;..\Modulos\Montajes\Reglas;..\Modulos\Montajes\Cliente;..\Modulos\Articulos\Cliente;..\Modulos\Articulos\Reglas;..\Modulos\Almacenes\Reglas;..\Modulos\Almacenes\Cliente;..\Modulos\Pagos\Reglas;..\Modulos\Pagos\Cliente;..\Modulos\Cuentas\Reglas;..\Modulos\Cuentas\Cliente;..\Modulos\Asientos\Reglas;..\Modulos\Asientos\Cliente;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item6=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente;..\..\Almacenes\Cliente
+Item7=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados
+Item8=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados;..\..\Contactos\Cliente
+Item9=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente;..\..\Documentos asociados
+Item10=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\Usuarios;..\..\Montajes\Cliente
+Item11=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente;..\..\Almacenes\Cliente
+Item12=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios;..\..\Documentos asociados;..\..\Montajes\Cliente
+Item13=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\Servidor
+Item14=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Calendarios\Cliente;..\Modulos\Calendarios\Reglas
+Item15=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\Base;..\..\Servidor;..\..\Contactos\Cliente;..\..\..\Usuarios
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=.\
+[HistoryLists\hlOutputDirectorry]
+Count=2
+Item0=..\Output\Servidor
+Item1=..\Output\Cliente
+[HistoryLists\hlBPLOutput]
+Count=3
+Item0=..\..\..\Output\Cliente
+Item1=..\Output\Cliente
+Item2=..\..\Output\Cliente
+[HistoryLists\hlDCPOutput]
+Count=1
+Item0=.\
diff --git a/Usuarios/Usuarios.dpk b/Usuarios/Usuarios.dpk
new file mode 100644
index 0000000..3cad34c
--- /dev/null
+++ b/Usuarios/Usuarios.dpk
@@ -0,0 +1,51 @@
+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 OFF}
+
+requires
+ vcl,
+ vcldb,
+ PngComponentsD7,
+ PNG_D7,
+ vclactnband,
+ vclx,
+ vcljpg,
+ BaseD7,
+ rtl,
+ dbrtl,
+ dsnap,
+ adortl,
+ DataAbstract_D7,
+ JvMMD7R;
+
+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/Usuarios/Usuarios.drc b/Usuarios/Usuarios.drc
new file mode 100644
index 0000000..a5d5271
--- /dev/null
+++ b/Usuarios/Usuarios.drc
@@ -0,0 +1,14 @@
+/* VER150
+ 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/Usuarios/Usuarios.res b/Usuarios/Usuarios.res
new file mode 100644
index 0000000..ec5f233
Binary files /dev/null and b/Usuarios/Usuarios.res differ
diff --git a/Usuarios/uCambiarPassword.ddp b/Usuarios/uCambiarPassword.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Usuarios/uCambiarPassword.ddp differ
diff --git a/Usuarios/uCambiarPassword.dfm b/Usuarios/uCambiarPassword.dfm
new file mode 100644
index 0000000..9169827
--- /dev/null
+++ b/Usuarios/uCambiarPassword.dfm
@@ -0,0 +1,94 @@
+object fCambiarPassword: TfCambiarPassword
+ Left = 460
+ Top = 492
+ Width = 361
+ Height = 299
+ Caption = 'Cambiar la contrase'#241'a'
+ 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 bAceptar: TButton
+ Left = 136
+ Top = 230
+ Width = 120
+ Height = 25
+ Caption = '&Cambiar la contrase'#241'a'
+ Default = True
+ TabOrder = 0
+ OnClick = bAceptarClick
+ end
+ object bCancelar: TButton
+ Left = 269
+ Top = 230
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ object PageControl1: TPageControl
+ Left = 2
+ Top = 2
+ Width = 349
+ Height = 217
+ ActivePage = pagContrasena
+ TabOrder = 2
+ object pagContrasena: TTabSheet
+ Caption = 'Cambiar la contrase'#241'a'
+ object Label4: TLabel
+ Left = 16
+ Top = 19
+ Width = 167
+ Height = 13
+ Caption = 'Escriba la nueva contrase'#241'a:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 72
+ Width = 257
+ Height = 13
+ Caption = 'Repita la nueva contrase'#241'a para confirmarla:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ end
+ object edtPassword2: TEdit
+ Left = 16
+ Top = 88
+ Width = 295
+ Height = 21
+ CharCase = ecLowerCase
+ PasswordChar = '*'
+ TabOrder = 0
+ end
+ object edtPassword: TEdit
+ Left = 16
+ Top = 39
+ Width = 295
+ Height = 21
+ CharCase = ecLowerCase
+ PasswordChar = '*'
+ TabOrder = 1
+ end
+ end
+ end
+end
diff --git a/Usuarios/uCambiarPassword.pas b/Usuarios/uCambiarPassword.pas
new file mode 100644
index 0000000..03a158b
--- /dev/null
+++ b/Usuarios/uCambiarPassword.pas
@@ -0,0 +1,41 @@
+unit uCambiarPassword;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ComCtrls;
+
+type
+ TfCambiarPassword = class(TForm)
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label4: TLabel;
+ edtPassword: TEdit;
+ Label1: TLabel;
+ edtPassword2: TEdit;
+ PageControl1: TPageControl;
+ pagContrasena: TTabSheet;
+ procedure bAceptarClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fCambiarPassword: TfCambiarPassword;
+
+implementation
+
+{$R *.dfm}
+
+procedure TfCambiarPassword.bAceptarClick(Sender: TObject);
+begin
+ if edtPassword2.Text <> 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/Usuarios/uDataModuleUsuarios.ddp b/Usuarios/uDataModuleUsuarios.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Usuarios/uDataModuleUsuarios.ddp differ
diff --git a/Usuarios/uDataModuleUsuarios.dfm b/Usuarios/uDataModuleUsuarios.dfm
new file mode 100644
index 0000000..cbce197
--- /dev/null
+++ b/Usuarios/uDataModuleUsuarios.dfm
@@ -0,0 +1,151 @@
+object dmUsuarios: TdmUsuarios
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = ROLoginService
+ Adapter = dmBase.DABINAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Left = 520
+ Top = 350
+ Height = 340
+ Width = 423
+ object ROLoginService: TRORemoteService
+ ServiceName = 'srvLogin'
+ Message = dmBase.ROMessage
+ Channel = dmBase.ROChannel
+ Left = 32
+ Top = 16
+ end
+ object tbl_Usuarios: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datString
+ Size = 8
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ InPrimaryKey = True
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Usuarios'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Usuarios'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.Params = <>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Usuarios'
+ end>
+ ReadOnly = False
+ RemoteService = ROLoginService
+ 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
+ DataTable = tbl_Usuarios
+ Left = 280
+ Top = 40
+ end
+ object DADesigntimeCall: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'UserID'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TLoginInfo'
+ end>
+ RemoteService = ROLoginService
+ Left = 32
+ Top = 80
+ end
+end
diff --git a/Usuarios/uDataModuleUsuarios.pas b/Usuarios/uDataModuleUsuarios.pas
new file mode 100644
index 0000000..4f59d02
--- /dev/null
+++ b/Usuarios/uDataModuleUsuarios.pas
@@ -0,0 +1,113 @@
+unit uDataModuleUsuarios;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ FactuGES_Intf, uDADesigntimeCall;
+
+const
+ ROL_ADMIN = 'Administrador';
+
+type
+ TdmUsuarios = class(TDAClientDataModule)
+ ROLoginService: TRORemoteService;
+ tbl_Usuarios: TDACDSDataTable;
+ ds_Usuarios: TDADataSource;
+ DADesigntimeCall: TDADesigntimeCall;
+ 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;
+ 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 := (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.', 'FactuGES', 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/Usuarios/uLoginForm.ddp b/Usuarios/uLoginForm.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Usuarios/uLoginForm.ddp differ
diff --git a/Usuarios/uLoginForm.dfm b/Usuarios/uLoginForm.dfm
new file mode 100644
index 0000000..3d83fcc
--- /dev/null
+++ b/Usuarios/uLoginForm.dfm
@@ -0,0 +1,1123 @@
+object fLoginForm: TfLoginForm
+ Left = 384
+ Top = 376
+ ActiveControl = edtUser
+ BorderStyle = bsDialog
+ ClientHeight = 243
+ ClientWidth = 386
+ 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
+ DesignSize = (
+ 386
+ 243)
+ 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 = 173
+ Height = 13
+ Caption = 'Inicio de sesi'#243'n en FactuGES:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clActiveCaption
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object JvGradient1: TJvGradient
+ Left = 0
+ Top = 57
+ Width = 386
+ Height = 4
+ Align = alTop
+ StartColor = 2971346
+ EndColor = 4828405
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 386
+ Height = 57
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 386
+ 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 edtPassword: TEdit
+ Left = 96
+ Top = 132
+ Width = 278
+ Height = 21
+ CharCase = ecLowerCase
+ PasswordChar = '*'
+ TabOrder = 1
+ end
+ object bAceptar: TButton
+ Left = 208
+ Top = 192
+ Width = 75
+ Height = 25
+ Caption = '&Aceptar'
+ Default = True
+ TabOrder = 2
+ OnClick = bAceptarClick
+ end
+ object bCancelar: TButton
+ Left = 296
+ Top = 192
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = '&Salir'
+ ModalResult = 2
+ TabOrder = 3
+ end
+ object edtUser: TEdit
+ Left = 96
+ Top = 104
+ Width = 278
+ Height = 21
+ CharCase = ecLowerCase
+ TabOrder = 4
+ end
+ object ToolBar2: TToolBar
+ Left = 96
+ Top = 160
+ Width = 281
+ Height = 22
+ Align = alNone
+ Anchors = [akLeft, akTop, akRight]
+ ButtonHeight = 21
+ ButtonWidth = 110
+ Caption = 'ToolBar1'
+ EdgeBorders = []
+ EdgeInner = esNone
+ EdgeOuter = esNone
+ Flat = True
+ ParentShowHint = False
+ ShowCaptions = True
+ ShowHint = True
+ TabOrder = 5
+ Transparent = True
+ object ToolButton4: TToolButton
+ Left = 0
+ Top = 0
+ Caption = 'Configurar conexi'#243'n...'
+ OnClick = ToolButton4Click
+ end
+ end
+ object PngImageList1: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AC400000AC401666D82D4000002B84944415478DA
+ 7DD25B4814511807F06FD61DC79DBDB8177577D9B23B4B2E3D84F6500F3D2542
+ D20DE902F910FA105D84209F0C45A82048082A562C4DA3A4B21E7C0B12332168
+ 438D7523D128D745DDCBAC7B9B9DD9B9CF342B289AAC7F989773BEEFC739F31D
+ 445114C807411058CBCCDBA64600E9762A4D56C4E2197FE06FF46EE7C08C0F36
+ 64BDEF7F60FAE5E56687C3F22C976335C954065692698827C8DC989F38DBF731
+ 38B22DF0A6A546E7AEDE17C2755839C70B90CDD21026D2200A3C8457D8D9D61E
+ FF11B5942A0CB41FAB7539AC9F8A3445C0B0022C1234386C2630EA00E61608E5
+ DEE0AFBA60981A29088C3FAE6F4E64F95E4144C06A31817BA7191059049E6381
+ 6618783838D5F4EAF3527F41C0E7AD6FD8E1B47FD0A2E8EA9A248A20A8C71738
+ 0E588E55DA9F4F340FFB228581A1CEA3CE6AF7EE105A5CBC2AC8B2ACDE5F5845
+ 489216CF748CD54653FC976DA730D973FA9DD9885F582DCA0352FE14027C9B5E
+ 9EBDFAE4C7717539BE2DD0D752E33AE4B14F1A30D421AB7BF96B24D314DFDAEB
+ BF35F53BD35D708CF9E8DA5ED88CA4CB8BEF92CF77C9FD8811D4374023D026D5
+ 294CE2800FA102D788D777A6373EA875C0D4D167290D5ABE32065755AECC0937
+ ABE6A1D16381813F08780336D027A250925ECE2AECF773E1F7F747B700FB2FF5
+ 3E15A5F21B94D50E399B034AAC18347810E89F33813699528108E02A82318B8B
+ 11DF83C3742C94D8041C3CE90D7158792563B3036D2A03CE640111D783866501
+ A349C05304E049F54BC5202E8F5E8C8F0D0D6D023C271ECD8BA8654FAE34DF6C
+ 05DE6804495B0C1AF527A25416302A05783A01BA4C1C086EFC7A7462B87B13E0
+ 3ED57E45614ABB6483DDCA636644D0E901B45A005E02AD40032690A0A5E33C9F
+ 9909ACCC0D379189D8CF2D53309BCD658273AF1BAD705582466F4064492329AC
+ 20F15C0E2882449716226A5930AD66ADE71FDF3497F05E932988000000004945
+ 4E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 264
+ Top = 104
+ Bitmap = {}
+ end
+end
diff --git a/Usuarios/uLoginForm.pas b/Usuarios/uLoginForm.pas
new file mode 100644
index 0000000..582b8ec
--- /dev/null
+++ b/Usuarios/uLoginForm.pas
@@ -0,0 +1,86 @@
+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;
+
+type
+ TfLoginForm = class(TForm)
+ Panel1: TPanel;
+ Label3: TLabel;
+ Label4: TLabel;
+ edtPassword: TEdit;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label1: TLabel;
+ PngImageList1: TPngImageList;
+ edtUser: TEdit;
+ ToolBar2: TToolBar;
+ ToolButton4: TToolButton;
+ Image1: TImage;
+ JvGradient1: TJvGradient;
+ procedure bAceptarClick(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure ToolButton4Click(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ private
+ FIntentos: Integer;
+ end;
+
+var
+ fLoginForm: TfLoginForm;
+
+implementation
+
+uses
+ uDataModuleUsuarios, uDataModuleBase;
+
+{$R *.dfm}
+
+{
+********************************* TfLoginForm **********************************
+}
+procedure TfLoginForm.bAceptarClick(Sender: TObject);
+var
+ ACursor: TCursor;
+ bOk : Boolean;
+begin
+ ACursor := Screen.Cursor;
+ Screen.Cursor := crHourGlass;
+ try
+ bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text);
+ finally
+ Screen.Cursor := ACursor;
+ 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
+ dmBase.ConfigurarConexion;
+end;
+
+procedure TfLoginForm.FormShow(Sender: TObject);
+begin
+ Self.Caption := Application.Title + ' ' + dmBase.DarVersion + ' - Inicio de sesión';
+end;
+
+end.
diff --git a/Usuarios/uUsuario.dfm b/Usuarios/uUsuario.dfm
new file mode 100644
index 0000000..93fcc6e
--- /dev/null
+++ b/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/Usuarios/uUsuario.pas b/Usuarios/uUsuario.pas
new file mode 100644
index 0000000..90e722c
--- /dev/null
+++ b/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/Usuarios/uUsuarios.ddp b/Usuarios/uUsuarios.ddp
new file mode 100644
index 0000000..4370276
Binary files /dev/null and b/Usuarios/uUsuarios.ddp differ
diff --git a/Usuarios/uUsuarios.dfm b/Usuarios/uUsuarios.dfm
new file mode 100644
index 0000000..a2faae2
--- /dev/null
+++ b/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/Usuarios/uUsuarios.pas b/Usuarios/uUsuarios.pas
new file mode 100644
index 0000000..dfad797
--- /dev/null
+++ b/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.