Developer - exportar datos de forms a excel

   
Vista:

exportar datos de forms a excel

Publicado por roberto (1 intervención) el 02/11/2007 09:17:59
al exportar de forms a excel, tengo dos dudas:

1.- al hacer el export me abre el excel y yo no quiero q se vea.

2.- si el fichero existe en el directorio me pregunta si quiero sobreescribirlo, lo q pretendo es q lo borre antes de crear si ya existe, no me funnciona WIN_API_UTILITY.DELETE_FILE(filename); me da un ora-06502.

Este es el codigo por si alguien me puede ayudar:

PROCEDURE exportar_excel IS
appid PLS_INTEGER;
convid PLS_INTEGER;
docid PLS_INTEGER;
conv_established BOOLEAN := FALSE;
rowcol varchar2(3000);
x PLS_INTEGER;
filename varchar(150);
ln_boton number;
numBoton NUMBER;

BEGIN

APPID := DDE.APP_BEGIN('C:\Archivos de programa\Microsoft Office\OFFICE11\excel.EXE', DDE.APP_MODE_MAXIMIZED);

WHILE NOT conv_established LOOP
BEGIN
convid:= DDE.INITIATE('excel', 'system');
conv_established := TRUE;
EXCEPTION
WHEN DDE.DMLERR_NO_CONV_ESTABLISHED THEN
conv_established := FALSE;
END;
END LOOP;

filename := 'c:\CuadCiaFacult.xls';

DDE.EXECUTE(convid, '[Save.as("' || filename || '")]', 10000);

docid := DDE.INITIATE('excel', filename);

dde.poke(docid,'F1C1','CONTRATO',dde.cf_text,10000);
dde.poke(docid,'F1C2',' ',dde.cf_text,10000);
dde.poke(docid,'F1C3','TRAMO',dde.cf_text,10000);
dde.poke(docid,'F1C4','FEC.EFECTO',dde.cf_text,10000);
dde.poke(docid,'F1C5','FEC.VENCIMIENTO',dde.cf_text,10000);
dde.poke(docid,'F1C6','COD.GENERACION',dde.cf_text,10000);
dde.poke(docid,'F1C7','FEC.GENERACION',dde.cf_text,10000);
dde.poke(docid,'F1C8','% CESION',dde.cf_text,10000);
dde.poke(docid,'F1C9','IMP.CESION',dde.cf_text,10000);
dde.poke(docid,'F1C10','IMP.COMIS',dde.cf_text,10000);
dde.poke(docid,'F1C11','IMP.CAPITAL',dde.cf_text,10000);
dde.poke(docid,'F1C12','FEC.ANUALAC',dde.cf_text,10000);
dde.poke(docid,'F1C13','TIPO',dde.cf_text,10000);
dde.poke(docid,'F1C14','COBERTURA',dde.cf_text,10000);
dde.poke(docid,'F1C15','FACULTATIVO',dde.cf_text,10000);

go_block('blq_cesion');
go_record(1);
x:= 2;

while :blq_cesion.scontra is not null loop
rowcol := 'F'||to_char(x)||'C1';
dde.poke(docid,rowcol,:blq_cesion.scontra,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C2';
dde.poke(docid,rowcol,:blq_cesion.nvercon,dde.cf_text,1000);

rowcol := 'F'||to_char(x)||'C3';
dde.poke(docid,rowcol,:blq_cesion.ctramo,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C4';
dde.poke(docid,rowcol,:blq_cesion.fefecto,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C5';
dde.poke(docid,rowcol,:blq_cesion.fvencim,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C6';
dde.poke(docid,rowcol,:blq_cesion.cgenera,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C7';
dde.poke(docid,rowcol,:blq_cesion.fgenera,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C8';
dde.poke(docid,rowcol,:blq_cesion.pcesion,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C9';
dde.poke(docid,rowcol,:blq_cesion.icesion_oper,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C10';
dde.poke(docid,rowcol,nvl(:blq_cesion.icomisi_oper,0),dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C11';
dde.poke(docid,rowcol,nvl(:blq_cesion.icapces_oper,0),dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C12';
dde.poke(docid,rowcol,:blq_cesion.fanulac,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C13';
dde.poke(docid,rowcol,:blq_cesion.ccesion,dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C14';
dde.poke(docid,rowcol,nvl(:blq_cesion.scobert,0),dde.cf_text,10000);

rowcol := 'F'||to_char(x)||'C15';
dde.poke(docid,rowcol,nvl(:blq_cesion.sfacult,0),dde.cf_text,10000);

x := x + 1;
next_record;
end loop;

DDE.EXECUTE(convid, '[Save()]', 10000);

DDE.TERMINATE(docid);
DDE.TERMINATE(convid);
DDE.APP_END(appid);

first_record;
numBoton := Fac_Fnc_Msg_Informacion(0,'Información','Fichero CuadCiaFacult.xls generado en C:',NULL);

-- Handle exceptions
EXCEPTION
WHEN DDE.DDE_APP_FAILURE THEN
MESSAGE('No se puede iniciar la aplicación en windows.');
WHEN DDE.DDE_PARAM_ERR THEN
MESSAGE('un valor nulo ha sido pasado al DDE');
WHEN DDE.DMLERR_NO_CONV_ESTABLISHED THEN
MESSAGE('el DDE no puede establecer una conexión');
WHEN DDE.DMLERR_NOTPROCESSED THEN
MESSAGE('la transaccion ha fallado');
WHEN OTHERS THEN
MESSAGE ('error||'-'||no funciono');

--END; /* End of trigger */
END;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder