CONECTIVIDAD SAP R/3 Un ejemplo de comunicación entre SAP R/3 y Microsoft Word mediante tecnología OLE2 |
||
A continuación se muestra cómo se procedería para abrir un fichero
|
REPORT zword.
TABLES lfa1.
DATA: BEGIN OF i_lfa1 OCCURS 0.
INCLUDE STRUCTURE lfa1.
DATA: END OF i_lfa1.
************************************************************************
* Include necesario para la declaracion de objetos OLE2
************************************************************************
INCLUDE ole2incl.
************************************************************************
* Declaraciones para la llamada a WORD.
DATA zword TYPE ole2_object.
CLEAR zword.
SELECT * FROM lfa1 UP TO 3 ROWS INTO TABLE i_lfa1.
LOOP AT i_lfa1.
AT FIRST.
CREATE OBJECT zword 'WORD.BASIC'.
* Se llamará a este método sólo si se desea que WORD quede visible
CALL METHOD OF zword 'APPSHOW'.
* Se abre el fichero que contiene la plantilla de la carta
CALL METHOD OF zword 'FILEOPEN' EXPORTING #1 = 'C:\DOCS\PRUEBA.DOC'.
* Se selecciona todo el texto del archivo PRUEBA.DOC
CALL METHOD OF zword 'EDITSELECTALL'.
* Se copia el texto seleccionado al portapapeles
CALL METHOD OF zword 'EDITCOPY'.
* Se crea un documento nuevo, al que WORD llama documento1
CALL METHOD OF zword 'FILENEW'.
* Se pega el texto del portapapeles a documento1
CALL METHOD OF zword 'EDITPASTE'.
ENDAT.
* Posicionar al principio del documento
CALL METHOD OF zword 'STARTOFDOCUMENT'.
* Se reemplazan los campos de la carta por los datos de la tabla I_LFA1
CALL METHOD OF zword 'WW2_EDITREPLACE' EXPORTING #1 = '#cod_prov#'
#2 = i_lfa1-lifnr.
CALL METHOD OF zword 'WW2_EDITREPLACE' EXPORTING #1 = '#nom_prov#'
#2 = i_lfa1-name1.
* Se imprime el documento1 que ya contiene la carta
CALL METHOD OF zword 'FILEPRINT' EXPORTING #1 = 'documento1'.
* Posicionar al principio del documento
CALL METHOD OF zword 'STARTOFDOCUMENT'.
* Se selecciona todo
CALL METHOD OF zword 'EDITSELECTALL'.
* Se borra la selección
CALL METHOD OF zword 'EDITCLEAR'.
*Se incorpora el texto original de PRUEBA.DOC
CALL METHOD OF zword 'EDITPASTE'.
AT LAST.
* Se cierra el documento activo, documento1 con opción de salir sin salvar
CALL METHOD OF zword 'DOCCLOSE' EXPORTING #1 = 2.
* Se cierra el documento activo PRUEBA.DOC con opción salir sin salvar
CALL METHOD OF zword 'DOCCLOSE' EXPORTING #1 = 2.
* Se cierra WORD
CALL METHOD OF zword 'APPCLOSE'.
* Se libera el objeto ZWORD
FREE OBJECT zword.
ENDAT.
ENDLOOP.
|