¿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.
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...!