Forms y Macros

¿Alguien me podria descir como llamar desde el forms 6i a una macro?. Por ejemplo: me creo una macro en el words que me sustituya (plantilla) una serie de valores obtenidos de una bd o de un fichero.

1 respuesta

Respuesta
1
Bueno no se si lo que me preguntas es exactamente esto.. pero intentare ayudarte,,,,
Lo que te voy a explicar es como ejecutar una plantilla word desde forms,,,
create un boton y en el trigger when-button-presed copia lo siguiente... claro que algunas lineas debes reemplazarlas por lo que necesites...
Declare
xtabla varchar2(100):=get_block_property(:system.current_block,base_table);
cursor tcol is
select *
from cols
where table_name = xtabla and data_type NOT IN ('LONG','LONG RAW');
xlinea varchar2(2500):='';
titulo varchar2(2500):='';
longitud_linea number(3):=0;
cantidad_campos number(3):=0;
path_doc varchar2(100):='';
archivo_sql TEXT_IO.FILE_TYPE;
archivo_csv varchar2(100);
scrip_sql varchar2(100);
the_username VARCHAR2(40):=Get_Application_Property(USERNAME);
the_password VARCHAR2(40):=Get_Application_Property(PASSWORD);
the_connect VARCHAR2(40):=Get_Application_Property(CONNECT_STRING);
ConvID PLS_INTEGER;
BEGIN
--hint.hidebuttonhelp;
scrip_sql:=WIN_API_UTILITY.Generate_Temp_Filename('','sql',FALSE);
archivo_sql := TEXT_IO.FOPEN(scrip_sql, 'w');
archivo_csv:=:system.current_form||'.txt';
xlinea:='SELECT UNIQUE ';
titulo:='SELECT UNIQUE ';
for reg in tcol loop
xlinea :=xlinea||'rpad('||reg.column_name||','||to_char(reg.data_length)||','||chr(39)||' '||chr(39)||')||'||chr(39)||','||chr(39)||'||';
titulo :=titulo||'rpad('||chr(39)||reg.column_name||chr(39)||','||to_char(reg.data_length)||','||chr(39)||' '||chr(39)||')||'||chr(39)||','||chr(39)||'||';
longitud_linea:=longitud_linea+reg.data_length;
cantidad_campos:=cantidad_campos+1;
end loop;
xlinea:=substr(xlinea,1,NVL(length(xlinea), 0)-7)||',1 ORDEN FROM '||XTABLA||' where ' ||:global.query1;
titulo:=substr(titulo,1,NVL(length(titulo), 0)-7)||',0 ORDEN FROM DUAL';
text_io.put_line(archivo_sql,'SET PAGESIZE 0');
text_io.put_line(archivo_sql,'SET LINESIZE '||to_char(longitud_linea+(2*cantidad_campos)+cantidad_campos-1));
text_io.put_line(archivo_sql,'SET ECHO OFF');
text_io.put_line(archivo_sql,'SET VERIFY OFF');
text_io.put_line(archivo_sql,'SET FEEDBACK OFF');
text_io.put_line(archivo_sql,'SET TERMOUT OFF');
text_io.put_line(archivo_sql,'COL ORDEN NOPRINT');
text_io.put_line(archivo_sql,'SPOOL '||archivo_csv);
text_io.put_line(archivo_sql,TITULO||' UNION '||XLINEA||' ORDER BY ORDEN');
text_io.put_line(archivo_sql,'/');
text_io.put_line(archivo_sql,'SPOOL OFF');
text_io.put_line(archivo_sql,'EXIT');
text_io.fclose(archivo_sql);
HOST('plus33 -s '||the_username||'/'||the_password||'@'||the_connect||' @'||scrip_sql,no_screen);
win_api_shell.WinExec ('C:\Archivos de programa\Microsoft Office\Office\winword '||path_doc||:system.current_form||'.doc',
WIN_API.SW_showmaximized,
FALSE);
WIN_API_UTILITY.delete_file(scrip_sql);
end;
Suerte... analiza el código... TE DOY LA CAÑA DE PESCAR PERO VOS DEBES PESCAR.. SUERTE...!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas