Traspaso de datos desde forms hacia excel
Necesito traspasar datos desde un query en forms 4.5 hacia excel. ¿Alguien puede ayudarme?
Gracias
Gracias
Espero que te sea de utilidad, tendrias que adaptarlo y meterlo en las unidades de programas del form.
Te genera un TXT separado por ; para poder abrir con excel.
PROCEDURE GENERAR_TXT IS
CURSOR cur IS
SELECT registro1,
registro2,
registro3
FROM TMP_ANTES_GESTION TM,
WHERE TM.MARCA = 'S'
AND TM.SESION = :GLOBAL.SESION
AND TM.NUMERO_CONSULTA = :GLOBAL.NRO_CONSULTA
AND TM.NRO_FORMULARIO = :GLOBAL.NRO_FORMULARIO;
ARCHIVO TEXT_IO.FILE_TYPE;
REGISTRO VARCHAR2(1000);
RES NUMBER;
CON NUMBER(10);
INTE NUMBER(15):=0;
BEGIN
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
REGISTRO := NULL;
BEGIN
ARCHIVO := TEXT_IO.FOPEN(nombre_archivo, 'W');
EXCEPTION
WHEN OTHERS THEN
MESSAGE('EL NOMBRE DEL ARCHIVO NO ES CORRECTO');
RAISE FORM_TRIGGER_FAILURE;
END;
-- titulo de las columnas para el excel.
REGISTRO := 'ITEM;T_DOC;NRO_DOC;APELLIDOS;SEXO;NRO_PRESTAMO';
TEXT_IO.PUT_LINE(ARCHIVO, REGISTRO);
CON := 1;
FOR R IN cur LOOP
REGISTRO := TO_CHAR(CON);
REGISTRO := REGISTRO || ';' || R.registro1;
REGISTRO := REGISTRO || ';' || R.registro2;
REGISTRO := REGISTRO || ';' || R.registro3;
CON := CON + 1;
TEXT_IO.PUT_LINE(ARCHIVO, REGISTRO);
END LOOP;
TEXT_IO.FCLOSE(ARCHIVO);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
SET_ALERT_PROPERTY('GENERAL',ALERT_MESSAGE_TEXT,'Proceso Completo, ' || TO_CHAR(CON-1) || ' Movimientos');
RES := SHOW_ALERT('GENERAL');
:SYSTEM.MESSAGE_LEVEL := '10';
COMMIT;
:SYSTEM.MESSAGE_LEVEL := '00';
END;
Saludos Cordiales....
Te genera un TXT separado por ; para poder abrir con excel.
PROCEDURE GENERAR_TXT IS
CURSOR cur IS
SELECT registro1,
registro2,
registro3
FROM TMP_ANTES_GESTION TM,
WHERE TM.MARCA = 'S'
AND TM.SESION = :GLOBAL.SESION
AND TM.NUMERO_CONSULTA = :GLOBAL.NRO_CONSULTA
AND TM.NRO_FORMULARIO = :GLOBAL.NRO_FORMULARIO;
ARCHIVO TEXT_IO.FILE_TYPE;
REGISTRO VARCHAR2(1000);
RES NUMBER;
CON NUMBER(10);
INTE NUMBER(15):=0;
BEGIN
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
REGISTRO := NULL;
BEGIN
ARCHIVO := TEXT_IO.FOPEN(nombre_archivo, 'W');
EXCEPTION
WHEN OTHERS THEN
MESSAGE('EL NOMBRE DEL ARCHIVO NO ES CORRECTO');
RAISE FORM_TRIGGER_FAILURE;
END;
-- titulo de las columnas para el excel.
REGISTRO := 'ITEM;T_DOC;NRO_DOC;APELLIDOS;SEXO;NRO_PRESTAMO';
TEXT_IO.PUT_LINE(ARCHIVO, REGISTRO);
CON := 1;
FOR R IN cur LOOP
REGISTRO := TO_CHAR(CON);
REGISTRO := REGISTRO || ';' || R.registro1;
REGISTRO := REGISTRO || ';' || R.registro2;
REGISTRO := REGISTRO || ';' || R.registro3;
CON := CON + 1;
TEXT_IO.PUT_LINE(ARCHIVO, REGISTRO);
END LOOP;
TEXT_IO.FCLOSE(ARCHIVO);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
SET_ALERT_PROPERTY('GENERAL',ALERT_MESSAGE_TEXT,'Proceso Completo, ' || TO_CHAR(CON-1) || ' Movimientos');
RES := SHOW_ALERT('GENERAL');
:SYSTEM.MESSAGE_LEVEL := '10';
COMMIT;
:SYSTEM.MESSAGE_LEVEL := '00';
END;
Saludos Cordiales....
