Importación inicial

git-svn-id: https://192.168.0.254/svn/Proyectos.ConstruccionesCNJ_FactuGES/trunk@4 6cb6b671-b4a0-dd4c-8bdc-3006503d97e9
This commit is contained in:
David Arranz 2007-06-21 15:50:59 +00:00
parent 1708759d08
commit 12013bdc69
1690 changed files with 179631 additions and 0 deletions

BIN
BD/FACTUGES(Antes).FDB Normal file

Binary file not shown.

BIN
BD/FACTUGES(Para subir).FDB Normal file

Binary file not shown.

BIN
BD/FACTUGES.FDB Normal file

Binary file not shown.

101
BD/Script.txt Normal file
View File

@ -0,0 +1,101 @@
alter table "PRESUPUESTOS" drop "TIPO";
ALTER TABLE CONFIGURACION
ADD EMPRESA TIPO_ID;
CREATE TABLE MONTAJES (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_INICIO TIMESTAMP,
FECHA_FIN TIMESTAMP,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE MONTAJES ADD CONSTRAINT PK_MONTAJES PRIMARY KEY (ID);
ALTER TABLE MONTAJES ADD CONSTRAINT FK_MONTAJES_CONTACTO FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE MONTAJES ADD CONSTRAINT FK_MONTAJES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE GENERATOR GEN_MONTAJES_ID;
SET GENERATOR GEN_MONTAJES_ID TO 1;
ALTER TABLE MONTAJES
ADD ID_PRESUPUESTO TIPO_ID;
ALTER TABLE MONTAJES ADD CONSTRAINT FK_MONTAJES_PRESUPUESTOS FOREIGN KEY (ID_PRESUPUESTO) REFERENCES PRESUPUESTOS (ID);
ALTER TABLE MONTAJES
ADD SITUACION VARCHAR(255);
CREATE TABLE MONTAJES_DETALLES (
ID TIPO_ID NOT NULL,
ID_MONTAJE TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
PUNTOS INTEGER,
IMPORTE_PUNTOS TIPO_IMPORTE,
IMPORTE_UNIDAD TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP
);
ALTER TABLE MONTAJES_DETALLES ADD CONSTRAINT PK_MONTAJES_DETALLES PRIMARY KEY (ID);
/* Trigger: TRI_INSERT_PRESUPUESTOS_DET */
CREATE TRIGGER TRI_INSERT_MONTAJES_DET FOR MONTAJES_DETALLES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
/* Trigger: TRI_UPDATE_PRESUPUESTOS_DET */
CREATE TRIGGER TRI_UPDATE_MONTAJES_DET FOR MONTAJES_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE GENERATOR GEN_MONTAJES_DETALLES_ID;
SET GENERATOR GEN_MONTAJES_DETALLES_ID TO 1;
CREATE TABLE MONTAJES_GASTOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_MONTAJE TIPO_ID,
FECHA_GASTO TIMESTAMP,
DESCRIPCION TIPO_CONCEPTO,
IMPORTE TIPO_IMPORTE,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE MONTAJES_GASTOS ADD CONSTRAINT PK_MONTAJES_GASTOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_MONTAJES_GASTOS_ID;
SET GENERATOR GEN_MONTAJES_GASTOS_ID TO 1;
ALTER TABLE MONTAJES
ADD IMPORTE_TOTAL TIPO_IMPORTE;
alter table MONTAJES
add constraint UNQ_MONTAJES
unique (ID_PRESUPUESTO)

514
BD/factuges.sql Normal file
View File

@ -0,0 +1,514 @@
CREATE DOMAIN TIPO_ID AS INTEGER;
CREATE DOMAIN TIPO_PERFIL AS VARCHAR(15);
CREATE DOMAIN TIPO_USUARIO AS VARCHAR(20);
CREATE DOMAIN TIPO_PASSWORD AS VARCHAR(10);
CREATE DOMAIN TIPO_NOTAS AS BLOB SUB_TYPE TEXT;
CREATE DOMAIN TIPO_BINARIO AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
CREATE DOMAIN TIPO_IMPORTE AS NUMERIC(11, 2);
CREATE DOMAIN TIPO_PORCENTAJE AS FLOAT;
CREATE DOMAIN TIPO_CONCEPTO AS VARCHAR(2000);
CREATE DOMAIN TIPO_BOOLEANO AS SMALLINT;
CREATE TABLE EMPRESAS (
ID TIPO_ID NOT NULL,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255),
RAZON_SOCIAL VARCHAR(255),
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
TELEFONO_1 VARCHAR(25),
TELEFONO_2 VARCHAR(25),
MOVIL_1 VARCHAR(25),
MOVIL_2 VARCHAR(25),
FAX VARCHAR(25),
EMAIL_1 VARCHAR(255),
EMAIL_2 VARCHAR(255),
PAGINA_WEB VARCHAR(255),
NOTAS TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO,
LOGOTIPO TIPO_BINARIO,
REGISTRO_MERCANTIL VARCHAR(255),
IVA TIPO_PORCENTAJE
);
ALTER TABLE EMPRESAS ADD CONSTRAINT
PK_EMPRESAS
PRIMARY KEY (ID);
CREATE GENERATOR GEN_EMPRESAS_ID;
SET GENERATOR GEN_EMPRESAS_ID TO 0;
CREATE TABLE PERFILES (
ID TIPO_ID NOT NULL,
PERFIL TIPO_PERFIL NOT NULL
);
ALTER TABLE PERFILES
ADD CONSTRAINT PK_PERFILES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PERFILES_ID;
SET GENERATOR GEN_PERFILES_ID TO 0;
CREATE TABLE USUARIOS (
ID TIPO_ID NOT NULL,
USUARIO TIPO_USUARIO NOT NULL,
PASS TIPO_PASSWORD,
ACTIVO TIPO_BOOLEANO,
LAST_LOGIN TIMESTAMP
);
ALTER TABLE USUARIOS
ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_USUARIOS_ID;
SET GENERATOR GEN_USUARIOS_ID TO 0;
CREATE TABLE PERFILES_USUARIOS (
ID_PERFIL TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
ALTER TABLE PERFILES_USUARIOS
ADD CONSTRAINT PK_PERFILES_USUARIOS PRIMARY KEY (ID_PERFIL, ID_USUARIO);
CREATE TABLE CATEGORIAS (
ID TIPO_ID NOT NULL,
CATEGORIA VARCHAR(255) NOT NULL
);
ALTER TABLE CATEGORIAS
ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID);
CREATE GENERATOR GEN_CATEGORIAS_ID;
SET GENERATOR GEN_CATEGORIAS_ID TO 0;
CREATE TABLE CONTACTOS (
ID TIPO_ID NOT NULL,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255) NOT NULL,
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
TELEFONO_1 VARCHAR(25),
TELEFONO_2 VARCHAR(25),
MOVIL_1 VARCHAR(25),
MOVIL_2 VARCHAR(25),
FAX VARCHAR(25),
EMAIL_1 VARCHAR(255),
EMAIL_2 VARCHAR(255),
PAGINA_WEB VARCHAR(255),
NOTAS TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE CONTACTOS
ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_CONTACTOS_ID;
SET GENERATOR GEN_CONTACTOS_ID TO 0;
CREATE TABLE CONTACTOS_CATEGORIAS (
ID_CONTACTO TIPO_ID NOT NULL,
ID_CATEGORIA TIPO_ID NOT NULL
);
ALTER TABLE CONTACTOS_CATEGORIAS
ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA);
CREATE TABLE CONTACTOS_DATOS_BANCO (
ID TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL,
TITULAR VARCHAR(255),
ENTIDAD VARCHAR(15),
SUCURSAL VARCHAR(15),
DC VARCHAR(15),
CUENTA VARCHAR(15)
);
ALTER TABLE CONTACTOS_DATOS_BANCO
ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID);
CREATE INDEX IDX_CONTACTOS_DATOS_BANCO
ON CONTACTOS_DATOS_BANCO (ID_CONTACTO);
CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID;
SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0;
CREATE TABLE CLIENTES_DATOS (
ID_CLIENTE TIPO_ID NOT NULL,
ID_VENDEDOR TIPO_ID,
PROCEDENCIA VARCHAR(2000)
);
ALTER TABLE CLIENTES_DATOS
ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE);
CREATE TABLE VENDEDORES_DATOS (
ID_VENDEDOR TIPO_ID NOT NULL,
PORCENTAJE_COMISION TIPO_PORCENTAJE DEFAULT 0
);
ALTER TABLE VENDEDORES_DATOS
ADD CONSTRAINT PK_VENDEDORES_DATOS PRIMARY KEY (ID_VENDEDOR);
CREATE TABLE PROVEEDORES_DATOS (
ID_PROVEEDOR TIPO_ID NOT NULL,
DISTRIBUYE VARCHAR(2000),
DESCUENTO TIPO_PORCENTAJE
);
ALTER TABLE PROVEEDORES_DATOS
ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR);
CREATE TABLE EMPRESAS_CONTACTOS (
ID_EMPRESA TIPO_ID NOT NULL,
ID_CONTACTO TIPO_ID NOT NULL
);
ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT
PK_EMPRESAS_CONTACTOS
PRIMARY KEY (ID_EMPRESA, ID_CONTACTO);
CREATE TABLE EMPRESAS_USUARIOS (
ID_EMPRESA TIPO_ID NOT NULL,
ID_USUARIO TIPO_ID NOT NULL
);
ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT
PK_EMPRESAS_USUARIOS
PRIMARY KEY (ID_EMPRESA, ID_USUARIO);
CREATE TABLE PRESUPUESTOS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
ID_VENDEDOR TIPO_ID,
TIPO VARCHAR(10),
REFERENCIA VARCHAR(255),
FECHA_PRESUPUESTO DATE,
VIGENCIA INTEGER,
SITUACION VARCHAR(255),
FECHA_DECISION DATE,
BASE_IMPONIBLE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
IVA TIPO_PORCENTAJE,
IMPORTE_IVA TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
OBSERVACIONES TIPO_NOTAS,
PLAZO_ENTREGA TIPO_NOTAS,
FORMA_PAGO TIPO_NOTAS,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PRESUPUESTOS
ADD CONSTRAINT PK_PRESUPUESTOS PRIMARY KEY (ID);
CREATE GENERATOR GEN_PRESUPUESTOS_ID;
SET GENERATOR GEN_PRESUPUESTOS_ID TO 0;
CREATE TABLE PRESUPUESTOS_DETALLES (
ID TIPO_ID NOT NULL,
ID_PRESUPUESTO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
PUNTOS INTEGER,
IMPORTE_PUNTOS TIPO_IMPORTE,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO
);
ALTER TABLE PRESUPUESTOS_DETALLES
ADD CONSTRAINT PK_PRESUPUESTOS_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PRESUPUESTOS_DETALLES_ID;
SET GENERATOR GEN_PRESUPUESTOS_DETALLES_ID TO 0;
CREATE TABLE FACTURAS_CLIENTE (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CONTRATO TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_FACTURA DATE,
VENCIMIENTO INTEGER,
SITUACION VARCHAR(255),
FECHA_PAGADO DATE,
BASE_IMPONIBLE TIPO_IMPORTE,
DESCUENTO TIPO_PORCENTAJE,
IMPORTE_DESCUENTO TIPO_IMPORTE,
IVA TIPO_PORCENTAJE,
IMPORTE_IVA TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
OBSERVACIONES TIPO_NOTAS,
FORMA_PAGO TIPO_NOTAS,
ID_CLIENTE TIPO_ID,
NIF_CIF VARCHAR(15),
NOMBRE VARCHAR(255),
CALLE VARCHAR(255),
POBLACION VARCHAR(255),
PROVINCIA VARCHAR(255),
CODIGO_POSTAL VARCHAR(10),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID);
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_CONTACTOS FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE TABLE FACTURAS_CLIENTE_DETALLES (
ID TIPO_ID NOT NULL,
ID_FACTURA TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO
);
ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID);
CREATE TABLE PEDIDOS_PROVEEDOR (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_PROVEEDOR TIPO_ID,
ID_MONTAJE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_PEDIDO DATE,
FECHA_CONFIRMACION DATE,
FECHA_ENTREGA DATE,
SITUACION VARCHAR(255),
DIRECCION_ENTREGA TIPO_NOTAS,
OBSERVACIONES TIPO_NOTAS,
IMPORTE_TOTAL TIPO_IMPORTE,
INCIDENCIAS TIPO_NOTAS,
INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL,
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID);
ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID);
CREATE GENERATOR GEN_PEDIDOS_PROV_ID;
SET GENERATOR GEN_PEDIDOS_PROV_ID TO 0;
CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES (
ID TIPO_ID NOT NULL,
ID_PEDIDO TIPO_ID NOT NULL,
POSICION INTEGER,
TIPO_DETALLE VARCHAR(10),
CONCEPTO TIPO_CONCEPTO,
CANTIDAD INTEGER,
IMPORTE_UNIDAD TIPO_IMPORTE,
IMPORTE_TOTAL TIPO_IMPORTE,
VISIBLE TIPO_BOOLEANO
);
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID);
CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID;
SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 0;
CREATE TABLE CONFIGURACION (
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL
);
CREATE TABLE REFERENCIAS (
CODIGO VARCHAR(50) NOT NULL,
VALOR VARCHAR(255) NOT NULL
);
CREATE TABLE COBROS (
ID TIPO_ID NOT NULL,
ID_EMPRESA TIPO_ID,
ID_CLIENTE TIPO_ID,
ID_MONTAJE TIPO_ID,
REFERENCIA VARCHAR(255),
FECHA_COBRO TIMESTAMP,
DESCRIPCION TIPO_CONCEPTO,
IMPORTE TIPO_IMPORTE,
FORMA_PAGO VARCHAR(255),
FECHA_ALTA TIMESTAMP,
FECHA_MODIFICACION TIMESTAMP,
USUARIO TIPO_USUARIO
);
ALTER TABLE COBROS ADD CONSTRAINT PK_COBROS PRIMARY KEY (ID);
ALTER TABLE COBROS ADD CONSTRAINT FK_COBROS FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID);
CREATE GENERATOR GEN_COBROS_CLIENTE_ID;
SET GENERATOR GEN_COBROS_CLIENTE_ID TO 1;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD DESCUENTO TIPO_PORCENTAJE;
ALTER TABLE REFERENCIAS
ADD ID_EMPRESA TIPO_ID;
alter table REFERENCIAS
add constraint FK_REFERENCIAS
foreign key (ID_EMPRESA)
references EMPRESAS(ID);
ALTER TABLE FACTURAS_CLIENTE_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE FACTURAS_CLIENTE_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD FECHA_ALTA TIMESTAMP;
ALTER TABLE PRESUPUESTOS_DETALLES
ADD FECHA_MODIFICACION TIMESTAMP;
CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_INSERT_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_INSERT_PRESUPUESTOS FOR PRESUPUESTOS
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_INSERT_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_INSERT_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_INSERT_PRESUPUESTOS_DET FOR PRESUPUESTOS_DETALLES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.FECHA_ALTA = current_timestamp;
NEW.FECHA_MODIFICACION = Null;
end;
CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE FOR FACTURAS_CLIENTE
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROVEEDOR FOR PEDIDOS_PROVEEDOR
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PRESUPUESTOS FOR PRESUPUESTOS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_FACTURAS_CLIENTE_DET FOR FACTURAS_CLIENTE_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PEDIDOS_PROV_DET FOR PEDIDOS_PROVEEDOR_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
CREATE TRIGGER TRI_UPDATE_PRESUPUESTOS_DET FOR PRESUPUESTOS_DETALLES
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
NEW.FECHA_MODIFICACION = current_timestamp;
end;
ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES
ADD REFERENCIA VARCHAR(255);
ALTER TABLE COBROS ADD CONSTRAINT FK_COBROS_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
alter table PRESUPUESTOS add constraint FK_PRESUPUESTOS2 foreign key (ID_CLIENTE) references CONTACTOS(ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
/****************************************************************************/
/* INSERTAR DATOS */
INSERT INTO CATEGORIAS (CATEGORIA) VALUES ('CLIENTE');
INSERT INTO CATEGORIAS (CATEGORIA) VALUES ('PROVEEDOR');
INSERT INTO CATEGORIAS (CATEGORIA) VALUES ('VENDEDOR');
INSERT INTO CATEGORIAS (CATEGORIA) VALUES ('INSTALADOR');
INSERT INTO REFERENCIAS (CODIGO, VALOR) VALUES ('REF_PRESUPUESTOS', '0');
COMMIT;

379
BD/serverlog.txt Normal file
View File

@ -0,0 +1,379 @@
[04/06/2007 17:15:45]
[Application: ]
: [Connect]
>
[04/06/2007 17:15:45]
[Application: ]
: [Prepare] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
Plan: PLAN (USUARIOS NATURAL)
>
[04/06/2007 17:15:45]
[Application: ]
: [Start transaction]
>
[04/06/2007 17:15:45]
[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))
>
[04/06/2007 17:15:45]
[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
>
[04/06/2007 17:15:45]
[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)))
>
[04/06/2007 17:15:45]
[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
>
[04/06/2007 17:15:45]
[Application: ]
: [Commit (Hard commit)]
>
[04/06/2007 17:15:45]
[Application: ]
: [Execute] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
USUARIO = Administrador
PASS = 1
>
[04/06/2007 17:15:45]
[Application: ]
: [Prepare] SELECT
PERFILES.PERFIL
FROM
PERFILES, PERFILES_USUARIOS
WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO
AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL
Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES))
>
[04/06/2007 17:15:45]
[Application: ]
: [Start transaction]
>
[04/06/2007 17:15:45]
[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 = PERFILES
>
[04/06/2007 17:15:45]
[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 = PERFILES
>
[04/06/2007 17:15:45]
[Application: ]
: [Commit (Hard commit)]
>
[04/06/2007 17:15:45]
[Application: ]
: [Execute] SELECT
PERFILES.PERFIL
FROM
PERFILES, PERFILES_USUARIOS
WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO
AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL
ID_USUARIO = 1
>
[04/06/2007 17:15:45]
[Application: ]
: [Prepare] SELECT
ID_EMPRESA
FROM
EMPRESAS_USUARIOS
WHERE ID_USUARIO = :ID_USUARIO
Plan: PLAN (EMPRESAS_USUARIOS NATURAL)
>
[04/06/2007 17:15:45]
[Application: ]
: [Start transaction]
>
[04/06/2007 17:15:45]
[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 = EMPRESAS_USUARIOS
>
[04/06/2007 17:15:45]
[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 = EMPRESAS_USUARIOS
>
[04/06/2007 17:15:45]
[Application: ]
: [Commit (Hard commit)]
>
[04/06/2007 17:15:45]
[Application: ]
: [Execute] SELECT
ID_EMPRESA
FROM
EMPRESAS_USUARIOS
WHERE ID_USUARIO = :ID_USUARIO
ID_USUARIO = 1
>
[04/06/2007 17:15:46]
[Application: ]
: [Prepare] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS))
>
[04/06/2007 17:15:46]
[Application: ]
: [Start transaction]
>
[04/06/2007 17:15:46]
[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 = EMPRESAS
>
[04/06/2007 17:15:46]
[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 = EMPRESAS
>
[04/06/2007 17:15:46]
[Application: ]
: [Commit (Hard commit)]
>
[04/06/2007 17:15:46]
[Application: ]
: [Execute] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
>
[04/06/2007 17:15:46]
[Application: ]
: [Prepare] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS))
>
[04/06/2007 17:15:46]
[Application: ]
: [Execute] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
>
[04/06/2007 17:16:12]
[Application: ]
: [Prepare] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
Plan: PLAN (USUARIOS NATURAL)
>
[04/06/2007 17:16:12]
[Application: ]
: [Execute] SELECT
ID
FROM
USUARIOS
WHERE USUARIO = :USUARIO AND
PASS = :PASS AND
ACTIVO = 1
USUARIO = Administrador
PASS = 1
>
[04/06/2007 17:16:12]
[Application: ]
: [Prepare] SELECT
PERFILES.PERFIL
FROM
PERFILES, PERFILES_USUARIOS
WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO
AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL
Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES))
>
[04/06/2007 17:16:12]
[Application: ]
: [Execute] SELECT
PERFILES.PERFIL
FROM
PERFILES, PERFILES_USUARIOS
WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO
AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL
ID_USUARIO = 1
>
[04/06/2007 17:16:12]
[Application: ]
: [Prepare] SELECT
ID_EMPRESA
FROM
EMPRESAS_USUARIOS
WHERE ID_USUARIO = :ID_USUARIO
Plan: PLAN (EMPRESAS_USUARIOS NATURAL)
>
[04/06/2007 17:16:12]
[Application: ]
: [Execute] SELECT
ID_EMPRESA
FROM
EMPRESAS_USUARIOS
WHERE ID_USUARIO = :ID_USUARIO
ID_USUARIO = 1
>
[04/06/2007 17:16:15]
[Application: ]
: [Prepare] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS))
>
[04/06/2007 17:16:15]
[Application: ]
: [Execute] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
>
[04/06/2007 17:16:15]
[Application: ]
: [Prepare] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS))
>
[04/06/2007 17:16:15]
[Application: ]
: [Execute] SELECT
ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION,
PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1,
MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS,
FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO,
REGISTRO_MERCANTIL, IVA
FROM
EMPRESAS WHERE (ID IN (1))
>
[04/06/2007 17:16:44]
[Application: ]
[Error] -904 335544375 unavailable database
>
[04/06/2007 17:16:48]
[Application: ]
[Error] -904 335544375 unavailable database
>

534
Base/Base.bdsproj Normal file
View File

@ -0,0 +1,534 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{6C389410-AB94-4054-886D-1164CE55F0D9}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Base.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription">Libreria base de FactuGES</Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">.\Lib</Directories>
<Directories Name="SearchPath">..\DataAbstract_D10\Lib;.\Lib</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir"></Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxComnD10.bpl">ExpressCommonLibrary by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxEditorsD10.bpl">ExpressEditors Library 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxDataD10.bpl">ExpressDataController by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxExtEditorsD10.bpl">ExpressExtendedEditors Library 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxGridD10.bpl">ExpressQuantumGrid 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxSchedulerD10.bpl">ExpressScheduler 2 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxTreeListD10.bpl">ExpressQuantumTreeList 4 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxVerticalGridD10.bpl">ExpressVerticalGrid by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxDockingD10.bpl">ExpressDocking Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxLayoutControlD10.bpl">ExpressLayout Control by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxNavBarD10.bpl">ExpressNavBar by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxPSCoreD10.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxsbD10.bpl">ExpressSideBar by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvAppFrmD10R.bpl">JVCL Application and Form Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCoreD10R.bpl">JVCL Core Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\Jcl100.bpl">JEDI Code Library RTL package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JclVcl100.bpl">JEDI Code Library VCL package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvSystemD10R.bpl">JVCL System Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvStdCtrlsD10R.bpl">JVCL Standard Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvBandsD10R.bpl">JVCL Band Objects Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvBDED10R.bpl">JVCL BDE Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCtrlsD10R.bpl">JVCL Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCmpD10R.bpl">JVCL Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvDotNetCtrlsD10R.bpl">JVCL DotNet Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvEDID10R.bpl">JVCL EDI Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvGlobusD10R.bpl">JVCL Globus Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvHMID10R.bpl">JVCL HMI Controls runtime package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvInterpreterD10R.bpl">JVCL Interpreter Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvJansD10R.bpl">JVCL Jans Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvManagedThreadsD10R.bpl">JVCL Managed Threads - runtime package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvMMD10R.bpl">JVCL Multimedia and Image Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvNetD10R.bpl">JVCL Network Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPageCompsD10R.bpl">JVCL Page Style Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPluginD10R.bpl">JVCL Plugin Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPrintPreviewD10R.bpl">JVCL Print Preview Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvRuntimeDesignD10R.bpl">JVCL Runtime Design Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvTimeFrameworkD10R.bpl">JVCL Time Framework</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvValidatorsD10R.bpl">JVCL Validators and Error Indicator Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvWizardD10R.bpl">JVCL Wizard Run Time Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvXPCtrlsD10R.bpl">JVCL XP Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxGDIPlusD10.bpl">ExpressGDI+ Library by Developer Express Inc.</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<!-- EurekaLog First Line
[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."
EurekaLog Last Line -->
</BorlandProject>

45
Base/Base.cfg Normal file
View File

@ -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
-N0".\"
-LE"..\Output\Cliente"
-LN".\Lib"
-U"..\DataAbstract_D10\Lib;.\Lib"
-O"..\DataAbstract_D10\Lib;.\Lib"
-I"..\DataAbstract_D10\Lib;.\Lib"
-R"..\DataAbstract_D10\Lib;.\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

79
Base/Base.dpk Normal file
View File

@ -0,0 +1,79 @@
package Base;
{$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 'Libreria base de FactuGES'}
{$IMPLICITBUILD OFF}
requires
rtl,
vcl,
dsnap,
dbrtl,
vcldb,
adortl,
DataAbstract_D10,
vcljpg,
vclx,
tbx_d10,
tb2k_d10,
vclactnband,
designide,
xmlrtl,
JvCoreD10R,
Jcl,
JclVcl,
JvPageCompsD10R,
JvStdCtrlsD10R,
JvSystemD10R,
PngComponentsD10,
PNG_D10,
JvMMD10R,
JvCtrlsD10R,
Jv3rdD10R,
cxLibraryD10,
dxThemeD10,
cxEditorsD10,
cxDataD10,
cxExtEditorsD10,
cxGridD10,
cxPageControlD10,
cxExportD10,
cxIntl5D10,
dxPSCoreD10,
cxIntlPrintSys3D10;
contains
uDataTableUtils in 'Utiles\uDataTableUtils.pas',
uDBSelectionListUtils in 'Utiles\uDBSelectionListUtils.pas',
uIntegerListUtils in 'Utiles\uIntegerListUtils.pas',
uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDataModule},
uDataModuleConexion in 'uDataModuleConexion.pas' {dmConexion: TDataModule},
uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion: TForm},
uSistemaFunc in 'Utiles\uSistemaFunc.pas',
FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas',
uGridUtils in 'Utiles\uGridUtils.pas',
uDateUtils in 'Utiles\uDateUtils.pas',
uDataModuleConfiguracion in 'uDataModuleConfiguracion.pas' {dmConfiguracion: TDataModule};
end.

14
Base/Base.drc Normal file
View File

@ -0,0 +1,14 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

BIN
Base/Base.res Normal file

Binary file not shown.

View File

@ -0,0 +1,543 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{27A9EF84-720B-4D36-8963-19D39161ED91}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ClassRegistry.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath"></Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir"></Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxBarExtItemsD10.bpl">ExpressBars extended items by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxComnD10.bpl">ExpressCommonLibrary by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxBarD10.bpl">ExpressBars by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxLibraryD10.bpl">Express Cross Platform Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxThemeD10.bpl">Express XP Theme Manager by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxEditorsD10.bpl">ExpressEditors Library 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxDataD10.bpl">ExpressDataController by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxExtEditorsD10.bpl">ExpressExtendedEditors Library 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxGridD10.bpl">ExpressQuantumGrid 5 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxPageControlD10.bpl">Express Cross Platform PageControl by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxExportD10.bpl">Express Cross Platform Export Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxSchedulerD10.bpl">ExpressScheduler 2 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxTreeListD10.bpl">ExpressQuantumTreeList 4 by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\cxVerticalGridD10.bpl">ExpressVerticalGrid by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxBarDBNavD10.bpl">ExpressBars DBNavigator by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxBarExtDBItemsD10.bpl">ExpressBars extended DB items by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxDockingD10.bpl">ExpressDocking Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxLayoutControlD10.bpl">ExpressLayout Control by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxNavBarD10.bpl">ExpressNavBar by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxPSCoreD10.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxsbD10.bpl">ExpressSideBar by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvAppFrmD10R.bpl">JVCL Application and Form Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCoreD10R.bpl">JVCL Core Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\Jcl100.bpl">JEDI Code Library RTL package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JclVcl100.bpl">JEDI Code Library VCL package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvSystemD10R.bpl">JVCL System Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvStdCtrlsD10R.bpl">JVCL Standard Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvBandsD10R.bpl">JVCL Band Objects Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvBDED10R.bpl">JVCL BDE Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCtrlsD10R.bpl">JVCL Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvCmpD10R.bpl">JVCL Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvDotNetCtrlsD10R.bpl">JVCL DotNet Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvEDID10R.bpl">JVCL EDI Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvGlobusD10R.bpl">JVCL Globus Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvHMID10R.bpl">JVCL HMI Controls runtime package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvInterpreterD10R.bpl">JVCL Interpreter Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvJansD10R.bpl">JVCL Jans Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvManagedThreadsD10R.bpl">JVCL Managed Threads - runtime package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvMMD10R.bpl">JVCL Multimedia and Image Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvNetD10R.bpl">JVCL Network Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPageCompsD10R.bpl">JVCL Page Style Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPluginD10R.bpl">JVCL Plugin Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvPrintPreviewD10R.bpl">JVCL Print Preview Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvRuntimeDesignD10R.bpl">JVCL Runtime Design Components Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvTimeFrameworkD10R.bpl">JVCL Time Framework</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvValidatorsD10R.bpl">JVCL Validators and Error Indicator Components</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvWizardD10R.bpl">JVCL Wizard Run Time Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\JvXPCtrlsD10R.bpl">JVCL XP Controls Runtime Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\PluginSDK_D10R.bpl">(untitled)</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\dxGDIPlusD10.bpl">ExpressGDI+ Library by Developer Express Inc.</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<!-- EurekaLog First Line
[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."
EurekaLog Last Line -->
</BorlandProject>

View File

@ -0,0 +1,41 @@
-$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
-N0".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,51 @@
package ClassRegistry;
{$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,
GUISDK_D10,
ccpack10,
designide,
xmlrtl,
vclactnband,
vclx,
cfpack_d10,
JvAppFrmD10R,
vcljpg,
JclVcl,
Jcl,
JvSystemD10R,
JvCoreD10R,
cxLibraryD10,
dxThemeD10;
contains
uClassRegistryUtils in 'uClassRegistryUtils.pas',
uEditorRegistryUtils in 'uEditorRegistryUtils.pas',
uViewRegistryUtils in 'uViewRegistryUtils.pas';
end.

View File

@ -0,0 +1,16 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
#define uClassRegistryUtils_eClassnotFound 65520
STRINGTABLE
BEGIN
uClassRegistryUtils_eClassnotFound, "Class \"%s\" was not found in the registry."
END

Binary file not shown.

View File

@ -0,0 +1,305 @@
unit uClassRegistryUtils;
interface
uses
Classes, SysUtils, Forms, uGUIBase;
type
IClassRegistry = Interface
['{FD23C946-4103-4C67-9C3F-644B52826833}']
procedure RegisterClass( aClass: TClass; const aDisplayname: String = '');
procedure RegisterClasses( const aClasses: array of TClass;
const aDisplaynames: array of String );
procedure UnRegisterClass( aClass: TClass );
function FindClass( const aClassOrDisplayname: String ): Tclass;
function IsClassRegistered( aClass: TClass ): Boolean; overload;
function IsClassRegistered( const aDisplayname: String ): Boolean; overload;
procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil);
function CreateObject( const aClassOrDisplayname: String ): TObject;
end;
IComponentRegistry = Interface( IClassRegistry )
['{04BAA01F-9AF4-4E60-9922-641E127A35C2}']
function CreateComponent( const aClassOrDisplayname: String;
aOwner:TComponent = nil ): TComponent;
end;
IFormRegistry = Interface( IComponentRegistry )
['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}']
function CreateForm( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TForm;
end;
IDataModuleRegistry = Interface( IComponentRegistry )
['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}']
function CreateDatamodule( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TDatamodule;
end;
TClassRegistry = class( TInterfacedObject, IClassRegistry )
private
FList: TStringlist;
FMinAcceptableClass: TClass;
function FindClassByClassname( const aClassname: String ): Tclass;
function FindClassByDisplayname( const aDisplayname: String ): TClass;
function IsClassAcceptable( aClass: TClass ): Boolean;
function GetClasses(index: integer): TClass;
function GetCount: Integer;
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); virtual;
procedure RegisterClass( aClass: TClass; const aDisplayname: String = '');
procedure RegisterClasses( const aClasses: array of TClass;
const aDisplaynames: array of String );
procedure UnRegisterClass( aClass: TClass );
function FindClass( const aClassOrDisplayname: String ): Tclass;
function IsClassRegistered( aClass: TClass ): Boolean; overload;
function IsClassRegistered( const aDisplayname: String ): Boolean; overload;
procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil);
function CreateObject( const aClassOrDisplayname: String ): TObject;
property MinAcceptableClass: TClass read FMinAcceptableClass;
property List: TStringlist read FList;
property Count: Integer read GetCount;
property Classes[ index: integer ]: TClass read GetClasses;
public
constructor Create( minAcceptableClass: TClass = nil ); virtual;
destructor Destroy; override;
end;
TComponentRegistry = class( TClassRegistry, IComponentRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override;
function CreateComponent( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TComponent;
end;
TFormRegistry = class( TComponentRegistry, IFormRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override;
function CreateForm( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TForm;
end;
TDataModuleRegistry = class( TComponentRegistry, IDataModuleRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateDatamodule( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TDatamodule;
end;
EClassRegistryError = class( Exception );
implementation
{ TClassRegistry }
ResourceString
eClassnotFound = 'Class "%s" was not found in the registry.';
constructor TClassRegistry.Create(minAcceptableClass: TClass);
begin
inherited Create;
FList := Tstringlist.Create;
ValidateMinAcceptableClass( minAcceptableClass );
FMinAcceptableClass := minAcceptableClass;
end;
function TClassRegistry.CreateObject(
const aClassOrDisplayname: String): TObject;
begin
Result := FindClass( aClassOrDisplayname ).Create;
end;
destructor TClassRegistry.Destroy;
begin
Flist.Free;
inherited;
end;
function TClassRegistry.FindClass(
const aClassOrDisplayname: String): Tclass;
begin
Result := FindClassByDisplayname( aClassOrDisplayname );
If not Assigned( Result ) Then
Result := FindClassByClassname( aClassOrDisplayname );
If not Assigned( Result ) Then
raise EClassRegistryError.CreateFmt
( eClassnotFound, [ aClassOrDisplayname ] );
end;
function TClassRegistry.FindClassByClassname(
const aClassname: String): Tclass;
var
i: Integer;
begin
for i:= 0 to count-1 do begin
Result := classes[i];
If Result.ClassNameIs( aClassname ) Then
Exit;
end;
Result := nil;
end;
function TClassRegistry.FindClassByDisplayname(
const aDisplayname: String): TClass;
var
i: Integer;
begin
i:= List.IndexOf( aDisplayname );
If i >= 0 Then
Result := Classes[i]
Else
Result := nil;
end;
function TClassRegistry.GetClasses(index: integer): TClass;
begin
Result := TClass( List.Objects[index] );
end;
function TClassRegistry.GetCount: Integer;
begin
Result := List.Count;
end;
procedure TClassRegistry.GetRegisteredClasses(aList: TStrings;
aMinClass: TClass);
var
i: Integer;
aClass: TClass;
begin
Assert( Assigned( aList ));
aList.BeginUpdate;
try
aList.Clear;
If not Assigned( aMinClass ) Then
aList.Assign( List )
else begin
For i:= 0 To Count-1 Do Begin
aClass := Classes[i];
If aClass.InheritsFrom( aMinClass ) Then
aList.AddObject( List[i], TObject( aClass ));
end;
end;
finally
aList.EndUpdate
end;
end;
function TClassRegistry.IsClassAcceptable(aClass: TClass): Boolean;
begin
Result := Assigned( aClass ) and
aClass.InheritsFrom( MinAcceptableClass );
end;
function TClassRegistry.IsClassRegistered(const aDisplayname: String): Boolean;
begin
Result := List.IndexOf(aDisplayname) >= 0;
end;
function TClassRegistry.IsClassRegistered(aClass: TClass): Boolean;
begin
Result := List.IndexOfObject( TObject( aClass )) >= 0;
end;
procedure TClassRegistry.RegisterClass(aClass: TClass;
const aDisplayname: String);
begin
Assert( Assigned( aClass ), 'Cannot register Nil class' );
If aDisplayname = '' Then
RegisterClass( aClass, aClass.Classname )
else begin
Assert( IsClassAcceptable( aClass ),
format('Cannot register %s since it does not inherit from %s',
[aclass.classname, MinAcceptableClass.classname] ));
Assert( not IsClassRegistered( aClass ),
Format('Class %s is already registered.', [aClass.Classname]));
List.AddObject( aDisplayname, TObject( aClass ));
end;
end;
procedure TClassRegistry.RegisterClasses(const aClasses: array of TClass;
const aDisplaynames: array of String);
var
i: Integer;
begin
Assert( High( aClasses ) = High( aDisplaynames ),
'Size of both parameter arrays has to be the same.' );
for i:= Low( aClasses ) to High( aClasses ) do
RegisterClass( aClasses[i], aDisplaynames[i] );
end;
procedure TClassRegistry.UnRegisterClass(aClass: TClass);
var
i: Integer;
begin
i:= List.IndexOfObject( TObject( aClass ));
If i >= 0 Then
List.Delete( i );
// does not consider attempt to unregister a class that is not
// registered as an error.
end;
procedure TClassRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
If not Assigned( aMinAcceptableClass ) Then
aMinAcceptableClass := TObject;
end;
{ TComponentRegistry }
function TComponentRegistry.CreateComponent(
const aClassOrDisplayname: String; aOwner: TComponent): TComponent;
var
aClass: TComponentClass;
begin
aClass := TComponentClass( FindClass( aClassOrDisplayname ));
Result := aClass.Create( aOwner );
end;
procedure TComponentRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TComponent )
Then
aMinAcceptableClass := TComponent;
end;
{ TFormRegistry }
function TFormRegistry.CreateForm(const aClassOrDisplayname: String;
aOwner: TComponent): TForm;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) As TForm;
end;
procedure TFormRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TForm )
Then
aMinAcceptableClass := TForm;
end;
{ TDataModuleRegistry }
function TDataModuleRegistry.CreateDatamodule(
const aClassOrDisplayname: String; aOwner: TComponent): TDatamodule;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) As TDatamodule;
end;
procedure TDataModuleRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TDatamodule )
Then
aMinAcceptableClass := TDatamodule;
end;
end.

View File

@ -0,0 +1,81 @@
unit uEditorRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils, uCustomEditor;
type
{
IEditorRegistry = interface (IComponentRegistry)
22F14B82-AC61-4987-847E-AF8513DE2A10
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = NIL): TCustomEditor;
end;
TEditorRegistry = class(TComponentRegistry, IEditorRegistry)
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TCustomEditor;
end;
}
IEditorRegistry = interface (IFormRegistry)
['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}']
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = NIL): TForm;
end;
TEditorRegistry = class(TFormRegistry, IEditorRegistry)
protected
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TForm;
end;
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
var
EditorRegistry : IEditorRegistry;
implementation
uses
SysUtils, cxControls;
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
ShowHourglassCursor;
try
Result := Supports(EditorRegistry.CreateEditor(AName, Application), IID, Intf);
finally
HideHourglassCursor;
end;
end;
{ TEditorRegistry }
function TEditorRegistry.CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent): TForm;
begin
if not Assigned(AOwner) then
AOwner := Application;
Result := CreateComponent( aClassOrDisplayname, aOwner ) as TForm;
end;
{procedure TEditorRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
if not aMinAcceptableClass.InheritsFrom(TCustomEditor) then
aMinAcceptableClass := TCustomEditor;
end;}
initialization
EditorRegistry := TEditorRegistry.Create;
finalization
EditorRegistry := NIL;
end.

View File

@ -0,0 +1,50 @@
unit uViewRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils, uCustomView;
type
IViewRegistry = interface (IComponentRegistry)
['{F49AE52F-47EC-42AF-8365-A09270E4B45D}']
function CreateView(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TCustomView;
end;
TViewRegistry = class(TComponentRegistry, IViewRegistry)
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateView( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TCustomView;
end;
var
ViewRegistry : IViewRegistry;
implementation
{ TViewRegistry }
function TViewRegistry.CreateView(const aClassOrDisplayname: String;
aOwner: TComponent): TCustomView;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) as TCustomView;
end;
procedure TViewRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
if not aMinAcceptableClass.InheritsFrom(TCustomView) then
aMinAcceptableClass := TCustomView;
end;
initialization
ViewRegistry := TViewRegistry.Create;
finalization
ViewRegistry := NIL;
end.

21
Base/ControllerBase.drc Normal file
View File

@ -0,0 +1,21 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
DESCRIPTION RCDATA
BEGIN
"\x4c", "\x00", "\x69", "\x00", "\x62", "\x00", "\x72", "\x00", /* 0000: L.i.b.r. */
"\x65", "\x00", "\x72", "\x00", "\x69", "\x00", "\x61", "\x00", /* 0008: e.r.i.a. */
"\x20", "\x00", "\x62", "\x00", "\x61", "\x00", "\x73", "\x00", /* 0010: .b.a.s. */
"\x65", "\x00", "\x20", "\x00", "\x64", "\x00", "\x65", "\x00", /* 0018: e. .d.e. */
"\x20", "\x00", "\x46", "\x00", "\x61", "\x00", "\x63", "\x00", /* 0020: .F.a.c. */
"\x74", "\x00", "\x75", "\x00", "\x47", "\x00", "\x45", "\x00", /* 0028: t.u.G.E. */
"\x53", "\x00", "\x00", "\x00" /* 0030: S... */
END

View File

@ -0,0 +1,492 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{EF3998E7-B579-4A14-9E7A-6CDDB582B1C7}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ControllerBase.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath">..\..\DataAbstract_D10\Lib;..\Lib</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir"></Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>
<!-- EurekaLog First Line
[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."
EurekaLog Last Line -->
</BorlandProject>

View File

@ -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
-N0".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-U"..\..\DataAbstract_D10\Lib;..\Lib"
-O"..\..\DataAbstract_D10\Lib;..\Lib"
-I"..\..\DataAbstract_D10\Lib;..\Lib"
-R"..\..\DataAbstract_D10\Lib;..\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,40 @@
package ControllerBase;
{$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,
DataAbstract_D10,
cxLibraryD10,
dxThemeD10;
contains
uControllerBase in 'uControllerBase.pas',
uControllerDetallesBase in 'uControllerDetallesBase.pas';
end.

View File

@ -0,0 +1,14 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

Binary file not shown.

View File

@ -0,0 +1,102 @@
unit uControllerBase;
interface
uses
Classes, uDADataTable;
type
ISujeto = interface;
IObservador = interface
['{679D5CF2-D5DC-4A52-9FF3-04AD91402483}']
procedure RecibirAviso(ASujeto: ISujeto); overload;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload;
end;
ISujeto = interface
['{CDB691CD-D1D6-4F2E-AA34-93B1CD0E6030}']
procedure AddObservador(Observador: IObservador);
procedure DeleteObservador(Observador: IObservador);
end;
TObservador = class(TInterfacedObject, IObservador)
public
procedure RecibirAviso(ASujeto: ISujeto); overload; virtual;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; virtual; abstract;
end;
TSujeto = class(TInterfacedObject, ISujeto)
private
fObservadores: IInterfaceList;
fUpdateCount: Integer;
protected
procedure AvisarObservadores; overload;
procedure AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); overload;
public
constructor Create; virtual;
procedure AddObservador(Observador: IObservador);
procedure DeleteObservador(Observador: IObservador);
destructor Destroy; override;
end;
implementation
uses
SysUtils;
{ TSujeto }
procedure TSujeto.addObservador(Observador: IObservador);
begin
fObservadores.Add(Observador);
end;
procedure TSujeto.AvisarObservadores;
var
i: Integer;
AObs : IObservador;
begin
for i := 0 to Pred(fObservadores.Count) do
begin
if Supports(fObservadores[i], IObservador, AObs) then
AObs.RecibirAviso(Self);
end;
end;
procedure TSujeto.AvisarObservadores(ADataTable: IDAStronglyTypedDataTable);
var
i: Integer;
AObs : IObservador;
begin
for i := 0 to Pred(fObservadores.Count) do
begin
if Supports(fObservadores[i], IObservador, AObs) then
AObs.RecibirAviso(Self, ADataTable);
end;
end;
constructor TSujeto.Create;
begin
fObservadores := TInterfaceList.Create;
end;
procedure TSujeto.DeleteObservador(Observador: IObservador);
begin
fObservadores.Remove(Observador);
end;
destructor TSujeto.Destroy;
begin
FreeAndNil(fObservadores);
inherited;
end;
{ TObservador }
procedure TObservador.RecibirAviso(ASujeto: ISujeto);
begin
//
end;
end.

View File

@ -0,0 +1,586 @@
unit uControllerDetallesBase;
interface
uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerBase;
const
CAMPO_ID = 'ID';
CAMPO_POSICION = 'POSICION';
CAMPO_TIPO = 'TIPO_DETALLE';
CAMPO_CONCEPTO = 'CONCEPTO';
CAMPO_CANTIDAD = 'CANTIDAD';
CAMPO_IMPORTE_UNIDAD = 'IMPORTE_UNIDAD';
CAMPO_IMPORTE_TOTAL = 'IMPORTE_TOTAL';
TIPO_DETALLE_CONCEPTO = 'Concepto';
TIPO_DETALLE_TITULO = 'Titulo';
TIPO_DETALLE_SUBTOTAL = 'Subtotal';
TIPO_DETALLE_SALTO = 'Salto';
CTE_DESC_SALTO = 'SALTO DE PAGINA >>';
type
TIntegerArray = array of Integer;
IControllerDetallesBase = interface(ISujeto)
['{F0B0E714-EC0D-4B6B-98B1-76F72F70B735}']
function getTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String;
procedure Clear(ADataTable: IDAStronglyTypedDataTable);
procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant);
procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray);
procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer);
// procedure Copy(SMExport: TSMExportToClipboard);
// procedure Paste;
procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable);
function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double;
function DarListaTiposDetalle: TStringList;
end;
TControllerDetallesBase = class (TSujeto, IControllerDetallesBase)
private
fObservadores: IInterfaceList;
fUpdateCount: Integer;
function CalcularTotales(Modificar: boolean; DataTable: TDADataTable): Double;
protected
procedure Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer);
function DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer;
procedure Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer);
procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable);
procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable);
//Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo
procedure validarCampos(DataTable: TDADataTable); virtual;
//Si sobreescribimos este método podremos tener en cuenta otras columnas para el calculo del importe total de un concepto
function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; virtual;
procedure TratamientoDetalleConcepto(DataTable: TDADataTable); virtual;
procedure CalculoDetalleConcepto(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual;
procedure TratamientoDetalleSalto(DataTable: TDADataTable); virtual;
procedure CalculoDetalleSalto(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual;
procedure TratamientoDetalleTitulo(DataTable: TDADataTable); virtual;
procedure CalculoDetalleTitulo(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual;
procedure TratamientoDetalleSubtotal(DataTable: TDADataTable); virtual;
procedure CalculoDetalleSubtotal(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); virtual;
//Si sobreescribimos este metodo es para continuar el CalcularTotales segun los tipos de concepto de los hijos
function CalcularTotalesHijos(Modificar: boolean; DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double): Double; virtual;
public
constructor Create; virtual;
destructor Destroy; override;
function getTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String;
procedure Clear(ADataTable: IDAStronglyTypedDataTable);
procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); virtual;
procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); virtual;
procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); virtual;
// procedure Copy(SMExport: TSMExportToClipboard);
// procedure Paste;
procedure ActualizarTotales(ADataTable: IDAStronglyTypedDataTable);
function DarTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double;
function DarListaTiposDetalle: TStringList; virtual;
end;
implementation
{ TControllerDetallesBase }
uses cxControls, SysUtils, DB, uDAInterfaces;
procedure TControllerDetallesBase.ActualizarTotales(ADataTable: IDAStronglyTypedDataTable);
begin
BeginUpdate(ADataTable);
try
CalcularTotales(True, ADataTable.DataTable);
finally
EndUpdate(ADataTable);
end;
end;
procedure TControllerDetallesBase.Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant);
var
AuxNumOrden : Integer;
begin
BeginUpdate(ADataTable);
try
with ADataTable do
begin
AuxNumOrden := desplazarNPosiciones(DataTable, DataTable.FieldByName(CAMPO_POSICION).AsVariant, 1);
DataTable.Insert;
DataTable.FieldByName(CAMPO_POSICION).AsInteger := AuxNumOrden;
DataTable.FieldByName(CAMPO_TIPO).AsVariant := TipoConcepto;
DataTable.post;
end;
finally
EndUpdate(ADataTable);
end;
end;
procedure TControllerDetallesBase.BeginUpdate(ADataTable: IDAStronglyTypedDataTable);
begin
ShowHourglassCursor;
Inc(fUpdateCount);
ADataTable.DataTable.DisableControls;
end;
function TControllerDetallesBase.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double;
begin
with DataTable do
Result := FieldByName(CAMPO_CANTIDAD).asInteger * FieldByName(CAMPO_IMPORTE_UNIDAD).AsFloat;
end;
function TControllerDetallesBase.CalcularTotales(Modificar: boolean; DataTable: TDADataTable): Double;
{
funcion que recalcula todos los detalles de la tabla pasada por parametro y devuelve
la cantidad total de los mismos
}
var
AuxPosicionIni : Integer;
AuxPosicion : Integer;
AuxImporteAcumulado : Double;
AuxImporteTotal : Double;
begin
if (DataTable.State in dsEditModes) then
DataTable.Post;
validarCampos(DataTable);
DataTable.DisableControls;
try
AuxPosicionIni := DataTable.FieldByName(CAMPO_POSICION).AsInteger;
AuxPosicion := 0;
AuxImporteAcumulado := 0;
AuxImporteTotal := 0;
DataTable.First;
while DataTable.Locate(CAMPO_POSICION, IntToStr(AuxPosicion), []) do
begin
//SALTOS DE LINEA
if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_SALTO) then
begin
if Modificar then
TratamientoDetalleSalto(DataTable); //Se podrá sobreescribir para que se tengan en cuenta nuevos campos en hijos
CalculoDetalleSalto(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podrá sobreescribir para posibles nuevos calculos de los hijos
end
//TITULOS
else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_TITULO) then
begin
if Modificar then
TratamientoDetalleTitulo(DataTable); //Se podrá sobreescribir para que se tengan en cuenta nuevos campos en hijos
CalculoDetalleTitulo(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podrá sobreescribir para posibles nuevos calculos de los hijos
end
//SUBTITULOS
else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_SUBTOTAL) then
begin
if Modificar then
TratamientoDetalleSubtotal(DataTable); //Se podrá sobreescribir para que se tengan en cuenta nuevos campos
CalculoDetalleSubtotal(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podrá sobreescribir para posibles nuevos calculos de los hijos
end
//CONCEPTOS
else if (DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_CONCEPTO) then
begin
if Modificar then
TratamientoDetalleConcepto(DataTable); //Se podrá sobreescribir para que se tengan en cuenta nuevos campos
CalculoDetalleConcepto(DataTable, AuxImporteAcumulado, AuxImporteTotal); //Se podrá sobreescribir para posibles nuevos calculos de los hijos
end
//HIJOS
else CalcularTotalesHijos(Modificar, DataTable, AuxImporteAcumulado, AuxImporteTotal);
Inc(AuxPosicion);
DataTable.First;
end;
finally
//Dejamos el puntero en la misma posición que la que partió
DataTable.Locate(CAMPO_POSICION, IntToStr(AuxPosicionIni), []);
DataTable.EnableControls;
end;
Result := AuxImporteTotal;
end;
function TControllerDetallesBase.CalcularTotalesHijos(Modificar: boolean; DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double): Double;
begin
//
end;
procedure TControllerDetallesBase.CalculoDetalleConcepto(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double);
begin
with DataTable do
begin
ImporteAcumulado := ImporteAcumulado + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat;
ImporteTotal := ImporteTotal + FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat;
end;
end;
procedure TControllerDetallesBase.CalculoDetalleSalto(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double);
begin
with DataTable do
begin
if not Editing then Edit;
FieldByName(CAMPO_CANTIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null;
Post;
end;
end;
procedure TControllerDetallesBase.CalculoDetalleSubtotal(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double);
begin
with DataTable do
begin
if not Editing then Edit;
FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat := ImporteAcumulado;
Post;
end;
ImporteAcumulado := 0;
end;
procedure TControllerDetallesBase.CalculoDetalleTitulo(DataTable: TDADataTable; var ImporteAcumulado, ImporteTotal: Double);
begin
//
end;
procedure TControllerDetallesBase.Clear(ADataTable: IDAStronglyTypedDataTable);
begin
//
end;
constructor TControllerDetallesBase.Create;
begin
inherited;
fObservadores := TInterfaceList.Create;
end;
function TControllerDetallesBase.DarListaTiposDetalle: TStringList;
begin
Result := TStringList.Create;
Result.Values[TIPO_DETALLE_CONCEPTO] := 'Concepto';
Result.Values[TIPO_DETALLE_TITULO] := 'Título de capítulo';
Result.Values[TIPO_DETALLE_SUBTOTAL] := 'Final de capítulo';
Result.Values[TIPO_DETALLE_SALTO] := 'Salto de página';
end;
function TControllerDetallesBase.darTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double;
begin
Result := CalcularTotales(False, ADataTable.DataTable);
end;
procedure TControllerDetallesBase.Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray);
var
i: integer;
AField: TDAField;
DeletePosicion: Integer;
begin
AField := ADataTable.DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (Delete)');
BeginUpdate(ADataTable);
try
with ADataTable do
begin
for i := 0 to High(POSICION) do
begin
DataTable.First;
DeletePosicion := POSICION[i];
if DataTable.Locate(CAMPO_POSICION, IntToStr(DeletePosicion), []) then
DataTable.Delete;
end;
renumerar(DataTable, DeletePosicion);
end;
finally
EndUpdate(ADataTable);
end;
end;
function TControllerDetallesBase.DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer;
{
Función que desplaza NPosiciones el numero de orden a partir del elemento con el
número de orden dado. Devuelve el numero de orden del primer elemento del hueco
generado
}
var
AuxNumOrden: Integer;
AuxNumPos: Integer;
AField: TDAField;
begin
AField := DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (desplazarNPosiciones)');
if VarIsNull(NPosiciones)
then AuxNumPos := 1
else AuxNumPos := NPosiciones;
if VarIsNull(NumOrdenIni)
then AuxNumOrden := 0
else AuxNumOrden := NumOrdenIni + 1; //Añadimos por abajo siempre
Result := AuxNumOrden;
with DataTable do
begin
First;
while not EOF do
begin
if (FieldByName(CAMPO_POSICION).AsInteger >= AuxNumOrden) then
begin
if not Editing then Edit;
FieldByName(CAMPO_POSICION).AsInteger := FieldByName(CAMPO_POSICION).AsInteger + AuxNumPos;
Post;
end;
Next;
end;
end;
end;
destructor TControllerDetallesBase.Destroy;
begin
FreeAndNil(fObservadores);
inherited;
end;
procedure TControllerDetallesBase.EndUpdate(ADataTable: IDAStronglyTypedDataTable);
begin
Dec(fUpdateCount);
CalcularTotales(True, ADataTable.DataTable);
ADataTable.DataTable.EnableControls;
if fUpdateCount = 0 then
AvisarObservadores(ADataTable);
HideHourglassCursor;
end;
function TControllerDetallesBase.getTipo(ADataTable: IDAStronglyTypedDataTable; pPosicion: Integer): String;
var
posIni: integer;
AField: TDAField;
begin
AField := ADataTable.DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (getTipo)');
Result := '';
BeginUpdate(ADataTable);
try
with ADataTable do
begin
//Guardamos la posicion en la que estamos
posIni := DataTable.FieldByName(CAMPO_POSICION).AsInteger;
DataTable.First;
if DataTable.Locate(CAMPO_POSICION, IntToStr(pPosicion), []) then
Result := DataTable.FieldByName(CAMPO_TIPO).AsString;
//Volvemos a posicionar el puntero donde estaba
DataTable.First;
if not DataTable.Locate(CAMPO_POSICION, IntToStr(posIni), []) then
raise Exception.Create('La posición ' + IntToStr(posIni) + ' no existe (getTipo)');
end;
finally
EndUpdate(ADataTable);
end;
end;
procedure TControllerDetallesBase.Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer);
var
i:Integer;
begin
BeginUpdate(ADataTable);
try
with ADataTable do
begin
//Empezamos desde abajo
if Posiciones > 0 then
for i:= High(POSICION) downto 0 do
Mover(DataTable, POSICION[i], Posiciones)
else
//Empezamos desde arriba
for i:= 0 to High(POSICION) do
Mover(DataTable, POSICION[i], Posiciones);
end;
finally
EndUpdate(ADataTable);
end;
end;
procedure TControllerDetallesBase.Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer);
{
procedimiento que desplaza el número de posiciones (NumPosiciones) pasados por parametro
a la posicion (Posicion) dada, en caso de ser negativo será hacia arriba y positivo hacia
abajo
}
var
AuxOrden : Integer;
AuxID : Integer;
AField: TDAField;
begin
AField := DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (mover)');
AField := DataTable.FindField(CAMPO_ID);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_ID + ' no encontrado (mover)');
//Buscamos el elemento con la posicion pasada por parametro
DataTable.First;
if not DataTable.Locate(CAMPO_POSICION, IntToStr(Posicion), []) then
raise Exception.Create('Error, no se ha encontrado la POSICION [' + IntToStr(Posicion) + '] (mover)');
//Guardamos el id del elemento a cambiar de posicion y calculamos su nueva posicion
AuxID := DataTable.FieldByName(CAMPO_ID).AsInteger;
AuxOrden := Posicion + NumPosiciones;
DataTable.First;
if DataTable.Locate(CAMPO_POSICION, IntToStr(AuxOrden), []) then
begin
if not DataTable.Editing then DataTable.Edit;
DataTable.FieldByName(CAMPO_POSICION).AsInteger := DataTable.FieldByName(CAMPO_POSICION).AsInteger - NumPosiciones;
//Se hace dentro por si es el ultimo o el primero
DataTable.First;
if not DataTable.Locate(CAMPO_ID, IntToStr(AuxID), []) then
raise Exception.Create('Error, no se ha encontrado el ID [' + IntToStr(AuxID) + '] (mover)');
if not DataTable.Editing then DataTable.Edit;
DataTable.FieldByName(CAMPO_POSICION).AsInteger := AuxOrden;
DataTable.Post;
end;
//Colocamos el puntero en la posición en la que estaba
DataTable.First;
DataTable.Locate(CAMPO_ID, IntToStr(AuxID), []);
end;
procedure TControllerDetallesBase.Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer);
{
procedimiento que renumera todos los conceptos de la tabla dada por parametro
}
var
i, j : Integer;
AField: TDAField;
begin
AField := DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (renumerar)');
with DataTable do
begin
for i:=0 to RecordCount-1 do
begin
First;
if not Locate(CAMPO_POSICION, IntToStr(i), []) then
begin
j := i;
First;
while not Locate(CAMPO_POSICION, IntToStr(j), []) do
begin
Inc(j);
First;
end;
if not Editing then Edit;
FieldByName(CAMPO_POSICION).AsInteger := i;
Post;
end;
end;
//Posicionamos el puntero en la posición dada por parametro
if Locate(CAMPO_POSICION, IntToStr(LocalizaPosicion), []) then
end;
end;
procedure TControllerDetallesBase.TratamientoDetalleConcepto(DataTable: TDADataTable);
begin
with DataTable do
begin
if not Editing then Edit;
//Si alguno de los campos de calculo de total es nulo el total tambien será nulo
if (VarIsNull(FieldByName(CAMPO_CANTIDAD).AsVariant)
or VarIsNull(FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant))
then FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null
else FieldByName(CAMPO_IMPORTE_TOTAL).AsFloat := CalcularImporteTotalConcepto(DataTable);
Post;
end;
end;
procedure TControllerDetallesBase.TratamientoDetalleSalto(DataTable: TDADataTable);
begin
with DataTable do
begin
if not Editing then Edit;
FieldByName(CAMPO_CONCEPTO).AsString := CTE_DESC_SALTO;
FieldByName(CAMPO_CANTIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null;
Post;
end;
end;
procedure TControllerDetallesBase.TratamientoDetalleSubtotal(DataTable: TDADataTable);
begin
with DataTable do
begin
if not Editing then Edit;
if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then
FieldByName(CAMPO_CONCEPTO).AsVariant := Null;
FieldByName(CAMPO_CANTIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null;
Post;
end;
end;
procedure TControllerDetallesBase.TratamientoDetalleTitulo(DataTable: TDADataTable);
begin
with DataTable do
begin
if not Editing then Edit;
if (FieldByName(CAMPO_CONCEPTO).AsString = CTE_DESC_SALTO) then
FieldByName(CAMPO_CONCEPTO).AsVariant := Null;
FieldByName(CAMPO_CANTIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null;
FieldByName(CAMPO_IMPORTE_TOTAL).AsVariant := Null;
Post;
end;
end;
procedure TControllerDetallesBase.validarCampos(DataTable: TDADataTable);
var
AField: TDAField;
begin
//Validamos la existencia de todos los campos necesarios
AField := DataTable.FindField(CAMPO_POSICION);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (validarCampos)');
AField := DataTable.FindField(CAMPO_TIPO);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_TIPO + ' no encontrado (validarCampos)');
AField := DataTable.FindField(CAMPO_CANTIDAD);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_CANTIDAD + ' no encontrado (validarCampos)');
AField := DataTable.FindField(CAMPO_IMPORTE_UNIDAD);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_IMPORTE_UNIDAD + ' no encontrado (validarCampos)');
AField := DataTable.FindField(CAMPO_IMPORTE_TOTAL);
if not Assigned(AField) then
raise Exception.Create('Campo ' + CAMPO_IMPORTE_TOTAL + ' no encontrado (validarCampos)');
end;
end.

View File

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType">VCLApplication</Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{E3B7048E-3BAA-4EA0-B082-D0FADB463CC7}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">DocumentosAsociados.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath">..\..\DataAbstract_D10\Lib;..\Lib</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Pascal Script\Dcu\D10\PascalScript_RO_D10.bpl">RemObjects Pascal Script - RemObjects SDK 3.0 Integration</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
</BorlandProject>

View File

@ -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
-N0".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-U"..\..\DataAbstract_D10\Lib;..\Lib"
-O"..\..\DataAbstract_D10\Lib;..\Lib"
-I"..\..\DataAbstract_D10\Lib;..\Lib"
-R"..\..\DataAbstract_D10\Lib;..\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,474 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=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
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]
D:\Proyectos\Componentes\TMS\Lib\D7\TMSDED7.bpl=TMS Component Pack design time support
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=.\
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=2
Item0=$(DELPHI)\Lib\Debug;E:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\GUISDK\lib\d7;..\..\Contactos\Cliente;..\..\Documentos asociados;..\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=.\
[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."

View File

@ -0,0 +1,37 @@
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
Base,
DataAbstract_D10,
GUIBase;
contains
uViewDocumentosAsociados in 'uViewDocumentosAsociados.pas' {frViewDocumentosAsociados: TFrame},
uBizDocumentosAsociados in 'uBizDocumentosAsociados.pas',
uEditorNombreDirectorio in 'uEditorNombreDirectorio.pas' {EditorNombreDirectorio};
end.

View File

@ -0,0 +1,14 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

View File

@ -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

Binary file not shown.

View File

@ -0,0 +1,290 @@
unit uBizDocumentosAsociados;
interface
uses Classes, DataAbstract_Intf;
const
CTE_DOCUMENTOS = 'PATH_DOCUMENTOS';
type
TGestorDocumentos = class(TObject)
private
FRootDocumentos: Variant;
FDirectorio: Variant;
FModoInsert: Boolean;
FEstructuraDir: TDAStringArray;
FOnEliminarDirDocumentos: TNotifyEvent;
FOnBeforeDirectorioChanged: TNotifyEvent;
FOnAfterDirectorioChanged: TNotifyEvent;
procedure CrearEstructuraDirectorios;
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);
function GetOnEliminarDirDocumentos : TNotifyEvent;
procedure SetOnEliminarDirDocumentos (const Value : TNotifyEvent);
function GetOnBeforeDirectorioChanged : TNotifyEvent;
procedure SetOnBeforeDirectorioChanged (const Value : TNotifyEvent);
function GetOnAfterDirectorioChanged : TNotifyEvent;
procedure SetOnAfterDirectorioChanged (const Value : TNotifyEvent);
public
property RootDocumentos: Variant read getRootDocumentos write setRootDocumentos;
property Directorio: Variant read getDirectorio write setDirectorio;
property ModoInsert: Boolean read getModoInsert write setModoInsert;
property OnEliminarDirDocumentos : TNotifyEvent read GetOnEliminarDirDocumentos write SetOnEliminarDirDocumentos;
property OnBeforeDirectorioChanged : TNotifyEvent read GetOnBeforeDirectorioChanged write SetOnBeforeDirectorioChanged;
property OnAfterDirectorioChanged : TNotifyEvent read GetOnAfterDirectorioChanged write SetOnAfterDirectorioChanged;
function AnadirDocumento(RutaDocumento: String; RutaDestino: String): Boolean;
function AnadirDirectorio(NuevoDirectorio: String): Boolean;
function EliminarDirectorio(Directorio: String): Boolean;
procedure HabilitarDirectorio;
function darRutaDocumentos: Variant;
procedure procesarDeleteTable;
procedure procesarCancelTable;
constructor Create (Estructura: TDAStringArray);
destructor Destroy; override;
end;
IBizDocumentosAsociados = interface
['{C6D5D7B4-AEFF-477A-98AC-56B7993664C6}']
function GetGestorDocumentos: TGestorDocumentos;
procedure SetGestorDocumentos(Value: TGestorDocumentos);
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
end;
implementation
uses SysUtils, uSistemaFunc, Variants, Forms, JclFileUtils, Dialogs;
function TGestorDocumentos.AnadirDocumento(RutaDocumento: String; RutaDestino: String): Boolean;
var
DireccionDestino: String;
begin
try
Result := False;
DireccionDestino := RutaDestino + 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
begin
CreateDir(DireccionDestino);
CrearEstructuraDirectorios;
end;
Result := True;
end;
function TGestorDocumentos.EliminarDirDocumentos: Boolean;
begin
if Assigned(FOnEliminarDirDocumentos) then
FOnEliminarDirDocumentos(Self);
Result := EliminarDirectorio(darRutaDocumentos);
end;
procedure TGestorDocumentos.ProcesarDeleteTable;
begin
EliminarDirDocumentos;
FDirectorio := Null;
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);
var
DirectorioAnt, NombreAnt, NombrePos: string;
begin
//Asigno el mismo valor que se tiene
if (VarToStr(FDirectorio) = VarToStr(Value)) then
Exit;
//Si es cadena vacia
if ((not VarIsNull(Value)) and ((Length(Value) = 0) or (Value = 0))) then
Exit;
//LANZAMOS EVENTO ANTES
if Assigned(FOnBeforeDirectorioChanged) then
FOnBeforeDirectorioChanged(Self);
if (VarIsNull(FDirectorio) or VarIsNull(Value)) then
FDirectorio := Value
else if (FDirectorio > 0) then
begin
FDirectorio := Value;
//Si no existe lo creamos
if not DirectoryExists(darRutaDocumentos) then
CrearDirDocumentos
end
else
begin
NombreAnt := darRutaDocumentos;
DirectorioAnt := FDirectorio;
FDirectorio := Value;
NombrePos := darRutaDocumentos;
if DirectoryExists(NombreAnt) then
begin
// ShowMessage('Renombro directorio ''' + NombreAnt + ''' a ''' + NombrePos + '''');
if not RenameFile(NombreAnt, NombrePos) then
begin
FDirectorio := DirectorioAnt;
raise Exception.Create('No se pude renombrar el directorio, asegurese que no tenga abierto nada de su contenido y no exista ya una carpeta con ese nombre');
end;
end;
end;
//LANZAMOS EVENTO DESPUES
if Assigned(FOnAfterDirectorioChanged) then
FOnAfterDirectorioChanged(Self);
end;
procedure TGestorDocumentos.setModoInsert(const Value: Boolean);
begin
FModoInsert := Value;
end;
procedure TGestorDocumentos.setRootDocumentos(const Value: Variant);
begin
FRootDocumentos := Value;
end;
procedure TGestorDocumentos.CrearEstructuraDirectorios;
var
RutaBase: String;
i: Integer;
begin
RutaBase := darRutaDocumentos;
if not DirectoryExists(RutaBase) then
Exit;
if Assigned(FEstructuraDir) then
for i:=0 to FEstructuraDir.Count-1 do
CreateDir(RutaBase + '\' + FEstructuraDir.Items[i]);
end;
function TGestorDocumentos.AnadirDirectorio(NuevoDirectorio: String): Boolean;
begin
Result := False;
Application.ProcessMessages;
if DirectoryExists(NuevoDirectorio) then
raise Exception.Create('Ya existe un directorio con ese nombre, en el directorio actual')
else
Result := CreateDir(NuevoDirectorio)
end;
function TGestorDocumentos.EliminarDirectorio(Directorio: String): Boolean;
begin
Result := False;
Application.ProcessMessages;
if DirectoryExists(Directorio) then
begin
if not Deltree(Directorio) then
raise Exception.Create('Error al eliminar el directorio, compruebe archivos abiertos y tiene permisos')
else
Result := True;
end;
end;
constructor TGestorDocumentos.Create (Estructura: TDAStringArray);
begin
FDirectorio := Null;
FModoInsert := False;
FEstructuraDir := Estructura;
end;
function TGestorDocumentos.GetOnAfterDirectorioChanged: TNotifyEvent;
begin
Result := FOnAfterDirectorioChanged;
end;
procedure TGestorDocumentos.SetOnAfterDirectorioChanged(const Value: TNotifyEvent);
begin
FOnAfterDirectorioChanged := Value;
end;
function TGestorDocumentos.GetOnBeforeDirectorioChanged: TNotifyEvent;
begin
Result := FOnBeforeDirectorioChanged;
end;
procedure TGestorDocumentos.SetOnBeforeDirectorioChanged(const Value: TNotifyEvent);
begin
FOnBeforeDirectorioChanged := Value;
end;
destructor TGestorDocumentos.Destroy;
begin
FreeAndNil(FEstructuraDir);
inherited;
end;
function TGestorDocumentos.GetOnEliminarDirDocumentos: TNotifyEvent;
begin
Result := FOnEliminarDirDocumentos;
end;
procedure TGestorDocumentos.SetOnEliminarDirDocumentos(const Value: TNotifyEvent);
begin
FOnEliminarDirDocumentos := Value;
end;
end.

View File

@ -0,0 +1,52 @@
object EditorNombreDirectorio: TEditorNombreDirectorio
Left = 603
Top = 334
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'Nombre del directorio'
ClientHeight = 118
ClientWidth = 230
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 24
Top = 16
Width = 223
Height = 13
Caption = 'Escriba el nombre del nuevo directorio:'
end
object edtNombre: TEdit
Left = 24
Top = 40
Width = 185
Height = 21
TabOrder = 0
Text = 'Nuevo directorio'
end
object Button1: TButton
Left = 48
Top = 80
Width = 75
Height = 25
Caption = 'Aceptar'
ModalResult = 1
TabOrder = 1
end
object Button2: TButton
Left = 136
Top = 80
Width = 75
Height = 25
Caption = 'Cancelar'
ModalResult = 2
TabOrder = 2
end
end

View File

@ -0,0 +1,39 @@
unit uEditorNombreDirectorio;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEditorNombreDirectorio = class(TForm)
Label1: TLabel;
edtNombre: TEdit;
Button1: TButton;
Button2: TButton;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
function darNombre:String;
end;
var
EditorNombreDirectorio: TEditorNombreDirectorio;
implementation
{$R *.dfm}
function TEditorNombreDirectorio.darNombre: String;
begin
Result := edtNombre.Text;
end;
procedure TEditorNombreDirectorio.FormShow(Sender: TObject);
begin
edtNombre.SetFocus;
end;
end.

Binary file not shown.

View File

@ -0,0 +1,277 @@
inherited frViewDocumentosAsociados: TfrViewDocumentosAsociados
Width = 692
Height = 370
OnDestroy = CustomViewDestroy
OnHide = CustomViewHide
OnShow = CustomViewShow
ExplicitWidth = 692
ExplicitHeight = 370
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 692
Height = 370
Align = alClient
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth, acsHeight]
DesignSize = (
692
370)
object Panel10: TPanel
Left = 10
Top = 41
Width = 721
Height = 417
Align = alClient
BevelOuter = bvNone
Caption = ' '
TabOrder = 2
object Splitter1: TSplitter
Left = 0
Top = 0
Height = 417
Beveled = True
ExplicitLeft = 185
end
object Panel11: TPanel
Left = 3
Top = 0
Width = 718
Height = 417
Align = alClient
BevelOuter = bvNone
Caption = ' '
ParentColor = True
TabOrder = 0
ExplicitWidth = 669
ExplicitHeight = 319
object explo: TcxShellListView
Left = 0
Top = 19
Width = 718
Height = 398
Align = alClient
DragDropSettings.DefaultDropEffect = deCopy
DragDropSettings.DropEffect = []
MultiSelect = True
Options.ShowFolders = False
Options.ContextMenus = False
Options.TrackShellChanges = False
Options.ShowToolTip = False
Options.AutoNavigate = False
ParentShowHint = False
PopupMenu = GridPopupMenu
Root.BrowseFolder = bfCustomPath
ShowHint = True
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.TextStyle = []
TabOrder = 0
ViewStyle = vsList
OnDblClick = exploDblClick
ExplicitWidth = 669
ExplicitHeight = 300
end
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 718
Height = 19
AutoSize = True
ButtonHeight = 19
ButtonWidth = 104
Caption = 'ToolBar1'
EdgeInner = esNone
EdgeOuter = esNone
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
List = True
ParentFont = False
ShowCaptions = True
TabOrder = 1
ExplicitWidth = 669
object ToolButton1: TToolButton
Left = 0
Top = 0
Action = actAnadirDocumento
end
object ToolButton4: TToolButton
Left = 104
Top = 0
Action = actCopiarDocumento
end
object ToolButton2: TToolButton
Left = 208
Top = 0
Action = actEliminarDocumento
end
object ToolButton3: TToolButton
Left = 312
Top = 0
Width = 8
Caption = 'ToolButton3'
ImageIndex = 2
Style = tbsSeparator
end
object ToolButton5: TToolButton
Left = 320
Top = 0
Action = actAbrirDocumento
end
end
end
end
object edtlDirectorio: TcxTextEdit
Left = 70
Top = 10
Anchors = [akLeft, akTop, akRight]
AutoSize = False
ParentFont = False
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clActiveCaption
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Height = 21
Width = 400
end
object Button1: TButton
Left = 582
Top = 10
Width = 100
Height = 25
Caption = 'Abrir carpeta ...'
TabOrder = 1
OnClick = Button1Click
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = [aaHorizontal]
AlignVert = avClient
Caption = 'Documentos'
ShowCaption = False
ShowBorder = False
object dxLayoutControl1Group2: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Directorio:'
Offsets.Left = 5
Offsets.Right = 5
Control = edtlDirectorio
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
Caption = 'Button1'
ShowCaption = False
Control = Button1
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaHorizontal]
AlignVert = avClient
Caption = 'New Item'
ShowCaption = False
Control = Panel10
ControlOptions.AutoColor = True
ControlOptions.ShowBorder = False
end
end
end
end
object OpenDialog1: TOpenDialog
Options = [ofHideReadOnly, ofAllowMultiSelect, ofPathMustExist, ofFileMustExist, ofEnableSizing]
Left = 344
Top = 8
end
object ActionList1: TActionList
Left = 312
Top = 8
object actAnadirDocumento: TAction
Category = 'Archivos'
Caption = 'A'#241'adir documento'
ShortCut = 45
OnExecute = actAnadirDocumentoExecute
OnUpdate = actAnadirDocumentoUpdate
end
object actEliminarDocumento: TAction
Category = 'Archivos'
Caption = 'Eliminar documento'
ShortCut = 46
OnExecute = actEliminarDocumentoExecute
OnUpdate = actEliminarDocumentoUpdate
end
object actAbrirDocumento: TAction
Category = 'Archivos'
Caption = 'Abrir documento'
OnExecute = actAbrirDocumentoExecute
OnUpdate = actAbrirDocumentoUpdate
end
object actAnadirDir: TAction
Category = 'Directorios'
Caption = 'A'#241'adir'
end
object actEliminarDir: TAction
Category = 'Directorios'
Caption = 'Eliminar'
end
object actCopiarDocumento: TAction
Category = 'Archivos'
Caption = 'Copiar documento'
OnExecute = actCopiarDocumentoExecute
OnUpdate = actCopiarDocumentoUpdate
end
end
object GridPopupMenu: TPopupMenu
Left = 536
Top = 64
object Modificar1: TMenuItem
Action = actAbrirDocumento
end
object N1: TMenuItem
Caption = '-'
end
object Nuevo1: TMenuItem
Action = actAnadirDocumento
end
object Copiar1: TMenuItem
Action = actCopiarDocumento
end
object Previsualizar1: TMenuItem
Action = actEliminarDocumento
end
end
object PopupMenuDir: TPopupMenu
Left = 128
Top = 64
object MenuItem1: TMenuItem
Action = actAnadirDir
end
object MenuItem3: TMenuItem
Action = actEliminarDir
end
end
end

View File

@ -0,0 +1,323 @@
unit uViewDocumentosAsociados;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ShlObj, cxShellCommon, Menus, cxControls, DB,
cxContainer, cxShellListView, ExtCtrls, ActnList, StdCtrls,
JvComponent, JvChangeNotify, uBizDocumentosAsociados, JvComponentBase,
cxShellTreeView, ToolWin, dxLayoutControl, cxEdit, cxTextEdit, cxDBEdit,
uViewBase;
type
IViewDocumentosAsociados = interface(IViewBase)
['{3FB01C62-1D0C-446E-B5DE-9A10F7B14F20}']
function GetGestorDocumentos: TGestorDocumentos;
procedure SetGestorDocumentos(const Value: TGestorDocumentos);
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
procedure DeshabilitarDocumentos;
end;
TfrViewDocumentosAsociados = class(TfrViewBase, IViewDocumentosAsociados)
Panel10: TPanel;
Panel11: TPanel;
explo: TcxShellListView;
OpenDialog1: TOpenDialog;
ActionList1: TActionList;
actAnadirDocumento: TAction;
actEliminarDocumento: TAction;
actAbrirDocumento: TAction;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
Previsualizar1: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
Splitter1: TSplitter;
actAnadirDir: TAction;
actEliminarDir: TAction;
PopupMenuDir: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem3: TMenuItem;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
edtlDirectorio: TcxTextEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
Button1: TButton;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Group2: TdxLayoutGroup;
actCopiarDocumento: TAction;
Copiar1: TMenuItem;
ToolButton4: TToolButton;
procedure actAnadirDocumentoExecute(Sender: TObject);
procedure actAnadirDocumentoUpdate(Sender: TObject);
procedure actEliminarDocumentoExecute(Sender: TObject);
procedure actEliminarDocumentoUpdate(Sender: TObject);
procedure actAbrirDocumentoExecute(Sender: TObject);
procedure actAbrirDocumentoUpdate(Sender: TObject);
procedure actCopiarDocumentoExecute(Sender: TObject);
procedure actCopiarDocumentoUpdate(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
procedure exploDblClick(Sender: TObject);
procedure OnEliminarDirDocumentos(Sender : TObject);
procedure OnBeforeDirectorioChanged(Sender : TObject);
procedure OnAfterDirectorioChanged(Sender : TObject);
procedure Button1Click(Sender: TObject);
procedure CustomViewHide(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
private
FGestorDocumentos: TGestorDocumentos;
function GetGestorDocumentos: TGestorDocumentos;
procedure SetGestorDocumentos(const Value: TGestorDocumentos);
public
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
procedure HabilitarDocumentos;
procedure DeshabilitarDocumentos;
procedure refrescarTree;
end;
var
frViewDocumentosAsociados: TfrViewDocumentosAsociados;
implementation
{$R *.dfm}
uses ShellApi, JclShell, uEditorNombreDirectorio, uCustomView;
procedure TfrViewDocumentosAsociados.actAnadirDocumentoExecute(Sender: TObject);
var
ACursor: TCursor;
FicheroOrigen : String;
i : Integer;
begin
if OpenDialog1.Execute then
begin
try
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
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, Explo.Path) then
raise Exception.Create('Error al añadir el documento');
end;
finally
Screen.Cursor := ACursor;
end;
end;
refrescarTree;
end;
procedure TfrViewDocumentosAsociados.actEliminarDocumentoExecute(Sender: TObject);
var
ACursor: TCursor;
i : Integer;
begin
if (Application.MessageBox('¿Desea eliminar los documentos seleccionados?', 'Atención', MB_YESNO) = IDYES) then
begin
try
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
for i:=0 to explo.InnerListView.Items.Count - 1 do
begin
if explo.InnerListView.Items[i].Selected then
begin
if not SysUtils.DeleteFile(GetPidlName(explo.GetItemAbsolutePIDL(i))) then
raise Exception.Create('Error al eliminar el documento');
end;
end;
finally
Screen.Cursor := ACursor;
end;
end;
refrescarTree;
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.actEliminarDocumentoUpdate(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
if Assigned(FGestorDocumentos) then
Explo.Root.CustomPath := FGestorDocumentos.RootDocumentos;
Explo.Enabled := False;
end;
procedure TfrViewDocumentosAsociados.HabilitarDocumentos;
begin
Explo.Root.CustomPath := FGestorDocumentos.darRutaDocumentos;
Explo.Enabled := True;
end;
procedure TfrViewDocumentosAsociados.CustomViewDestroy(Sender: TObject);
begin
inherited;
// Utilizar mejor OnHide
end;
procedure TfrViewDocumentosAsociados.CustomViewHide(Sender: TObject);
begin
inherited;
//Eliminaremos el directorio si no tiene documentos, solo tendremos direcctorios
//en el caso que el presupuesto tenga documentos asociados
// RemoveDir(FGestorDocumentos.darRutaDocumentos);
FGestorDocumentos.OnEliminarDirDocumentos := Nil;
FGestorDocumentos.OnBeforeDirectorioChanged := Nil;
FGestorDocumentos.OnAfterDirectorioChanged := Nil;
FGestorDocumentos.Directorio := Null;
FGestorDocumentos := NIL;
end;
procedure TfrViewDocumentosAsociados.exploDblClick(Sender: TObject);
begin
inherited;
actAbrirDocumento.Execute;
end;
procedure TfrViewDocumentosAsociados.CustomViewShow(Sender: TObject);
begin
inherited;
edtlDirectorio.Text := GestorDocumentos.darRutaDocumentos;
FGestorDocumentos.OnEliminarDirDocumentos := OnEliminarDirDocumentos;
FGestorDocumentos.OnBeforeDirectorioChanged := OnBeforeDirectorioChanged;
FGestorDocumentos.OnAfterDirectorioChanged := OnAfterDirectorioChanged;
refrescarTree;
end;
procedure TfrViewDocumentosAsociados.actAnadirDocumentoUpdate(Sender: TObject);
begin
// (Sender as TAction).Enabled := (TreeExplo.Root.CustomPath <> TreeExplo.Path);
end;
procedure TfrViewDocumentosAsociados.refrescarTree;
var
Cadena : String;
begin
//Cuando hacemos algo con documentos es necesario consultar esta propiedad
Cadena := Explo.Path;
if (Length(Cadena) = 0) then
Cadena := Explo.Root.CustomPath;
Explo.Root.CustomPath := Cadena;
end;
procedure TfrViewDocumentosAsociados.OnAfterDirectorioChanged(Sender: TObject);
begin
if (csDestroying in ComponentState) then
Exit;
HabilitarDocumentos;
edtlDirectorio.Text := GestorDocumentos.darRutaDocumentos;
end;
procedure TfrViewDocumentosAsociados.OnBeforeDirectorioChanged(Sender: TObject);
begin
if (csDestroying in ComponentState) then
Exit;
DeshabilitarDocumentos;
end;
procedure TfrViewDocumentosAsociados.OnEliminarDirDocumentos(Sender: TObject);
begin
if (csDestroying in ComponentState) then
Exit;
DeshabilitarDocumentos;
end;
procedure TfrViewDocumentosAsociados.Button1Click(Sender: TObject);
begin
inherited;
OpenFolder(edtlDirectorio.Text);
end;
procedure TfrViewDocumentosAsociados.actCopiarDocumentoExecute(Sender: TObject);
var
ACursor: TCursor;
i,a : Integer;
CadenaAux : String;
begin
try
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
for i:=0 to explo.InnerListView.Items.Count - 1 do
begin
if explo.InnerListView.Items[i].Selected then
begin
CadenaAux := ExtractFilePath(GetPIDLDisplayName(explo.GetItemAbsolutePIDL(i), True));
CadenaAux := CadenaAux + 'Copia de ' + ExtractFileName(GetPIDLDisplayName(explo.GetItemAbsolutePIDL(i), True));
if not CopyFile(PChar(GetPIDLDisplayName(explo.GetItemAbsolutePIDL(i), True)), pChar(CadenaAux), False) then
raise Exception.Create('Error al copiar el documento');
end;
end;
finally
Screen.Cursor := ACursor;
end;
refrescarTree;
end;
procedure TfrViewDocumentosAsociados.actCopiarDocumentoUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := explo.InnerListView.SelCount <> 0;
end;
end.

View File

@ -0,0 +1,501 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{0CA27A95-0B81-4724-84BF-8F8ED4E421AE}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">GUIBase.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath">..\..\DataAbstract_D10\Lib;..\Lib;</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir"></Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_IDE_D10.bpl">RemObjects Data Abstract - IDE Package</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMImportD2006.bpl">SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMExportD2006.bpl">SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004.</Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_ADODriver_D10.bpl">RemObjects Data Abstract - ADOExpress/dbGo Driver</Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_IBXDriver_D10.bpl">RemObjects Data Abstract - InterBase Express Driver</Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_DBXDriver_D10.bpl">RemObjects Data Abstract - dbExpress Driver</Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_Scripting_D10.bpl">RemObjects Data Abstract - Scripting Integration Library</Excluded_Packages>
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dcltee100.bpl">TeeChart Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<!-- EurekaLog First Line
[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."
EurekaLog Last Line -->
</BorlandProject>

45
Base/GUIBase/GUIBase.cfg Normal file
View File

@ -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
-N0".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-U"..\..\DataAbstract_D10\Lib;..\Lib;"
-O"..\..\DataAbstract_D10\Lib;..\Lib;"
-I"..\..\DataAbstract_D10\Lib;..\Lib;"
-R"..\..\DataAbstract_D10\Lib;..\Lib;"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

106
Base/GUIBase/GUIBase.dpk Normal file
View File

@ -0,0 +1,106 @@
package GUIBase;
{$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,
DataAbstract_D10,
Base,
vcl,
dbrtl,
vcldb,
cxLibraryD10,
dxThemeD10,
cxEditorsD10,
cxDataD10,
vcljpg,
cxGridD10,
cxPageControlD10,
cxExtEditorsD10,
vclx,
cxExportD10,
tbx_d10,
tb2k_d10,
ccpack10,
designide,
xmlrtl,
vclactnband,
dsnap,
adortl,
dxLayoutControlD10,
dxComnD10,
dxPSCoreD10,
frx10,
fs10,
fqb100,
bdertl,
frxe10,
frxTee10,
fsTee10,
tee,
teeui,
teedb,
dxPScxCommonD10,
dxPSLnksD10,
vclshlctrls,
dxPScxGridLnkD10,
dclcxLibraryD10,
dxPsPrVwAdvD10,
dxBarExtItemsD10,
dxBarD10,
GUISDK_D10,
cfpack_d10,
JvAppFrmD10R,
JclVcl,
Jcl,
JvSystemD10R,
JvCoreD10R,
JvPageCompsD10R,
JvStdCtrlsD10R,
PNG_D10,
PngComponentsD10,
ControllerBase,
cxIntlPrintSys3D10;
contains
uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor},
uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase: TCustomEditor},
uEditorItem in 'uEditorItem.pas' {fEditorItem: TCustomEditor},
uEditorPreview in 'uEditorPreview.pas' {fEditorPreview: TCustomEditor},
uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame},
uViewBase in 'uViewBase.pas' {frViewBase: TFrame},
uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame},
uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor},
uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor},
uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame},
uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TFrame},
uBizInformesBase in 'uBizInformesBase.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},
uViewDetallesBase in 'uViewDetallesBase.pas' {frViewDetallesBase: TFrame};
end.

14
Base/GUIBase/GUIBase.drc Normal file
View File

@ -0,0 +1,14 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

BIN
Base/GUIBase/GUIBase.res Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
unit uBizInformesBase;
interface
type
IBizInformesAware = interface
['{98AD6541-199F-4155-B394-ED0316298759}']
procedure Preview;
procedure Print;
end;
implementation
end.

1703
Base/GUIBase/uEditorBase.dfm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,374 @@
unit uEditorBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls,
JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList,
PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, TB2Dock, TB2Toolbar, dxLayoutLookAndFeels, TBXStatusBars,
JvExComCtrls, JvStatusBar;
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;
TBXSeparatorItem7: TTBXSeparatorItem;
TBXSeparatorItem8: TTBXSeparatorItem;
TBXSeparatorItem9: TTBXSeparatorItem;
TBXSubmenuItem1: TTBXSubmenuItem;
TBXSubmenuItem4: TTBXSubmenuItem;
TBXSubmenuItem5: TTBXSubmenuItem;
TBXSubmenuItem6: TTBXSubmenuItem;
TBXSubmenuItem7: TTBXSubmenuItem;
JvFormStorage: TJvFormStorage;
JvAppRegistryStorage: TJvAppRegistryStorage;
Image1: TImage;
TBXSeparatorItem15: TTBXSeparatorItem;
StatusBarImages: TPngImageList;
StatusBar: TJvStatusBar;
procedure actCerrarExecute(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure CustomEditorActivate(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actGuardarExecute(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actConfPaginaExecute(Sender: TObject);
procedure actCancelarCambiosExecute(Sender: TObject);
procedure actDuplicarExecute(Sender: TObject);
procedure actRefrescarExecute(Sender: TObject);
protected
procedure ActualizarEstadoEditor; virtual;
function ModifiedQuery : Boolean;
procedure ModificarInterno; virtual;
procedure EliminarInterno; virtual;
procedure GuardarInterno; virtual;
procedure NuevoInterno; virtual;
procedure ImprimirInterno; virtual;
procedure PrevisualizarInterno; virtual;
procedure ConfPaginaInterno; virtual;
procedure RefrescarInterno; virtual;
procedure CancelarCambiosInterno; virtual;
procedure CerrarInterno; virtual;
procedure DuplicarInterno; virtual;
public
constructor Create(AOwner: TComponent); override;
procedure PonerTitulos(const ATitulo: String = ''); virtual;
function ShowModal: Integer; override;
published
procedure FormShow(Sender: TObject); virtual;
end;
TfEditorBaseClass = class of TfEditorBase;
implementation
{$R *.dfm}
uses
Menus, uDataModuleBase, cxControls;
{
********************************* TfEditorBase *********************************
}
procedure TfEditorBase.actCancelarCambiosExecute(Sender: TObject);
begin
CancelarCambiosInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actCerrarExecute(Sender: TObject);
begin
CerrarInterno;
end;
procedure TfEditorBase.actConfPaginaExecute(Sender: TObject);
begin
ConfPaginaInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actDuplicarExecute(Sender: TObject);
begin
DuplicarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actEliminarExecute(Sender: TObject);
begin
EliminarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject);
begin
ShowHourglassCursor;
try
if actGuardar.Execute then
actCerrar.Execute;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorBase.actGuardarExecute(Sender: TObject);
begin
GuardarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actImprimirExecute(Sender: TObject);
begin
ImprimirInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actModificarExecute(Sender: TObject);
begin
ModificarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actNuevoExecute(Sender: TObject);
begin
NuevoInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actPrevisualizarExecute(Sender: TObject);
begin
PrevisualizarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actRefrescarExecute(Sender: TObject);
begin
RefrescarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.ActualizarEstadoEditor;
begin
PonerTitulos;
end;
procedure TfEditorBase.CancelarCambiosInterno;
begin
//
end;
procedure TfEditorBase.CerrarInterno;
begin
Close;
end;
procedure TfEditorBase.ConfPaginaInterno;
begin
//
end;
constructor TfEditorBase.Create(AOwner: TComponent);
var
APath : String;
begin
inherited;
with JvFormStorage do
begin
if Pos('_', Self.Name) = 0 then
APath := Self.Name
else
APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1));
AppStoragePath := APath;
end;
JvNavPanelHeader.StyleManager := dmBase.StyleManager;
end;
procedure TfEditorBase.CustomEditorActivate(Sender: TObject);
begin
PonerTitulos;
end;
procedure TfEditorBase.DuplicarInterno;
begin
//
end;
procedure TfEditorBase.EliminarInterno;
begin
//
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
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
procedure TfEditorBase.GuardarInterno;
begin
//
end;
procedure TfEditorBase.ImprimirInterno;
begin
//
end;
procedure TfEditorBase.ModificarInterno;
begin
//
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
end;
procedure TfEditorBase.NuevoInterno;
begin
//
end;
procedure TfEditorBase.PonerTitulos(const ATitulo: String);
begin
JvNavPanelHeader.Caption := ATitulo;
Caption := ATitulo;
end;
procedure TfEditorBase.PrevisualizarInterno;
begin
//
end;
procedure TfEditorBase.RefrescarInterno;
begin
//
end;
function TfEditorBase.ShowModal: Integer;
var
ABorderIcons : TBorderIcons;
begin
ABorderIcons := Self.BorderIcons;
Self.BorderIcons := Self.BorderIcons - [biMinimize];
try
Result := inherited ShowModal;
finally
Self.BorderIcons := ABorderIcons;
end;
end;
initialization
RegisterClass(TfEditorBase);
finalization
UnRegisterClass(TfEditorBase);
end.

View File

@ -0,0 +1,570 @@
inherited fEditorDBBase: TfEditorDBBase
Left = 295
Top = 247
Caption = 'fEditorDBBase'
ClientHeight = 458
ClientWidth = 650
ExplicitWidth = 658
ExplicitHeight = 492
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 650
ExplicitWidth = 650
inherited Image1: TImage
Left = 623
ExplicitLeft = 3
ExplicitTop = 3
end
end
inherited TBXDock: TTBXDock
Width = 650
ExplicitWidth = 650
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 650
end
end
inherited StatusBar: TJvStatusBar
Top = 439
Width = 650
ExplicitTop = 439
ExplicitWidth = 650
end
inherited EditorActionList: TActionList
inherited actModificar: TAction
OnUpdate = actModificarUpdate
end
inherited actGuardarCerrar: TAction
OnUpdate = actGuardarCerrarUpdate
end
inherited actGuardar: TAction
OnUpdate = actGuardarUpdate
end
inherited actEliminar: TAction
OnUpdate = actEliminarUpdate
end
inherited actPrevisualizar: TAction
OnUpdate = actPrevisualizarUpdate
end
inherited actImprimir: TAction
OnUpdate = actImprimirUpdate
end
inherited actRefrescar: TAction
OnUpdate = actRefrescarUpdate
end
inherited actAnterior: TAction
OnExecute = actAnteriorExecute
OnUpdate = actAnteriorUpdate
end
inherited actSiguiente: TAction
OnExecute = actSiguienteExecute
OnUpdate = actSiguienteUpdate
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
object dsDataTable: TDADataSource [7]
OnDataChange = dsDataTableDataChange
Left = 40
Top = 88
end
end

View File

@ -0,0 +1,271 @@
unit uEditorDBBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, TBXStatusBars,
JvExComCtrls, JvStatusBar;
type
IEditorDBBase = interface(IEditorBase)
['{1F5B318F-F700-4C78-ABCE-E2329AD876B8}']
end;
TfEditorDBBase = class(TfEditorBase, IEditorDBBase)
dsDataTable: TDADataSource;
procedure actAnteriorExecute(Sender: TObject);
procedure actSiguienteExecute(Sender: TObject);
procedure actAnteriorUpdate(Sender: TObject);
procedure actSiguienteUpdate(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual;
procedure actEliminarUpdate(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actPrevisualizarUpdate(Sender: TObject);
procedure actImprimirUpdate(Sender: TObject);
procedure actGuardarUpdate(Sender: TObject);
procedure actGuardarCerrarUpdate(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
protected
function HayDatos: Boolean;
function GetModified: Boolean; override;
procedure RefrescarInterno; override;
procedure CancelarCambiosInterno; override;
end;
implementation
uses
uDataTableUtils, uBizInformesBase,
uDAInterfaces, cxControls, uCustomEditor;
{$R *.dfm}
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 HayDatos then
(Sender as TAction).Enabled := not dsDataTable.DataTable.BOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject);
begin
inherited;
if HayDatos then
(Sender as TAction).Enabled := not dsDataTable.DataTable.EOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.CancelarCambiosInterno;
var
dtDetails : TList;
i : integer;
ABookmark : TBookmark;
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
ABookmark := dsDataTable.DataTable.GetBookMark;
dsDataTable.DataTable.DisableControls;
// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar
ShowHourglassCursor;
{ No lo pongo en try..finally para ver posibles errores }
//try
dsDataTable.DataTable.Cancel;
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
begin
(TDADataTable(dtDetails.Items[i])).Cancel;
end;
dsDataTable.DataTable.CancelUpdates;
{ Comprobar si el bookmark no es válido cuando estamos cancelando la
inserción de una fila nueva.
CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!}
try
if (Assigned(ABookmark)) and
(dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
except
end;
//finally
dsDataTable.DataTable.EnableControls;
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar
HideHourglassCursor
//end;
end;
end;
procedure TfEditorDBBase.dsDataTableDataChange(Sender: TObject; Field: TField);
begin
inherited;
ActualizarEstadoEditor;
end;
procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
if HayDatos then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) or
(not dsDataTable.DataTable.Opening) or
(not dsDataTable.DataTable.Closing)
else
(Sender as TAction).Enabled := False;
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 in dsEditModes) or
DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta);
if bCambiado then
Break;
end;
end;
end;
if (not bCambiado) then
bCambiado := inherited GetModified;
Result := bCambiado;
end;
function TfEditorDBBase.HayDatos: Boolean;
begin
Result := Assigned(dsDataTable.DataTable) and (not dsDataTable.DataTable.IsEmpty);
end;
procedure TfEditorDBBase.RefrescarInterno;
var
ABookmark : TBookmark;
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then
Exit; // No continuar con el refresco
ABookmark := dsDataTable.DataTable.GetBookMark;
dsDataTable.DataTable.DisableControls; //<- No descomentar
ShowHourglassCursor;
try
dsDataTable.DataTable.Refresh;
if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
finally
dsDataTable.DataTable.FreeBookmark(ABookmark);
dsDataTable.DataTable.EnableControls; //<- No descomentar
HideHourglassCursor;
end;
end;
end;
procedure TfEditorDBBase.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.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actGuardarCerrarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Self.Modified;
end;
procedure TfEditorDBBase.actGuardarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Self.Modified;
end;
procedure TfEditorDBBase.actModificarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
initialization
RegisterClass(TfEditorDBBase);
finalization
UnRegisterClass(TfEditorDBBase);
end.

View File

@ -0,0 +1,103 @@
inherited fEditorDBItem: TfEditorDBItem
Left = 450
Top = 321
Caption = 'fEditorDBItem'
ClientHeight = 463
ClientWidth = 654
ExplicitWidth = 662
ExplicitHeight = 497
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 654
ExplicitWidth = 654
inherited Image1: TImage
Left = 627
ExplicitLeft = 627
ExplicitHeight = 19
end
end
inherited TBXDock: TTBXDock
Width = 654
ExplicitWidth = 654
inherited tbxMain: TTBXToolbar
ExplicitWidth = 599
inherited TBXItem26: TTBXItem
Visible = False
end
inherited TBXItem25: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 654
inherited TBXSubmenuItem1: TTBXSubmenuItem
Visible = False
end
end
end
object pgPaginas: TPageControl [2]
Left = 0
Top = 76
Width = 654
Height = 368
ActivePage = pagGeneral
Align = alClient
TabOrder = 2
object pagGeneral: TTabSheet
Caption = 'General'
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
end
end
inherited StatusBar: TJvStatusBar
Top = 444
Width = 654
Panels = <
item
Width = 200
Control = imgStatus
end>
ExplicitTop = 444
ExplicitWidth = 654
object imgStatus: TImage
Left = 3
Top = 3
Width = 16
Height = 16
AutoSize = True
Picture.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000
00001008060000001FF3FF61000001E24944415478DAA5932B93DB3014858F99
59C46A669599456561166B59DD5F50C342E717C461652B58A8658182810A0BAB
C35C26B394C92C8BDC6BB99BCD63A7339DB547638D1EDF3DE7488EF0C627BA1D
70466896303FE352747B9DA78B62D77B677DEBA0AC342C663F9D77F0473F2E7F
7F0718DAA2EE9C5BA58B125DD320150204024BF85A6DC44A4A097FF27004ACEB
BABB071C6B8B98E588057AEF31630C3835D4FC6EF9DDE76221D0EC1B789A33C6
F491327EC009449D5AC90455A3969598BD93E87F5BF85613802A6A01216F011B
3FB06416AA8F80823F224DC8DF8D82CE3394A5DE0921F271F39881D99A750084
3882020F9158C85891F7029405D26CCAC0C52579364BCEF9C3B86E54E19CFB10
996D337CFE389F027802BA760D465567F1D837002FC0E875270E91C988677CE0
0987B5B6A71DEC0C38FCEA820A9EA5B0FB43E0896C8EF2DB12D6A8CBB02B3A89
07022CA9AFCE80FEE9EFF469FA3CDB7A0500B23190FC3016E9AD1DBECA1C87B6
0B210A5260ECA4402E5E5500BA4C15E5A02680B143F1293F57F7972AE85B55D7
80AAAA6A02ACD40FF5854EC3447A4380220FBEC70D52CC5F32A0FE2D806EDF28
1F5AEB202052DA0E65915FF97E51D113A0BE02D009D4EEE856D49D4254DA0C7A
63465FCF88A0E4C2EF5D06FFFC1BFFF7F903DDDC21F8890148C2000000004945
4E44AE426082}
Transparent = True
end
end
inherited EditorActionList: TActionList
Top = 112
inherited actEliminar: TAction
ShortCut = 0
end
end
inherited dsDataTable: TDADataSource
Left = 48
Top = 112
end
end

View File

@ -0,0 +1,106 @@
unit uEditorDBItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView,
uViewBase, JvAppStorage, JvAppRegistryStorage,
JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, dxLayoutLookAndFeels,
TBXStatusBars, JvExComCtrls, JvStatusBar;
type
IEditorDBItem = interface(IEditorDBBase)
['{497AE4CE-D061-4F75-A29A-320F8565FF54}']
end;
TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem)
pgPaginas: TPageControl;
pagGeneral: TTabSheet;
imgStatus: TImage;
protected
procedure EliminarInterno; override;
procedure PrevisualizarInterno; override;
procedure ImprimirInterno; override;
procedure ActualizarEstadoEditor; override;
end;
var
fEditorDBItem: TfEditorDBItem;
implementation
uses
uBizInformesBase, uEditorBase;
{$R *.dfm}
procedure TfEditorDBItem.ActualizarEstadoEditor;
begin
inherited;
if HayDatos then
begin
if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then
begin
StatusBar.Panels[0].Text := ' Se han producido cambios';
imgStatus.Visible := True;
end
else begin
imgStatus.Visible := False;
StatusBar.Panels[0].Text := '';
end
end;
end;
procedure TfEditorDBItem.EliminarInterno;
begin
inherited;
actCerrar.Execute;
end;
procedure TfEditorDBItem.ImprimirInterno;
var
Respuesta: Integer;
aInf : IBizInformesAware;
begin
inherited;
if Modified then
begin
if (Application.MessageBox('Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then
actGuardar.Execute
else begin
Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK);
Exit;
end;
end;
end;
procedure TfEditorDBItem.PrevisualizarInterno;
var
Respuesta: Integer;
aInf : IBizInformesAware;
begin
inherited;
if Modified then
begin
if (Application.MessageBox('Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then
actGuardar.Execute
else begin
Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'Información', MB_OK);
Exit;
end;
end;
end;
initialization
RegisterClass(TfEditorDBItem);
finalization
UnRegisterClass(TfEditorDBItem);
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,256 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uEditorGridBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item,
ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase,
uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
JvStatusBar;
type
IEditorGridBase = interface(IEditorDBBase)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
end;
TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase)
tbxEditFiltro: TTBXEditItem;
tbxFiltro: TTBXToolbar;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
TBXLabelItem1: TTBXLabelItem;
actQuitarFiltro: TAction;
N2: TMenuItem;
Previsualizar1: TMenuItem;
Imprimir1: TMenuItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem7: TTBXItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem33: TTBXItem;
N3: TMenuItem;
Actualizar1: TMenuItem;
TBXItem34: TTBXItem;
actAnchoAuto: TAction;
TBXSeparatorItem16: TTBXSeparatorItem;
TBXItem35: TTBXItem;
TBXItem36: TTBXItem;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject); override;
procedure actQuitarFiltroExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actNuevoUpdate(Sender: TObject);
procedure actAnchoAutoExecute(Sender: TObject);
procedure actAnchoAutoUpdate(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
private
FViewGrid : IViewGridBase;
protected
procedure SetViewGrid(const Value : IViewGridBase); virtual;
function GetViewGrid: IViewGridBase;
procedure PrevisualizarInterno; override;
procedure ConfPaginaInterno; override;
procedure ImprimirInterno; override;
procedure RefrescarInterno; override;
public
property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleBase, uCustomEditor, cxGridTableView, uViewGrid;
{$R *.dfm}
{
********************************* TfEditorGridBase *****************************
}
destructor TfEditorGridBase.Destroy;
begin
FViewGrid := NIL;
inherited;
end;
function TfEditorGridBase.GetViewGrid: IViewGridBase;
begin
Result := FViewGrid;
end;
procedure TfEditorGridBase.ImprimirInterno;
begin
inherited;
(ViewGrid as IViewGrid).Print;
end;
procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase);
begin
FViewGrid := Value;
if Assigned(FViewGrid) then
begin
FViewGrid.PopupMenu := GridPopupMenu;
FViewGrid.OnDblClick := actModificar.OnExecute;
end;
end;
procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin
if Assigned(ViewGrid) then
begin
if Length(Text) > 0 then
ViewGrid.Filter := Text
else
actQuitarFiltro.Execute;
end;
end;
procedure TfEditorGridBase.FormShow(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.actModificarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.actNuevoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject);
begin
if Assigned(ViewGrid) then
begin
tbxEditFiltro.Text := '';
ViewGrid.Filter := '';
end;
end;
procedure TfEditorGridBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.ConfPaginaInterno;
begin
inherited;
(ViewGrid as IViewGrid).PrintSetup;
end;
constructor TfEditorGridBase.Create(AOwner: TComponent);
begin
inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.AjustarAncho;
end;
procedure TfEditorGridBase.actAnchoAutoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorGridBase.PrevisualizarInterno;
begin
inherited;
(ViewGrid as IViewGrid).Preview;
end;
procedure TfEditorGridBase.RefrescarInterno;
var
FocusedRow, TopRow : Integer;
begin
TopRow := ViewGrid._FocusedView.Controller.TopRowIndex;
FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex;
ViewGrid._FocusedView.BeginUpdate;
try
inherited;
finally
ViewGrid._FocusedView.EndUpdate;
ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow;
ViewGrid._FocusedView.Controller.TopRowIndex := TopRow;
end;
end;
procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
initialization
RegisterClass(TfEditorGridBase);
finalization
UnRegisterClass(TfEditorGridBase);
end.

View File

@ -0,0 +1,62 @@
inherited fEditorItem: TfEditorItem
Left = 423
Top = 273
Caption = 'fEditorItem'
ClientHeight = 501
ClientWidth = 678
ExplicitWidth = 686
ExplicitHeight = 535
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 678
Visible = False
ExplicitWidth = 678
inherited Image1: TImage
Left = 651
ExplicitLeft = 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
ExplicitWidth = 678
inherited tbxMain: TTBXToolbar
ExplicitWidth = 575
inherited TBXItem5: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 678
inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem10: TTBXItem
Visible = False
end
end
end
end
inherited StatusBar: TJvStatusBar
Top = 482
Width = 678
ExplicitTop = 482
ExplicitWidth = 678
end
inherited EditorActionList: TActionList
Top = 104
inherited actEliminar: TAction
ShortCut = 0
end
end
end

View File

@ -0,0 +1,39 @@
unit uEditorItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ActnList, JvExControls, JvComponent,
JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item,
ImgList, PngImageList, JvFormAutoSize, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
JvStatusBar;
type
IEditorItem = interface(IEditorBase)
['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}']
end;
TfEditorItem = class(TfEditorBase, IEditorItem)
pagGeneral: TTabSheet;
pgPaginas: TPageControl;
end;
implementation
uses uDataModuleBase;
{$R *.dfm}
initialization
RegisterClass(TfEditorItem);
finalization
UnRegisterClass(TfEditorItem);
end.

View File

@ -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

View File

@ -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.

View File

@ -0,0 +1,927 @@
inherited fEditorPreview: TfEditorPreview
Left = 521
Top = 340
Caption = 'Previsualizar'
WindowState = wsMaximized
OnDestroy = FormDestroy
OnResize = FormResize
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Top = 75
Visible = False
ExplicitTop = 75
end
inherited TBXDock: TTBXDock
Height = 75
ExplicitHeight = 75
inherited tbxMain: TTBXToolbar
Top = 49
DefaultDock = TBXDock
Visible = False
ExplicitTop = 49
ExplicitWidth = 242
end
inherited tbxMenu: TTBXToolbar
DockPos = -24
inherited TBXSubmenuItem5: TTBXSubmenuItem
Visible = False
end
inherited TBXSubmenuItem1: TTBXSubmenuItem
Visible = False
end
object TBXSubmenuItem2: TTBXSubmenuItem [3]
Caption = '&Ir'
object TBXItem47: TTBXItem
Action = actPrimeraPagina
Images = PreviewSmallImageList
end
object TBXItem43: TTBXItem
Action = actPaginaAnterior
Images = PreviewSmallImageList
end
object TBXItem44: TTBXItem
Action = actPaginaSiguiente
Images = PreviewSmallImageList
end
object TBXItem45: TTBXItem
Action = actUltimaPagina
Images = PreviewSmallImageList
end
end
inherited TBXSubmenuItem6: TTBXSubmenuItem
Caption = '&Zoom'
inherited TBXItem18: TTBXItem
Action = actZoomIn
Images = PreviewSmallImageList
end
object TBXItem38: TTBXItem
Action = actZoomOut
Images = PreviewSmallImageList
end
object TBXSeparatorItem19: TTBXSeparatorItem
end
object TBXItem48: TTBXItem
Action = actAnchoPagina
Images = PreviewSmallImageList
end
object TBXItem46: TTBXItem
Action = actTodaPagina
Images = PreviewSmallImageList
end
end
object TBXSubmenuItem3: TTBXSubmenuItem [5]
Caption = '&Herramientas'
object TBXItem49: TTBXItem
Action = actToolHand
Checked = True
GroupIndex = 1
Images = PreviewSmallImageList
end
object TBXItem50: TTBXItem
Action = actToolZoom
GroupIndex = 1
Images = PreviewSmallImageList
end
end
end
object TBXToolbar1: TTBXToolbar
Left = 0
Top = 23
Caption = 'TBXToolbar1'
DefaultDock = TBXDock
DragHandleStyle = dhNone
ParentShowHint = False
ShowHint = True
TabOrder = 2
object TBXItem39: TTBXItem
Action = actImprimir
DisplayMode = nbdmImageAndText
Images = SmallImages
end
object TBXSeparatorItem18: TTBXSeparatorItem
end
object tbxMano: TTBXItem
Action = actToolHand
Checked = True
DisplayMode = nbdmImageAndText
GroupIndex = 1
Images = PreviewSmallImageList
end
object tbxZoom: TTBXItem
Action = actToolZoom
DisplayMode = nbdmImageAndText
GroupIndex = 1
Images = PreviewSmallImageList
end
object TBXItem42: TTBXItem
Action = actTodaPagina
Images = PreviewSmallImageList
end
object TBXItem41: TTBXItem
Action = actAnchoPagina
Images = PreviewSmallImageList
end
object TBXItem40: TTBXItem
Action = actZoomOut
Images = PreviewSmallImageList
end
object cbZoom: TTBXComboBoxItem
Caption = 'Zoom'
ReadOnly = True
OnItemClick = cbZoomItemClick
end
object TBXItem37: TTBXItem
Action = actZoomIn
Images = PreviewSmallImageList
end
object TBXSeparatorItem17: TTBXSeparatorItem
end
object TBXSeparatorItem16: TTBXSeparatorItem
end
object TBXItem34: TTBXItem
Action = actPaginaAnterior
Images = PreviewSmallImageList
end
object TBXItem33: TTBXItem
Action = actPaginaSiguiente
Images = PreviewSmallImageList
end
object TBXItem36: TTBXItem
Action = actUltimaPagina
Images = PreviewSmallImageList
end
end
end
inherited StatusBar: TJvStatusBar
Panels = <
item
Width = 50
end
item
Width = 50
end>
end
inherited EditorActionList: TActionList
Top = 104
inherited actNuevo: TAction
Enabled = False
Visible = False
end
inherited actModificar: TAction
Enabled = False
Visible = False
end
inherited actGuardarCerrar: TAction
Enabled = False
Visible = False
end
inherited actGuardar: TAction
Enabled = False
Visible = False
end
inherited actEliminar: TAction
Enabled = False
Visible = False
end
inherited actConfPagina: TAction
Enabled = False
Visible = False
end
inherited actPrevisualizar: TAction
Enabled = False
Visible = False
end
inherited actDeshacer: TEditUndo
Enabled = False
Visible = False
end
inherited actCortar: TEditCut
Enabled = False
Visible = False
end
inherited actCopiar: TEditCopy
Enabled = False
Visible = False
end
inherited actPegar: TEditPaste
Enabled = False
Visible = False
end
inherited actSeleccionarTodo: TEditSelectAll
Enabled = False
Visible = False
end
inherited actLimpiar: TEditDelete
Enabled = False
Visible = False
end
inherited actBuscar: TAction
Enabled = False
Visible = False
end
inherited actCancelarCambios: TAction
Enabled = False
Visible = False
end
end
inherited SmallImages: TPngImageList
Left = 43
Top = 104
end
inherited LargeImages: TPngImageList
Left = 75
Top = 104
end
inherited JvFormStorage: TJvFormStorage
Left = 376
Top = 136
end
inherited JvAppRegistryStorage: TJvAppRegistryStorage
Left = 408
Top = 136
end
object PreviewActionList: TActionList
Images = PreviewSmallImageList
Left = 344
Top = 104
object actPrimeraPagina: TAction
Category = 'Ver'
Caption = 'Primera p'#225'gina'
ImageIndex = 0
OnExecute = actPrimeraPaginaExecute
OnUpdate = actPrimeraPaginaUpdate
end
object actUltimaPagina: TAction
Category = 'Ver'
Caption = #218'ltima p'#225'gina'
ImageIndex = 3
OnExecute = actUltimaPaginaExecute
OnUpdate = actUltimaPaginaUpdate
end
object actPaginaAnterior: TAction
Category = 'Ver'
Caption = 'P'#225'gina anterior'
ImageIndex = 1
OnExecute = actPaginaAnteriorExecute
OnUpdate = actPaginaAnteriorUpdate
end
object actPaginaSiguiente: TAction
Category = 'Ver'
Caption = 'P'#225'gina siguiente'
ImageIndex = 2
OnExecute = actPaginaSiguienteExecute
OnUpdate = actPaginaSiguienteUpdate
end
object actZoomIn: TAction
Category = 'Ver'
Caption = 'M'#225's zoom'
ImageIndex = 8
OnExecute = actZoomInExecute
end
object actZoomOut: TAction
Category = 'Ver'
Caption = 'Menos zoom'
ImageIndex = 9
OnExecute = actZoomOutExecute
end
object actTodaPagina: TAction
Category = 'Ver'
Caption = 'Toda la p'#225'gina'
GroupIndex = 1
ImageIndex = 4
OnExecute = actTodaPaginaExecute
end
object actAnchoPagina: TAction
Category = 'Ver'
Caption = 'Ancho de p'#225'gina'
GroupIndex = 1
ImageIndex = 5
OnExecute = actAnchoPaginaExecute
end
object actToolHand: TAction
Category = 'Herramientas'
AutoCheck = True
Caption = 'Mano'
GroupIndex = 1
ImageIndex = 10
OnExecute = actToolHandExecute
end
object actToolZoom: TAction
Category = 'Herramientas'
AutoCheck = True
Caption = 'Zoom'
GroupIndex = 1
ImageIndex = 6
OnExecute = actToolZoomExecute
end
end
object PreviewSmallImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F14944415478DA
C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0
1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770
CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405
C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC
D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01
3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D
657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617
93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000A34944415478DA
63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38
C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6
071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5
8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100
CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A
E13771044B0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000A44944415478DA
63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC
240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F
E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A
7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207
B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22
A8E18A4EF6A30000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000EC4944415478DA
C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850
2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49
127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085
84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124
F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440
42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2
EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42
E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000017E4944415478DA
630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786
9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E
AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092
144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0
062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363
B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C
7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07
080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0
AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC
6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB
E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C
0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7
0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001714944415478DA
630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786
9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19
64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF
A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76
631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58
0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006
0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60
B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1
BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE
FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6
11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277
35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA
8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414
A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D
739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF
425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008
EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5
6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050
910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85
CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15
205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7
F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D
B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D
09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02
161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE
4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0
7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D
02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747
2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7
FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386
01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790
E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6
9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74
2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD
BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03
503A4EA60D6AAC070000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA
8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251
82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E
C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC
5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910
082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537
BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0
81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB
B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048
5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5
E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676
3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8
8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002
29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29
5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF
077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF
0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5
1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF
AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632
83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4
E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384
8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72
CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD
DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8
3FA68502A9830000000049454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
0AF3B40000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000714944415478DA
63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001C74944415478DA
A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456
5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8
E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D
5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456
B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155
0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C
A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F
232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184
F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA
CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D
A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E
3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C
0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266
C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A
04D7A238F0C903C3480000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 371
Top = 104
Bitmap = {}
end
object PreviewLargeImageList: TPngImageList
Height = 24
Width = 24
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001894944415478DA
63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB
1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683
D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF
3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E
B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693
8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348
B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0
1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B
BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3
5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE
FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92
77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580
200000A0D9B0E00198A13A0000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000000FA4944415478DA
63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F
5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752
D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33
6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5
3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B
1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F
6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4
D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000
49454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD2520000012E4944415478DA
63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF
F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F
10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D
688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1
F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1
C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC
4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B
1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74
FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5
0135C0A80504010058FB49E08BBA20470000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001C24944415478DA
63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB
7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C
E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960
5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1
DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07
E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778
AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD
FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832
93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459
60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E
06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0
EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F
48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370
8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0
E6ADB53E0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002344944415478DA
63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372
C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105
7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173
397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7
0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932
2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06
5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6
C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418
761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE
868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4
43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124
8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2
30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544
7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12
A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633
18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314
1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A
DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42
6082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000003154944415478DA
B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2
0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8
544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39
CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62
4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA
0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96
425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428
914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51
5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401
8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73
80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748
BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580
5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499
20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E
02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058
D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6
D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A
530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE
646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6
1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8
04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068
E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B
A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890
30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA
8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE
426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA
AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4
4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3
A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3
7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117
CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671
584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7
B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E
1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3
88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37
33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8
29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F
0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D
F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D
AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480
651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E
C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56
4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5
CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A
3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6
30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020
D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D
D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA
9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50
C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6
80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152
D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1
38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11
5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242
60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE
47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3
B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7
7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130
26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7
98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981
2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0
4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877
4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB
2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366
752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF
6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688
F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811
F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000
49454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA
AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED
C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B
139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24
5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4
8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5
B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB
5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191
6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5
05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262
6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56
488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0
A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36
E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A
EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098
0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7
20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0
9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A
7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715
2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC
0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1
F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9
6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407
B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A
2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0
8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E
5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F
82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC
4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536
D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D
932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B
D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC
F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134
1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA
4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4
C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF
BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25
6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F
0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707
274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4
697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16
949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855
88E7298D620000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001324944415478DA
63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D
C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E
15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E
1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384
8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172
28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0
6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8
A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB
0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7
002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD2520000007C4944415478DA
63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20
751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21
F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A
B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002E84944415478DA
A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022
4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B
C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3
CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0
373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707
057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071
2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658
B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC
4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07
DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB
516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A
D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092
AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B
1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF
BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8
F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2
328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686
84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187
E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E
5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC
59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240
09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492
085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05
FC0592430CFE3F77C7A70000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 403
Top = 104
Bitmap = {}
end
object frxReport1: TfrxReport
Version = '3.23.7'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator]
PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Default'
ReportOptions.CreateDate = 38658.858023541660000000
ReportOptions.LastChange = 38658.858023541660000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'begin'
''
'end.')
StoreInDFM = False
Left = 16
Top = 200
Datasets = <>
Variables = <>
Style = <>
end
object frxBarCodeObject1: TfrxBarCodeObject
Left = 16
Top = 240
end
object frxOLEObject1: TfrxOLEObject
Left = 48
Top = 240
end
object 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

View File

@ -0,0 +1,352 @@
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, TBXStatusBars, JvExComCtrls, JvStatusBar;
type
IEditorPreview = interface(IEditorBase)
['{43934C3E-2776-4F9E-9292-FB0D7DE2E4DA}']
function GetReport: TfrxReport;
property Report: TfrxReport read GetReport;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
procedure Print;
procedure Preview;
end;
TfEditorPreview = class(TfEditorBase, IEditorPreview)
TBXToolbar1: TTBXToolbar;
TBXItem33: TTBXItem;
TBXItem34: TTBXItem;
TBXItem39: TTBXItem;
TBXSeparatorItem16: TTBXSeparatorItem;
cbZoom: TTBXComboBoxItem;
PreviewActionList: TActionList;
PreviewSmallImageList: TPngImageList;
PreviewLargeImageList: TPngImageList;
actPrimeraPagina: TAction;
actUltimaPagina: TAction;
actPaginaAnterior: TAction;
actPaginaSiguiente: TAction;
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;
TBXItem38: TTBXItem;
TBXSeparatorItem19: TTBXSeparatorItem;
TBXItem43: TTBXItem;
TBXItem44: TTBXItem;
TBXItem45: TTBXItem;
TBXItem46: TTBXItem;
TBXItem47: TTBXItem;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem48: TTBXItem;
TBXSubmenuItem3: TTBXSubmenuItem;
TBXItem49: TTBXItem;
TBXItem50: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actPrimeraPaginaExecute(Sender: TObject);
procedure actUltimaPaginaExecute(Sender: TObject);
procedure actPaginaAnteriorExecute(Sender: TObject);
procedure actPaginaSiguienteExecute(Sender: TObject);
procedure actZoomInExecute(Sender: TObject);
procedure actTodaPaginaExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actAnchoPaginaExecute(Sender: TObject);
procedure actZoomOutExecute(Sender: TObject);
procedure cbZoomItemClick(Sender: TObject);
procedure actToolHandExecute(Sender: TObject);
procedure actToolZoomExecute(Sender: TObject);
procedure actPaginaSiguienteUpdate(Sender: TObject);
procedure actUltimaPaginaUpdate(Sender: TObject);
procedure actPrimeraPaginaUpdate(Sender: TObject);
procedure actPaginaAnteriorUpdate(Sender: TObject);
private
FPreview : TfrViewPreview;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom;
protected
function GetReport: TfrxReport; virtual;
public
constructor Create(AOwner: TComponent); override;
property Report: TfrxReport read GetReport;
procedure Print;
procedure Preview;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
end;
implementation
uses
frxRes, frxUtils, frxPrinter, frxFormUtils,
uCustomEditor, uSistemaFunc;
{$R *.dfm}
{ TfEditorBase1 }
function TfEditorPreview.GetReport: TfrxReport;
begin
Result := frxReport1;
end;
procedure TfEditorPreview.FormShow(Sender: TObject);
begin
inherited;
UpdateZoom;
actPrimeraPagina.Execute;
FPreview.ShowEmbedded(Self);
Report.ShowPreparedReport;
actAnchoPagina.Execute;
end;
procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.First;
end;
procedure TfEditorPreview.actPrimeraPaginaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1);
end;
procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Last;
end;
procedure TfEditorPreview.actUltimaPaginaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount);
end;
procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Prior;
end;
procedure TfEditorPreview.actPaginaAnteriorUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1);
end;
procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Next;
end;
procedure TfEditorPreview.actPaginaSiguienteUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount);
end;
procedure TfEditorPreview.actZoomInExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25;
UpdateZoom;
end;
procedure TfEditorPreview.UpdateZoom;
begin
cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%';
end;
procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.ZoomMode := zmWholePage;
UpdateZoom;
end;
procedure TfEditorPreview.FormDestroy(Sender: TObject);
begin
inherited;
FPreview.Free;
end;
procedure TfEditorPreview.FormResize(Sender: TObject);
begin
inherited;
UpdateZoom;
end;
procedure TfEditorPreview.actImprimirExecute(Sender: TObject);
begin
inherited;
Print;
end;
procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.ZoomMode := zmPageWidth;
UpdateZoom;
end;
procedure TfEditorPreview.actZoomOutExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25;
UpdateZoom;
end;
procedure TfEditorPreview.cbZoomItemClick(Sender: TObject);
var
s: String;
begin
FPreview.Preview.SetFocus;
if cbZoom.ItemIndex = 6 then
actAnchoPagina.Execute
else if cbZoom.ItemIndex = 7 then
actTodaPagina.Execute
else
begin
s := cbZoom.Text;
if Pos('%', s) <> 0 then
s[Pos('%', s)] := ' ';
while Pos(' ', s) <> 0 do
Delete(s, Pos(' ', s), 1);
if s <> '' then
FPreview.Preview.Zoom := frxStrToFloat(s) / 100;
end;
UpdateZoom;
end;
procedure TfEditorPreview.actToolHandExecute(Sender: TObject);
begin
if tbxMano.Checked then
FPreview.Preview.Tool := ptHand
end;
procedure TfEditorPreview.actToolZoomExecute(Sender: TObject);
begin
if tbxZoom.Checked then
FPreview.Preview.Tool := ptZoom;
end;
procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview;
PageNo: Integer);
begin
StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'),
[PageNo, Sender.PageCount]);
end;
constructor TfEditorPreview.Create(AOwner: TComponent);
begin
inherited;
with cbZoom.Strings do
begin
Clear;
Add('25%');
Add('50%');
Add('75%');
Add('100%');
Add('150%');
Add('200%');
Add(frxResources.Get('zmPageWidth'));
Add(frxResources.Get('zmWholePage'));
end;
FPreview := TfrViewPreview.Create(Self);
Report.Preview := FPreview.Preview;
FPreview.Preview.OnPageChanged := OnPageChanged;
end;
procedure TfEditorPreview.Preview;
begin
Self.ShowModal;
end;
procedure TfEditorPreview.Print;
begin
if not frxPrinters.HasPhysicalPrinters then
frxErrorMsg(frxResources.Get('clNoPrinters'))
else
FPreview.Preview.Print;
Enabled := True;
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;
initialization
RegisterClass(TfEditorPreview);
finalization
UnRegisterClass(TfEditorPreview);
end.

View File

@ -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.

View File

@ -0,0 +1,63 @@
inherited frViewBarraSeleccion: TfrViewBarraSeleccion
Width = 451
Height = 36
Align = alBottom
ExplicitWidth = 451
ExplicitHeight = 36
object JvFooter1: TJvFooter
Left = 0
Top = 0
Width = 451
Height = 36
Align = alClient
DesignSize = (
451
36)
object bSeleccionar: TJvFooterBtn
Left = 291
Top = 6
Width = 74
Height = 23
Action = actSeleccionar
Anchors = [akRight, akBottom]
Default = True
ModalResult = 1
TabOrder = 0
HotTrackFont.Charset = DEFAULT_CHARSET
HotTrackFont.Color = clWindowText
HotTrackFont.Height = -11
HotTrackFont.Name = 'Tahoma'
HotTrackFont.Style = []
ButtonIndex = 0
SpaceInterval = 6
end
object bCancelar: TJvFooterBtn
Left = 369
Top = 6
Width = 74
Height = 23
Action = actCancelar
Anchors = [akRight, akBottom]
Cancel = True
ModalResult = 2
TabOrder = 1
HotTrackFont.Charset = DEFAULT_CHARSET
HotTrackFont.Color = clWindowText
HotTrackFont.Height = -11
HotTrackFont.Name = 'Tahoma'
HotTrackFont.Style = []
ButtonIndex = 1
SpaceInterval = 6
end
end
object BarraSeleccionActionList: TActionList
Left = 4
Top = 3
object actSeleccionar: TAction
Caption = 'Seleccionar'
end
object actCancelar: TAction
Caption = 'Cancelar'
end
end
end

View File

@ -0,0 +1,28 @@
unit uViewBarraSeleccion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls, JvExStdCtrls, JvButton,
JvCtrls, JvFooter, JvExExtCtrls, JvComponent;
type
TfrViewBarraSeleccion = class(TfrViewBase)
JvFooter1: TJvFooter;
bSeleccionar: TJvFooterBtn;
bCancelar: TJvFooterBtn;
BarraSeleccionActionList: TActionList;
actSeleccionar: TAction;
actCancelar: TAction;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

@ -0,0 +1,14 @@
object frViewBase: TfrViewBase
Left = 0
Top = 0
Width = 445
Height = 291
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
ReadOnly = False
end

View File

@ -0,0 +1,32 @@
unit uViewBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize;
type
IViewBase = interface(ICustomView)
['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}']
procedure Refresh;
end;
TfrViewBase = class(TCustomView, IViewBase)
public
procedure Refresh; virtual;
end;
implementation
{$R *.dfm}
{ TfrViewBase }
procedure TfrViewBase.Refresh;
begin
//
end;
end.

View File

@ -0,0 +1,724 @@
inherited frViewDetallesBase: TfrViewDetallesBase
Width = 467
Height = 319
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
ExplicitWidth = 451
ExplicitHeight = 304
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 467
Height = 51
AutoSize = True
ButtonWidth = 63
Caption = 'ToolBar1'
EdgeInner = esNone
EdgeOuter = esNone
Flat = False
Images = ContenidoImageList
List = True
ParentShowHint = False
ShowCaptions = True
ShowHint = True
TabOrder = 0
Transparent = True
Visible = False
ExplicitWidth = 451
object ToolButton1: TToolButton
Left = 0
Top = 2
Action = actAnadir
AutoSize = True
end
object ToolButton2: TToolButton
Left = 62
Top = 2
Action = actEliminar
AutoSize = True
end
object ToolButton3: TToolButton
Left = 129
Top = 2
Action = actSubir
AutoSize = True
end
object ToolButton4: TToolButton
Left = 184
Top = 2
Action = actBajar
AutoSize = True
end
object ToolButton5: TToolButton
Left = 0
Top = 2
Width = 8
Caption = 'ToolButton5'
ImageIndex = 4
Wrap = True
Style = tbsSeparator
end
object ToolButton14: TToolButton
Left = 0
Top = 29
Action = FontEdit1
AutoSize = True
end
object FontName: TJvFontComboBox
Left = 34
Top = 29
Width = 145
Height = 22
DroppedDownWidth = 145
MaxMRUCount = 0
FontName = 'Tahoma'
ItemIndex = 107
Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg]
Sorted = True
TabOrder = 2
Visible = False
OnChange = FontNameChange
OnClick = FontNameChange
end
object FontSize: TEdit
Left = 179
Top = 29
Width = 26
Height = 22
Hint = 'Font Size|Select font size'
TabOrder = 1
Text = '0'
Visible = False
OnChange = FontSizeChange
end
object UpDown1: TUpDown
Left = 205
Top = 29
Width = 16
Height = 22
Associate = FontSize
TabOrder = 0
Visible = False
end
object ToolButton13: TToolButton
Left = 221
Top = 29
Width = 8
Caption = 'ToolButton13'
ImageIndex = 10
Style = tbsSeparator
end
object ToolButton6: TToolButton
Left = 229
Top = 29
Action = RichEditBold1
AutoSize = True
end
object ToolButton7: TToolButton
Left = 263
Top = 29
Action = RichEditItalic1
AutoSize = True
end
object ToolButton8: TToolButton
Left = 297
Top = 29
Action = RichEditUnderline1
AutoSize = True
end
object ToolButton12: TToolButton
Left = 331
Top = 29
Width = 8
Caption = 'ToolButton12'
ImageIndex = 10
Style = tbsSeparator
end
object ToolButton9: TToolButton
Left = 339
Top = 29
Action = RichEditAlignLeft1
AutoSize = True
end
object ToolButton10: TToolButton
Left = 373
Top = 29
Action = RichEditAlignCenter1
AutoSize = True
end
object ToolButton11: TToolButton
Left = 407
Top = 29
Action = RichEditAlignRight1
AutoSize = True
end
end
object cxGrid: TcxGrid
Left = 0
Top = 77
Width = 467
Height = 242
Align = alClient
TabOrder = 1
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
ExplicitWidth = 451
ExplicitHeight = 227
object cxGridView: TcxGridDBTableView
PopupMenu = GridPopupMenu
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
OnEditing = cxGridViewEditing
OnEditKeyDown = cxGridViewEditKeyDown
OnEditValueChanged = cxGridViewEditValueChanged
OnInitEdit = cxGridViewInitEdit
DataController.DataSource = DADataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.KeyFieldNames = 'ID'
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>
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
OptionsData.CancelOnExit = False
OptionsSelection.MultiSelect = True
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.Indicator = True
Styles.ContentEven = cxStyleEven
Styles.ContentOdd = cxStyleOdd
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
object cxGridViewID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
Visible = False
end
object cxGridViewPOSICION: TcxGridDBColumn
DataBinding.FieldName = 'POSICION'
Visible = False
SortIndex = 0
SortOrder = soAscending
end
object cxGridViewTIPO: TcxGridDBColumn
Caption = 'Tipo'
DataBinding.FieldName = 'TIPO_DETALLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.Items = <>
BestFitMaxWidth = 64
Width = 56
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
Caption = 'Concepto'
DataBinding.FieldName = 'CONCEPTO'
PropertiesClassName = 'TcxRichEditProperties'
Width = 224
end
object cxGridViewCANTIDAD: TcxGridDBColumn
Caption = 'Cantidad'
DataBinding.FieldName = 'CANTIDAD'
PropertiesClassName = 'TcxMaskEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 64
HeaderAlignmentHorz = taRightJustify
Width = 130
end
object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
Caption = 'Importe unidad'
DataBinding.FieldName = 'IMPORTE_UNIDAD'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 120
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
Width = 130
end
object cxGridViewIMPORTETOTAL: TcxGridDBColumn
Caption = 'Importe total'
DataBinding.FieldName = 'IMPORTE_TOTAL'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 120
HeaderAlignmentHorz = taRightJustify
Options.Editing = False
Styles.Content = cxStyle_IMPORTETOTAL
Width = 130
end
object cxGridViewVISIBLE: TcxGridDBColumn
Caption = #191'Visible?'
DataBinding.FieldName = 'VISIBLE'
PropertiesClassName = 'TcxCheckBoxProperties'
Properties.Alignment = taCenter
Properties.DisplayChecked = '1'
Properties.DisplayUnchecked = '0'
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 = 1
Properties.ValueUnchecked = 0
Visible = False
FooterAlignmentHorz = taCenter
HeaderAlignmentHorz = taCenter
end
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object TBXDock1: TTBXDock
Left = 0
Top = 51
Width = 467
Height = 26
BackgroundOnToolbars = False
UseParentBackground = True
ExplicitWidth = 451
object TBXToolbar1: TTBXToolbar
Left = 0
Top = 0
Caption = 'TBXToolbar1'
DragHandleStyle = dhNone
Images = ContenidoImageList
TabOrder = 0
object TBXItem1: TTBXItem
Action = actAnadir
DisplayMode = nbdmImageAndText
Images = ContenidoImageList
end
object TBXItem2: TTBXItem
Action = actEliminar
DisplayMode = nbdmImageAndText
Images = ContenidoImageList
end
object TBXSeparatorItem1: TTBXSeparatorItem
end
object TBXItem3: TTBXItem
Action = actSubir
DisplayMode = nbdmImageAndText
end
object TBXItem4: TTBXItem
Action = actBajar
DisplayMode = nbdmImageAndText
end
object TBXSeparatorItem2: TTBXSeparatorItem
end
object TBXItem5: TTBXItem
Action = RichEditBold1
end
object TBXItem6: TTBXItem
Action = RichEditItalic1
end
object TBXItem7: TTBXItem
Action = RichEditUnderline1
end
object TBXSeparatorItem4: TTBXSeparatorItem
end
object TBXItem9: TTBXItem
Action = RichEditAlignLeft1
end
object TBXItem10: TTBXItem
Action = RichEditAlignCenter1
end
object TBXItem11: TTBXItem
Action = RichEditAlignRight1
end
object TBXSeparatorItem3: TTBXSeparatorItem
end
object TBXItem8: TTBXItem
Action = FontEdit1
end
object TBXItem13: TTBXItem
Action = RichEditAlignRight2
end
end
end
object ActionListContenido: TActionList
Images = ContenidoImageList
Left = 8
Top = 104
object actAnadir: TAction
Category = 'Operaciones'
Caption = 'A'#241'adir'
ImageIndex = 0
ShortCut = 45
OnExecute = actAnadirExecute
end
object actEliminar: TAction
Category = 'Operaciones'
Caption = 'Eliminar'
ImageIndex = 1
ShortCut = 16430
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
object actSubir: TAction
Category = 'Operaciones'
Caption = 'Subir'
ImageIndex = 2
OnExecute = actSubirExecute
OnUpdate = actSubirUpdate
end
object actBajar: TAction
Category = 'Operaciones'
Caption = 'Bajar'
ImageIndex = 3
OnExecute = actBajarExecute
OnUpdate = actBajarUpdate
end
object RichEditBold1: TRichEditBold
Category = 'Format'
AutoCheck = True
Hint = 'Negrita'
ImageIndex = 4
ShortCut = 16450
end
object RichEditItalic1: TRichEditItalic
Category = 'Format'
AutoCheck = True
Hint = 'Cursiva'
ImageIndex = 5
ShortCut = 16457
end
object RichEditUnderline1: TRichEditUnderline
Category = 'Format'
AutoCheck = True
Hint = 'Subrayado'
ImageIndex = 6
ShortCut = 16469
end
object RichEditAlignLeft1: TRichEditAlignLeft
Category = 'Format'
AutoCheck = True
Hint = 'Alinear a la izquierda'
ImageIndex = 7
end
object RichEditAlignCenter1: TRichEditAlignCenter
Category = 'Format'
AutoCheck = True
Hint = 'Center|Centers text between margins'
ImageIndex = 8
end
object RichEditAlignRight1: TRichEditAlignRight
Category = 'Format'
AutoCheck = True
Hint = 'Align Right|Aligns text at the right indent'
ImageIndex = 9
end
object FontEdit1: TFontEdit
Category = 'Dialog'
Dialog.Font.Charset = DEFAULT_CHARSET
Dialog.Font.Color = clWindowText
Dialog.Font.Height = -11
Dialog.Font.Name = 'Tahoma'
Dialog.Font.Style = []
Enabled = False
Hint = 'Formato de fuente'
ImageIndex = 10
BeforeExecute = FontEdit1BeforeExecute
OnAccept = FontEdit1Accept
end
object RichEditAlignRight2: TRichEditAlignRight
Category = 'Format'
AutoCheck = True
Caption = 'Align &Right'
Hint = 'Align Right|Aligns text at the right indent'
ImageIndex = 11
end
end
object DADataSource: TDADataSource
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
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001984944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046
C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F
CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8
7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7
9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254
66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F
9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0
8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908
567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754
03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4
6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748
CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945
4E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001844944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B
37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C
6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E
61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B
0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14
CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F
005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD
DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE
D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13
9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC
F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C
81590C9B58CC0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001854944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12
CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A
B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10
67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9
D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707
E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356
D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE
EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426
90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8
97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F
1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B
D67559EB1C43180000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F94944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D
80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7
CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0
E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8
0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651
5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049
454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001004944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D
80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86
FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED
BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01
E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7
64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE
9D230000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000FC4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66
18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF
B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E
FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354
DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875
F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001CB4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7
E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3
3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC
759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E
32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9
4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1
1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7
70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19
562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183
3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56
28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B
99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410
72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B
F333A26300FC1C815930D4A9C10000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end>
Left = 40
Top = 112
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
object cxStyle_IMPORTETOTAL: TcxStyle
AssignedValues = [svColor]
Color = clInactiveCaptionText
end
object cxStyle_SUBTOTAL: TcxStyle
AssignedValues = [svColor]
Color = cl3DLight
end
object cxStyle_TITULO: TcxStyle
AssignedValues = [svColor]
Color = clMenuBar
end
end
object GridPopupMenu: TPopupMenu
Left = 40
Top = 136
object Modificar1: TMenuItem
Action = actAnadir
end
object Duplicar1: TMenuItem
Caption = '-'
end
object Subir2: TMenuItem
Action = actSubir
end
object Subir1: TMenuItem
Action = actBajar
end
object N1: TMenuItem
Caption = '-'
end
object Eliminar1: TMenuItem
Action = actEliminar
end
end
end

View File

@ -0,0 +1,602 @@
unit uViewDetallesBase;
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, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox,
uControllerDetallesBase, cxCurrencyEdit, ExtCtrls, Grids, DBGrids, StdCtrls,
ExtActns, StdActns, cxRichEdit, JvExStdCtrls, JvCombobox, JvColorCombo,
TB2Item, TBX, TB2Dock, TB2Toolbar, Menus;
type
IViewDetallesBase = interface(IViewBase)
['{852EB860-13B6-4355-A6B0-4542AB16896F}']
end;
TfrViewDetallesBase = class(TfrViewBase, IViewDetallesBase)
ActionListContenido: TActionList;
DADataSource: TDADataSource;
actAnadir: TAction;
actEliminar: TAction;
actSubir: TAction;
actBajar: TAction;
ContenidoImageList: TPngImageList;
ToolBar1: TToolBar;
cxStyleRepository: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridViewID: TcxGridDBColumn;
cxGridViewPOSICION: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
cxGridViewIMPORTETOTAL: TcxGridDBColumn;
cxGridViewVISIBLE: TcxGridDBColumn;
cxGridLevel: TcxGridLevel;
ToolButton5: TToolButton;
RichEditBold1: TRichEditBold;
RichEditItalic1: TRichEditItalic;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
RichEditUnderline1: TRichEditUnderline;
RichEditAlignLeft1: TRichEditAlignLeft;
RichEditAlignRight1: TRichEditAlignRight;
RichEditAlignCenter1: TRichEditAlignCenter;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
FontEdit1: TFontEdit;
ToolButton14: TToolButton;
UpDown1: TUpDown;
FontSize: TEdit;
FontName: TJvFontComboBox;
TBXDock1: TTBXDock;
TBXToolbar1: TTBXToolbar;
TBXItem1: TTBXItem;
TBXItem2: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXItem3: TTBXItem;
TBXItem4: TTBXItem;
TBXSeparatorItem2: TTBXSeparatorItem;
TBXItem5: TTBXItem;
TBXItem6: TTBXItem;
TBXItem7: TTBXItem;
TBXSeparatorItem3: TTBXSeparatorItem;
TBXItem8: TTBXItem;
TBXSeparatorItem4: TTBXSeparatorItem;
TBXItem9: TTBXItem;
TBXItem10: TTBXItem;
TBXItem11: TTBXItem;
cxStyle_IMPORTETOTAL: TcxStyle;
cxStyle_SUBTOTAL: TcxStyle;
cxStyle_TITULO: TcxStyle;
TBXItem13: TTBXItem;
RichEditAlignRight2: TRichEditAlignRight;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Duplicar1: TMenuItem;
N1: TMenuItem;
Eliminar1: TMenuItem;
Subir1: TMenuItem;
Subir2: TMenuItem;
procedure actAnadirExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actSubirExecute(Sender: TObject);
procedure actBajarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actSubirUpdate(Sender: TObject);
procedure actBajarUpdate(Sender: TObject);
procedure cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
Shift: TShiftState);
procedure cxGridViewInitEdit(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
procedure FontEdit1BeforeExecute(Sender: TObject);
procedure FontEdit1Accept(Sender: TObject);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure FontSizeChange(Sender: TObject);
procedure FontNameChange(Sender: TObject);
procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure TBXItem13Click(Sender: TObject);
private
FController : IControllerDetallesBase;
FDetalles: IDAStronglyTypedDataTable;
CurEdit: TcxRichEdit;
FUpdating: Boolean;
function CurrText: TTextAttributes;
procedure OnSelectChange(Sender:TObject);
function GetController: IControllerDetallesBase;
procedure SetController(const Value: IControllerDetallesBase);
function GetDetalles: IDAStronglyTypedDataTable;
procedure SetDetalles(const Value: IDAStronglyTypedDataTable);
function darPosicionCAMPO(const Nombre:String): Integer;
function darListaSeleccionados: TIntegerArray;
protected
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual;
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; virtual;
function darTipoLetraPorDefecto: TFont; virtual;
public
property Controller: IControllerDetallesBase read GetController write SetController;
property Detalles: IDAStronglyTypedDataTable read GetDetalles write SetDetalles;
end;
implementation
{$R *.dfm}
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
TStrings(Data).Add(LogFont.lfFaceName);
Result := 1;
end;
procedure TfrViewDetallesBase.actAnadirExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.add(FDetalles, TIPO_DETALLE_CONCEPTO);
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.actEliminarExecute(Sender: TObject);
var
AuxTop, AuxRow:Integer;
begin
cxGridView.BeginUpdate;
try
if Assigned(Controller)
and Assigned(FDetalles) then
begin
AuxTop := cxGridView.Controller.TopRowIndex;
AuxRow := cxGridView.DataController.FocusedRowIndex;
Controller.delete(FDetalles, darListaSeleccionados);
//Selecciona en el grid el registro siguiente
if (AuxRow < cxGridView.DataController.RowCount-1)
then Inc(AuxRow)
else Dec(AuxRow);
cxGridView.DataController.SelectRows(AuxRow,AuxRow);
cxGridView.Controller.TopRowIndex := AuxTop;
end
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.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 TfrViewDetallesBase.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;
function TfrViewDetallesBase.darTipoLetraPorDefecto: TFont;
begin
Result := TFont.Create;
Result.Name := 'Tahoma';
Result.Size := 10;
end;
function TfrViewDetallesBase.CurrText: TTextAttributes;
begin
if Assigned(CurEdit) then
// if CurEdit.FindSelection then
if CurEdit.SelLength > 0 then
Result := CurEdit.SelAttributes
else
Result := CurEdit.DefAttributes;
end;
procedure TfrViewDetallesBase.CustomViewCreate(Sender: TObject);
begin
inherited;
CurEdit := Nil;
FUpdating := False;
end;
procedure TfrViewDetallesBase.CustomViewDestroy(Sender: TObject);
begin
CurEdit := Nil;
FUpdating := False;
inherited;
end;
procedure TfrViewDetallesBase.cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
AAllow := EsTipoEditable(AItem);
end;
procedure TfrViewDetallesBase.cxGridViewEditKeyDown(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);
begin
inherited;
cxGridView.BeginUpdate;
try
Case Key of
VK_DOWN : begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
//Baja los conceptos seleccionados
if Shift = [ssAlt] then
begin
Key := 0;
actBajar.Execute;
end;
end;
VK_UP : begin
//Sube los conceptos seleccionados
if Shift = [ssAlt] then
begin
Key := 0;
actSubir.Execute;
end;
end;
VK_RETURN, VK_RIGHT
: begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish
and AItem.IsLast then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
end;
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
begin
inherited;
cxGridView.BeginUpdate;
try
if HayQueRecalcular(AItem) then
begin
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
Controller.actualizarTotales(Detalles);
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
var
FuentePorDefecto: TFont;
begin
inherited;
if AEdit is TcxRichEdit then
begin
FuentePorDefecto := darTipoLetraPorDefecto;
//La primera vez que accedemos al grid entra dos veces y perderiamos el editor
//dando un pete.
if not Assigned(CurEdit) then
begin
FontEdit1.Enabled := True;
// UpDown1.Enabled := True;
// FontSize.Enabled := True;
// FontName.Enabled := True;
CurEdit := TcxRichEdit(AEdit);
if length(CurEdit.Text) = 0 then
CurEdit.DefAttributes.Assign(FuentePorDefecto)
end
else
if length(CurEdit.Text) = 0 then
CurEdit.DefAttributes.Assign(FuentePorDefecto);
FreeAndNil(FuentePorDefecto);
end
else
begin
CurEdit := Nil;
FontEdit1.Enabled := False;
// UpDown1.Enabled := False;
// FontSize.Enabled := False;
// FontName.Enabled := False;
end;
end;
procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol : Integer;
ATipo : String;
begin
if Assigned(ARecord) then
begin
IndiceCol := cxGridViewTIPO.Index;
ATipo := VarToStr(ARecord.Values[IndiceCol]);
if ATipo = TIPO_DETALLE_SUBTOTAL then
AStyle := cxStyle_SUBTOTAL;
if ATipo = TIPO_DETALLE_TITULO then
AStyle := cxStyle_TITULO;
end;
end;
function TfrViewDetallesBase.darListaSeleccionados: TIntegerArray;
var
i, j: Integer;
begin
j := darPosicionCampo(CAMPO_POSICION);
with cxGridView.Controller do
for i:=0 to SelectedRecordCount-1 do
begin
SetLength(Result, i+1);
Result[i] := SelectedRecords[i].Values[j];
end;
end;
function TfrViewDetallesBase.darPosicionCAMPO(const Nombre: String): Integer;
var
i: Integer;
begin
Result := -1;
i:=0;
while ((cxGridView.Columns[i].DataBinding.FieldName <> Nombre)
and (i < cxGridView.ColumnCount)) do
inc(i);
if (i = cxGridView.ColumnCount)
then raise Exception.Create('El campo ' + Nombre + ' no se ha encontrado en el grid (uViewDetallesBase)');
Result := i;
end;
function TfrViewDetallesBase.EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean;
var
IndiceCol : Integer;
begin
Result := True;
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SALTO) then
begin
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index;
if AItem.Index >= IndiceCol then
Result := False
end
else
begin
if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SUBTOTAL)
or (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO) then
begin
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index;
if AItem.Index > IndiceCol then
Result := False
end
end;
end;
procedure TfrViewDetallesBase.FontEdit1Accept(Sender: TObject);
begin
inherited;
CurrText.Assign(FontEdit1.Dialog.Font);
end;
procedure TfrViewDetallesBase.FontEdit1BeforeExecute(Sender: TObject);
begin
inherited;
FontEdit1.Dialog.Font.Assign(CurEdit.SelAttributes);
end;
procedure TfrViewDetallesBase.FontNameChange(Sender: TObject);
begin
if FUpdating then Exit;
CurrText.Name := FontName.Items[FontName.ItemIndex];
end;
procedure TfrViewDetallesBase.FontSizeChange(Sender: TObject);
begin
if FUpdating then Exit;
CurrText.Size := StrToInt(FontSize.Text);
end;
function TfrViewDetallesBase.GetController: IControllerDetallesBase;
begin
Result := FController;
end;
function TfrViewDetallesBase.GetDetalles: IDAStronglyTypedDataTable;
begin
Result := FDetalles;
end;
function TfrViewDetallesBase.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean;
begin
Result := (AItem = cxGridViewTIPO)
or (AItem = cxGridViewCANTIDAD)
or (AItem = cxGridViewIMPORTEUNIDAD);
end;
procedure TfrViewDetallesBase.OnSelectChange(Sender: TObject);
begin
if (csDestroying in ComponentState) then
Exit;
try
FUpdating := True;
// FontSize.Text := IntToStr(CurEdit.SelAttributes.Size);
// FontName.FontName := CurEdit.SelAttributes.Name;
finally
FUpdating := False;
end;
end;
procedure TfrViewDetallesBase.SetController(const Value: IControllerDetallesBase);
var
AListaValores : TStringList;
AItem : TcxImageComboBoxItem;
i: integer;
DC: HDC;
begin
FController := Value;
//Rellenamos los tipos de letra que tenemos
FontName.Items.Clear;
DC := GetDC(0);
EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items));
ReleaseDC(0, DC);
FontName.Sorted := True;
//Rellenamos los tipos de conceptos que hay
if Assigned(FController) then
begin
AListaValores := FController.darListaTIPOSDETALLE;
with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do
if Items.Count = 0 then
begin
Items.BeginUpdate;
try
Items.Clear;
for i:=0 to AListaValores.Count-1 do
begin
AItem := Items.Add;
AItem.Tag := i;
AItem.Description := AListaValores.ValueFromIndex[i];
AItem.Value := AListaValores.Names[i];
end;
finally
DefaultDescription := AListaValores.ValueFromIndex[0];
FreeAndNil(AListaValores);
Items.EndUpdate;
end;
end;
end;
end;
procedure TfrViewDetallesBase.SetDetalles(const Value: IDAStronglyTypedDataTable);
begin
FDetalles := Value;
if Assigned(FDetalles) then
DADataSource.DataTable := FDetalles.DataTable
else
DADataSource.DataTable := NIL;
end;
procedure TfrViewDetallesBase.TBXItem13Click(Sender: TObject);
begin
inherited;
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
end;
procedure TfrViewDetallesBase.actBajarExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.move(FDetalles, darListaSeleccionados, 1);
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.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 TfrViewDetallesBase.actSubirExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.move(FDetalles, darListaSeleccionados, -1);
finally
cxGridView.EndUpdate;
end;
end;
end.

View File

@ -0,0 +1,47 @@
inherited frViewFormaPago: TfrViewFormaPago
Width = 300
ExplicitWidth = 300
DesignSize = (
300
214)
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 = 'FORMA_PAGO'
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

View File

@ -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.

262
Base/GUIBase/uViewGrid.dfm Normal file
View File

@ -0,0 +1,262 @@
inherited frViewGrid: TfrViewGrid
Width = 519
Height = 367
ExplicitWidth = 519
ExplicitHeight = 367
object cxGrid: TcxGrid [0]
Left = 0
Top = 0
Width = 519
Height = 367
Align = alClient
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
OnDblClick = cxGridViewDblClick
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
DataController.DataSource = dsDataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.CellHints = True
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnsQuickCustomization = True
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Editing = False
OptionsData.Inserting = False
OptionsSelection.CellSelect = False
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.Footer = True
OptionsView.FooterAutoHeight = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
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 = 39139.708314340280000000
OptionsFormatting.UseNativeStyles = True
OptionsOnEveryPage.FilterBar = False
OptionsSize.AutoWidth = True
OptionsView.FilterBar = False
StyleRepository = cxStyleRepository2
Styles.StyleSheet = dxGridReportLinkStyleSheet1
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
object cxStyleSinOrden: TcxStyle
end
object cxStyleConOrden: TcxStyle
AssignedValues = [svColor]
Color = 16119285
end
object cxStyleFiltered: TcxStyle
AssignedValues = [svColor]
Color = clInfoBk
end
end
object cxViewGridPopupMenu: TcxGridPopupMenu
Grid = cxGrid
PopupMenus = <
item
GridView = cxGridView
HitTypes = [gvhtCell]
Index = 0
end>
Left = 264
Top = 128
end
object cxStyleRepository2: TcxStyleRepository
object cxStyle1: TcxStyle
AssignedValues = [svColor, svFont]
Color = 16053492
Font.Charset = DEFAULT_CHARSET
Font.Color = clDefault
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle2: TcxStyle
AssignedValues = [svColor, svFont]
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clDefault
Font.Height = -12
Font.Name = 'Times New Roman'
Font.Style = [fsBold]
end
object cxStyle3: TcxStyle
AssignedValues = [svColor, svFont]
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle4: TcxStyle
AssignedValues = [svColor, svFont]
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle5: TcxStyle
AssignedValues = [svColor, svFont]
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle6: TcxStyle
AssignedValues = [svColor, svFont]
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle7: TcxStyle
AssignedValues = [svColor, svFont]
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle8: TcxStyle
AssignedValues = [svColor, svFont]
Color = clBtnShadow
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle9: TcxStyle
AssignedValues = [svColor, svFont]
Color = 16053492
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle10: TcxStyle
AssignedValues = [svColor, svFont]
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle11: TcxStyle
AssignedValues = [svColor, svFont]
Color = 16053492
Font.Charset = DEFAULT_CHARSET
Font.Color = clDefault
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle12: TcxStyle
AssignedValues = [svColor, svFont]
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object cxStyle13: TcxStyle
AssignedValues = [svColor, svFont]
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
end
object dxGridReportLinkStyleSheet1: TdxGridReportLinkStyleSheet
Caption = 'Listados'
Styles.BandHeader = cxStyle1
Styles.Caption = cxStyle2
Styles.CardCaptionRow = cxStyle3
Styles.CardRowCaption = cxStyle4
Styles.Content = cxStyle5
Styles.ContentEven = cxStyle6
Styles.ContentOdd = cxStyle7
Styles.FilterBar = cxStyle8
Styles.Footer = cxStyle9
Styles.Group = cxStyle10
Styles.Header = cxStyle11
Styles.Preview = cxStyle12
Styles.Selection = cxStyle13
BuiltIn = True
end
end
end

152
Base/GUIBase/uViewGrid.pas Normal file
View File

@ -0,0 +1,152 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewGrid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu,
cxGridPopupMenu;
type
IViewGrid = interface(IViewGridBase)
['{7EA40980-AD73-4590-A53A-932316C7B121}']
end;
TfrViewGrid = class(TfrViewGridBase, IViewGrid)
cxGrid: TcxGrid;
cxGridLevel: TcxGridLevel;
cxGridView: TcxGridDBTableView;
dxComponentPrinter: TdxComponentPrinter;
dxPSEngineController1: TdxPSEngineController;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
cxStyleSinOrden: TcxStyle;
cxStyleConOrden: TcxStyle;
cxViewGridPopupMenu: TcxGridPopupMenu;
dxComponentPrinterLink: TdxGridReportLink;
cxStyleFiltered: TcxStyle;
cxStyleRepository2: TcxStyleRepository;
dxGridReportLinkStyleSheet1: TdxGridReportLinkStyleSheet;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle3: TcxStyle;
cxStyle4: TcxStyle;
cxStyle5: TcxStyle;
cxStyle6: TcxStyle;
cxStyle7: TcxStyle;
cxStyle8: TcxStyle;
cxStyle9: TcxStyle;
cxStyle10: TcxStyle;
cxStyle11: TcxStyle;
cxStyle12: TcxStyle;
cxStyle13: TcxStyle;
procedure cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure cxGridViewDblClick(Sender: TObject);
protected
function GetGrid : TcxGrid; override;
function GetFocusedView : TcxGridDBTableView; override;
procedure SetPopupMenu(const Value: TPopupMenu); override;
procedure FilterChanged(Sender : TObject); override;
public
procedure Preview; override;
procedure Print; override;
procedure PrintSetup; override;
end;
implementation
uses
uDataModuleBase, uDBSelectionListUtils;
{$R *.dfm}
{
********************************* TfrViewGrid **********************************
}
{ TfrViewGrid }
function TfrViewGrid.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
function TfrViewGrid.GetGrid: TcxGrid;
begin
Result := cxGrid;
end;
procedure TfrViewGrid.Preview;
begin
inherited;
dxComponentPrinter.Preview;
end;
procedure TfrViewGrid.Print;
begin
inherited;
dxComponentPrinter.Print(True, nil, nil);
end;
procedure TfrViewGrid.PrintSetup;
begin
inherited;
dxComponentPrinter.PageSetup(nil);
end;
procedure TfrViewGrid.SetPopupMenu(const Value: TPopupMenu);
begin
inherited;
cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu;
end;
procedure TfrViewGrid.cxGridViewDblClick(Sender: TObject);
begin
inherited;
if Assigned(FOnDblClick) then
FOnDblClick(Sender);
end;
procedure TfrViewGrid.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
inherited;
if Assigned(AItem) then
begin
if AItem.SortOrder = soNone then
AStyle := cxStyleSinOrden
else
AStyle := cxStyleConOrden;
end;
end;
procedure TfrViewGrid.FilterChanged(Sender: TObject);
begin
inherited;
if Filtered then
_FocusedView.Styles.Content := cxStyleFiltered
else
_FocusedView.Styles.Content := nil;
end;
end.

View File

@ -0,0 +1,10 @@
inherited frViewGridBase: TfrViewGridBase
Width = 441
Height = 268
ExplicitWidth = 441
ExplicitHeight = 268
object dsDataSource: TDADataSource
Left = 8
Top = 16
end
end

View File

@ -0,0 +1,323 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewGridBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv;
type
IViewGridBase = interface(IViewBase)
['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}']
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
procedure Preview;
procedure Print;
procedure PrintSetup;
function IsEmpty : Boolean;
procedure GotoFirst;
procedure GotoLast;
function GetFocusedView : TcxGridDBTableView;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
function GetGrid : TcxGrid;
property _Grid : TcxGrid read GetGrid;
procedure StoreToRegistry (const Path : String);
procedure RestoreFromRegistry (const Path : String);
procedure SetDblClick(const Value: TNotifyEvent);
function GetDblClick: TNotifyEvent;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
procedure SetPopupMenu(const Value: TPopupMenu);
function GetPopupMenu: TPopupMenu;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
function GetMultiSelect: Boolean;
procedure SetMultiSelect(const Value: Boolean);
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
procedure SetFilter(const Value: string);
function GetFilter: string;
property Filter: string read GetFilter write SetFilter;
function GetFiltered: Boolean;
property Filtered : Boolean read GetFiltered;
end;
TfrViewGridBase = class(TfrViewBase, IViewGridBase)
dsDataSource: TDADataSource;
private
FFilter: string;
FOnFilterChanged : TNotifyEvent;
procedure FiltrarGrid(TextoFiltro : String);
protected
FOnDblClick: TNotifyEvent;
FPopupMenu: TPopupMenu;
function GetMultiSelect: Boolean; virtual;
procedure SetMultiSelect(const Value: Boolean); virtual;
procedure SetPopupMenu(const Value: TPopupMenu); virtual;
function GetPopupMenu: TPopupMenu; virtual;
procedure SetDblClick(const Value: TNotifyEvent); virtual;
function GetDblClick: TNotifyEvent; virtual;
function GetGrid : TcxGrid; virtual; abstract;
function GetFocusedView : TcxGridDBTableView; virtual; abstract;
procedure SetFilter(const Value: string); virtual;
function GetFilter: string; virtual;
function GetFiltered: Boolean; virtual;
procedure FilterChanged(Sender : TObject); virtual;
public
constructor Create(AOwner: TComponent); override;
procedure ShowEmbedded(const AParent : TWinControl); override;
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
procedure Preview; virtual;
procedure Print; virtual;
procedure PrintSetup; virtual;
function IsEmpty : Boolean;
procedure GotoFirst;
procedure GotoLast;
procedure StoreToRegistry (const Path : String);
procedure RestoreFromRegistry (const Path : String);
property Filter: string read GetFilter write SetFilter;
property Filtered : Boolean read GetFiltered;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
property _Grid : TcxGrid read GetGrid;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
destructor Destroy; override;
end;
procedure Register;
implementation
uses
CCReg, uDataModuleBase, uDBSelectionListUtils;
{$R *.dfm}
procedure Register;
begin
RegisterCustomContainer(TfrViewGridBase);
end;
{ TfrViewGrid }
procedure TfrViewGridBase.AjustarAncho;
begin
if Assigned(_FocusedView) then
_FocusedView.ApplyBestFit;
end;
procedure TfrViewGridBase.ContraerTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Collapse(True);
end;
constructor TfrViewGridBase.Create(AOwner: TComponent);
begin
inherited;
FFilter := '';
FOnFilterChanged := FilterChanged;
FPopupMenu := nil;
FOnDblClick := nil;
end;
procedure TfrViewGridBase.ExpandirTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Expand(True);
end;
function TfrViewGridBase.GetDblClick: TNotifyEvent;
begin
Result := FOnDblClick;
end;
function TfrViewGridBase.GetFilter: string;
begin
Result := FFilter;
end;
function TfrViewGridBase.GetFiltered: Boolean;
begin
Result := (_FocusedView.DataController.Filter.Root.Count > 0);
end;
function TfrViewGridBase.GetMultiSelect: Boolean;
begin
Result := _FocusedView.OptionsSelection.MultiSelect;
end;
function TfrViewGridBase.GetPopupMenu: TPopupMenu;
begin
Result := FPopupMenu;
end;
procedure TfrViewGridBase.GotoFirst;
begin
if Assigned(_FocusedView) then
_FocusedView.DataController.GotoFirst;
end;
procedure TfrViewGridBase.GotoLast;
begin
if Assigned(_FocusedView) then
_FocusedView.DataController.GotoLast;
end;
function TfrViewGridBase.IsEmpty: Boolean;
begin
Result := (_FocusedView.ViewData.RowCount < 1);
end;
procedure TfrViewGridBase.Preview;
begin
//
end;
procedure TfrViewGridBase.Print;
begin
//
end;
procedure TfrViewGridBase.PrintSetup;
begin
//
end;
procedure TfrViewGridBase.RestoreFromRegistry(const Path : String);
begin
if Assigned(_FocusedView) then
_FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []);
end;
procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent);
begin
FOnDblClick := Value;
end;
procedure TfrViewGridBase.SetFilter(const Value: string);
begin
if FFilter <> Value then
begin
FFilter := Value;
FiltrarGrid(FFilter);
if Assigned(FOnFilterChanged) then
FOnFilterChanged(Self);
end;
end;
procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean);
begin
_FocusedView.OptionsSelection.MultiSelect := Value;
// _FocusedView..OnSelectionChanged := SelectionChanged;
end;
procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu);
begin
FPopupMenu := Value;
end;
procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl);
begin
inherited;
// No activar la tabla ya por si acaso tuviera parámetros
{ if not DADataSource.DataTable.Active then
DADataSource.DataTable.Active := True;}
GotoFirst;
_FocusedView.Focused := True;
if _FocusedView.ViewData.RecordCount > 0 then
begin
_FocusedView.ViewData.Records[0].Selected := True;
_FocusedView.ViewData.Records[0].Focused := True;
end;
end;
procedure TfrViewGridBase.StoreToRegistry(const Path : String);
begin
if Assigned(_FocusedView) then
_FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []);
end;
procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String);
var
Columna: TcxGridDBColumn;
i: Integer;
AItemList: TcxFilterCriteriaItemList;
begin
with _FocusedView.DataController.Filter do
begin
BeginUpdate;
try
Options := [fcoCaseInsensitive, fcoSoftCompare];
Root.Clear;
if Length(TextoFiltro) > 0 then
begin
AItemList := Root.AddItemList(fboAnd);
AItemList.BoolOperatorKind := fboOr;
for i:=0 to (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do
begin
Columna := (_FocusedView as TcxGridDBTableView).Columns[i];
if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then
AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i));
end;
Active := True;
end
else
Active := False;
finally
EndUpdate;
end;
end;
end;
procedure TfrViewGridBase.FilterChanged(Sender: TObject);
begin
//
end;
destructor TfrViewGridBase.Destroy;
begin
FOnFilterChanged := Nil;
inherited;
end;
end.

View File

@ -0,0 +1,46 @@
inherited frViewObservaciones: TfrViewObservaciones
Width = 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

View File

@ -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.

View File

@ -0,0 +1,47 @@
inherited frViewPlazoEntrega: TfrViewPlazoEntrega
Width = 300
ExplicitWidth = 300
DesignSize = (
300
214)
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 = 'PLAZO_ENTREGA'
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

View File

@ -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.

View File

@ -0,0 +1,10 @@
inherited frViewPreview: TfrViewPreview
object frxPreview: TfrxPreview
Left = 0
Top = 0
Width = 294
Height = 214
Align = alClient
OutlineVisible = False
end
end

View File

@ -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.

View File

@ -0,0 +1,269 @@
inherited frViewTotales: TfrViewTotales
Width = 451
Height = 132
Align = alBottom
ExplicitWidth = 451
ExplicitHeight = 132
object dxLayoutControl1: TdxLayoutControl
AlignWithMargins = True
Left = 3
Top = 3
Width = 445
Height = 126
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
object cxCurrencyEdit3: TcxDBCurrencyEdit
Left = 367
Top = 28
AutoSize = False
DataBinding.DataField = 'IMPORTE_DESCUENTO'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Height = 21
Width = 93
end
object cxCurrencyEdit4: TcxDBCurrencyEdit
Left = 367
Top = 55
AutoSize = False
DataBinding.DataField = 'IMPORTE_IVA'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
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 = 367
Top = 82
AutoSize = False
DataBinding.DataField = 'IMPORTE_TOTAL'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clActiveCaption
Style.TextStyle = [fsBold]
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 5
Height = 21
Width = 137
end
object edtDescuento: TcxDBSpinEdit
Left = 223
Top = 28
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.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.ButtonStyle = bts3D
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Height = 21
Width = 56
end
object edtIVA: TcxDBSpinEdit
Left = 223
Top = 55
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.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.ButtonStyle = bts3D
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Height = 21
Width = 56
end
object lblBase: TcxDBCurrencyEdit
Left = 101
Top = 28
AutoSize = False
DataBinding.DataField = 'BASE_IMPONIBLE'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Height = 21
Width = 92
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
Caption = 'Importes totales'
LayoutDirection = ldHorizontal
object dxLayoutControl1Item12: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Base imponible:'
Control = lblBase
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group3: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
Offsets.Left = 5
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item4: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Descuento (%):'
Control = edtDescuento
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item5: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'IVA (%):'
Control = edtIVA
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Group5: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe de dto:'
Control = cxCurrencyEdit3
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe de IVA:'
Control = cxCurrencyEdit4
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe total:'
Control = cxCurrencyEdit5
ControlOptions.ShowBorder = False
end
end
end
end
object dxLayoutControl1Group4: TdxLayoutGroup
end
end
object DADataSource: TDADataSource
Left = 80
end
end

View File

@ -0,0 +1,44 @@
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, dxLayoutControl;
type
TfrViewTotales = class(TfrViewBase)
DADataSource: TDADataSource;
lblBase: TcxDBCurrencyEdit;
cxCurrencyEdit3: TcxDBCurrencyEdit;
cxCurrencyEdit4: TcxDBCurrencyEdit;
cxCurrencyEdit5: TcxDBCurrencyEdit;
edtDescuento: TcxDBSpinEdit;
edtIVA: TcxDBSpinEdit;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Item4: TdxLayoutItem;
dxLayoutControl1Item5: TdxLayoutItem;
dxLayoutControl1Item12: TdxLayoutItem;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Group5: TdxLayoutGroup;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

BIN
Base/Lib/Base.dcp Normal file

Binary file not shown.

BIN
Base/Lib/ClassRegistry.dcp Normal file

Binary file not shown.

BIN
Base/Lib/ControllerBase.dcp Normal file

Binary file not shown.

Binary file not shown.

BIN
Base/Lib/GUIBase.dcp Normal file

Binary file not shown.

BIN
Base/Lib/Usuarios.dcp Normal file

Binary file not shown.

View File

@ -0,0 +1,492 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType">VCLApplication</Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{0E3D28A9-51AF-483B-B478-472A086EE120}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Usuarios.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription">Gestión de usuarios</Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath">..\..\DataAbstract_D10\Lib;..\Lib;..\..\Modulos\Empresas\Lib</Directories>
<Directories Name="Packages">vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7</Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">3</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.3.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=519
Activate=1
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."
EurekaLog Last Line -->
</BorlandProject>

View File

@ -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
-N0".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-U"..\..\DataAbstract_D10\Lib;..\Lib;..\..\Modulos\Empresas\Lib"
-O"..\..\DataAbstract_D10\Lib;..\Lib;..\..\Modulos\Empresas\Lib"
-I"..\..\DataAbstract_D10\Lib;..\Lib;..\..\Modulos\Empresas\Lib"
-R"..\..\DataAbstract_D10\Lib;..\Lib;..\..\Modulos\Empresas\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

467
Base/Usuarios/Usuarios.dof Normal file
View File

@ -0,0 +1,467 @@
[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=..\Base
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=3
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridConfigPkg7.bpl=xcxGridTools - Config Dialog
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridSummaryConfig7.bpl=xcxGridTools - Summary Config
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridEnhancedPropertiesStorePkg7.bpl=xcxGridTools - Enhanced Grid Properties Store
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridQuickSearch7.bpl=xcxGridTools - Quick Search
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridActionsPkg7.bpl=xcxGridTools - Actions
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextBaseD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextCollectionD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextAddOnsD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextTBXD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextGridD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
c:\archivos de programa\borland\delphi7\Projects\Bpl\dclIndy70.bpl=Internet Direct (Indy) for D7 Property and Component Editors
[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."

View File

@ -0,0 +1,43 @@
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 'Gestión de usuarios'}
{$IMPLICITBUILD OFF}
requires
vcl,
vcldb,
DataAbstract_D10,
Base,
Empresas_model,
Empresas_controller;
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.

View File

@ -0,0 +1,14 @@
/* VER180
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

BIN
Base/Usuarios/Usuarios.res Normal file

Binary file not shown.

View File

@ -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

View File

@ -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.

View File

@ -0,0 +1,24 @@
object dmUsuarios: TdmUsuarios
OldCreateOrder = True
OnCreate = DAClientDataModuleCreate
RemoteService = ROLoginService
Adapter = DABINAdapter
SchemaCall.MethodName = 'GetSchemaAsXML'
SchemaCall.Params = <
item
Name = 'Result'
ParamType = fResult
DataType = rtString
end>
Height = 172
Width = 355
object ROLoginService: TRORemoteService
ServiceName = 'srvLogin'
Left = 48
Top = 32
end
object DABINAdapter: TDABINAdapter
Left = 48
Top = 104
end
end

View File

@ -0,0 +1,206 @@
unit uDataModuleUsuarios;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
FactuGES_Intf, uIntegerListUtils, uBizEmpresas;
const
PERFIL_ADMINISTRADORES = 'Administradores';
type
TdmUsuarios = class(TDAClientDataModule)
ROLoginService: TRORemoteService;
DABINAdapter: TDABINAdapter;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure DAClientDataModuleDestroy(Sender: TObject);
private
FUsuario : String;
FPassword : String; // Lo guardo para poder hacer una reconexión
FLoginInfo: TRdxLoginInfo;
FEmpresaActual: IBizEmpresa;
function CambiarPassword (const APassword : String) : boolean; overload;
function GetEsAdministrador: Boolean;
function GetEmpresas: TIntegerList;
procedure SetEmpresaActual(const Value: IBizEmpresa);
function GetIDEmpresaActual: Integer;
procedure SetIDEmpresaActual(const Value: Integer);
public
function Login: Boolean; overload;
function Login(Usuario: String; Password: String): Boolean; overload;
procedure Logout;
procedure CambiarPassword; overload;
property EsAdministrador : Boolean read GetEsAdministrador;
property IDEmpresaActual : Integer read GetIDEmpresaActual write SetIDEmpresaActual;
property EmpresaActual : IBizEmpresa read FEmpresaActual write SetEmpresaActual;
property Empresas : TIntegerList read GetEmpresas;
property LoginInfo: TRdxLoginInfo read FLoginInfo;
end;
var
dmUsuarios: TdmUsuarios;
implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uDataModuleConexion, uLoginForm,
uCambiarPassword, Dialogs, Windows, uEmpresasController;
{ TDAClientDataModule1 }
procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject);
begin
ROLoginService.Channel := dmConexion.Channel;
ROLoginService.Message := dmConexion.Message;
FEmpresaActual := nil;
FUsuario := '';
FPassword := '';
FLoginInfo := NIL;
end;
function TdmUsuarios.Login: Boolean;
begin
// Intento hacer login si el usuario ya lo había hecho antes
if (Length(FUsuario) > 0) then
if Login(FUsuario, FPassword) then
Exit;
// Si no funcionar el login anterior o es la primera vez,
// saco la pantalla de login
with TfLoginForm.Create(NIL) do
try
if Assigned(FLoginInfo) then
edtUser.Text := FLoginInfo.Usuario;
Result := (ShowModal = mrOK)
finally
Free;
end;
end;
function TdmUsuarios.Login(Usuario: String; Password: String): Boolean;
begin
// Libero la información del login anterior (sesión, etc)
if Assigned(FLoginInfo) then
FreeANDNil(FLoginInfo);
Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo);
if Result then
begin
// Lo guardo para poder reconectarme
FUsuario := Usuario;
FPassword := Password;
end;
end;
procedure TdmUsuarios.Logout;
begin
(ROLoginService as IsrvLogin).Logout;
if Assigned(FLoginInfo) then
FreeANDNil(FLoginInfo);
FUsuario := '';
FPassword := '';
end;
procedure TdmUsuarios.SetEmpresaActual(const Value: IBizEmpresa);
begin
FEmpresaActual := Value;
FEmpresaActual.DataTable.Active := True;
end;
procedure TdmUsuarios.SetIDEmpresaActual(const Value: Integer);
var
AEmpresasController : IEmpresasController;
AEmpresa : IBizEmpresa;
begin
AEmpresasController := TEmpresasController.Create;
AEmpresa := AEmpresasController.Buscar(Value);
AEmpresa.DataTable.Active := True;
if not AEmpresa.IsEmpty then
begin
FEmpresaActual := AEmpresa;
FEmpresaActual.DataTable.Active := True;
end
else
FEmpresaActual := NIL;
end;
procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject);
begin
if Assigned(FLoginInfo) then
FreeANDNil(FLoginInfo);
end;
function TdmUsuarios.GetEmpresas: TIntegerList;
var
i : integer;
begin
Result := TIntegerList.Create;
if not Assigned(FLoginInfo) then
raise Exception.Create('Usuario no validado en el sistema (login)');
for i := 0 to FLoginInfo.Empresas.Count - 1 do
Result.Add(FLoginInfo.Empresas.Items[i]);
end;
function TdmUsuarios.GetEsAdministrador: Boolean;
var
I: Integer;
begin
Result := False;
if not Assigned(FLoginInfo) then
raise Exception.Create('Usuario no validado en el sistema (login)');
for I := 0 to FLoginInfo.Perfiles.Count - 1 do
if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then
begin
Result := True;
Break;
end;
end;
function TdmUsuarios.GetIDEmpresaActual: Integer;
begin
if not Assigned(FEmpresaActual) then
Result := ID_NULO
else
Result := FEmpresaActual.ID;
end;
procedure TdmUsuarios.CambiarPassword;
begin
with TfCambiarPassword.Create(NIL) do
try
if ShowModal = mrOk then
if CambiarPassword(edtPassword.Text) then
Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK);
finally
Free;
end;
end;
function TdmUsuarios.CambiarPassword(const APassword: String): boolean;
begin
{ 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.

1099
Base/Usuarios/uLoginForm.dfm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,101 @@
unit uLoginForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls,
JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement,
JvAppStorage, JvAppRegistryStorage;
type
TfLoginForm = class(TForm)
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
edtPassword: TEdit;
bAceptar: TButton;
bCancelar: TButton;
Label1: TLabel;
edtUser: TEdit;
JvGradient1: TJvGradient;
Button1: TButton;
Timer1: TTimer;
JvAppRegistryStorage1: TJvAppRegistryStorage;
JvFormStorage1: TJvFormStorage;
Image1: TImage;
procedure bAceptarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
FIntentos: Integer;
end;
var
fLoginForm: TfLoginForm;
implementation
uses
uDataModuleUsuarios, uDataModuleConexion, uDataModuleBase;
{$R *.dfm}
{
********************************* TfLoginForm **********************************
}
procedure TfLoginForm.bAceptarClick(Sender: TObject);
var
bOk : Boolean;
begin
ShowHourglassCursor;
try
bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text);
finally
HideHourglassCursor;
end;
if bOk then
ModalResult := mrOK
else begin
Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente'
+ #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK);
Dec(FIntentos);
if (FIntentos <= 0) then
ModalResult := mrCancel;
end;
end;
procedure TfLoginForm.FormCreate(Sender: TObject);
begin
FIntentos := 3;
end;
procedure TfLoginForm.ToolButton4Click(Sender: TObject);
begin
Timer1.Enabled := False;
dmConexion.ConfigurarConexion;
Timer1.Enabled := True;
end;
procedure TfLoginForm.FormShow(Sender: TObject);
begin
Self.Caption := Self.Caption + ' - ' + dmBase.DarVersion;
JvFormStorage1.RestoreFormPlacement;
// Hacer login automática si hay usuario/password y no hay más de una base
// de datos como opción para conectarse.
if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then
Timer1.Enabled := True;
end;
procedure TfLoginForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
bAceptar.Click;
end;
end.

123
Base/Usuarios/uUsuario.dfm Normal file
View File

@ -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

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