Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZINCLUDEWORD PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Utilidades varias
Martes, 08 de Marzo de 2005 04:06
Include para tratamiento de ficheros word.
************************************************************************
*
*  INCLUDE ZINCLUDEWORD
*
*  DESCRIPCIÓN: Include para tratamiento de ficheros word.
*
*  Para usar esta libreria sera necesario tener definido en el programa
*  un objeto del tipo ole2
*  P.Ej:
*      DATA: w_doc TYPE ole2_object.
*
*    FORMS:
*-----------------------------------------------------------------------
*       Form  ABRIR_DOCUMENTO_WORD
*      -->P_WORD    Objeto word
*      -->P_FICHERO Fichero a abrir
*      -->P_VER     Mostrar o no la aplicación
*-----------------------------------------------------------------------
*       Form  Borrar_una_palabra
*      -->P_WORD  Objeto word
*      -->P_CUANTAS  Cuantas palabras borrar
*-----------------------------------------------------------------------
*       Form  buscar_en_word
*      -->P_WORD  Objeto word
*      -->P_QUE   que buscar
*-----------------------------------------------------------------------
*       Form  buscar_reemplazar_en_word
*      -->P_WORD   Objeto word
*      -->P_QUE    Reemplazar que
*      -->P_PORQUE Reemplazar por
*      -->P_CUANTO Cuantas veces
*-----------------------------------------------------------------------
*       Form  cerrar_documento_word
*      -->P_WORD    Objeto word
*      -->P_GUARDAR Indica si guardar un documento abierto
*-----------------------------------------------------------------------
*       Form  copiar_en_word
*      -->P_WORD  Objeto word
*-----------------------------------------------------------------------
*       Form  crear_objeto_word
*      -->P_WORD  Objeto word
*-----------------------------------------------------------------------
*       Form  eliminar_objeto_word
*      -->P_WORD  Objeto word
*-----------------------------------------------------------------------
*       Form  guardar_documento_word
*      -->P_WORD  Objeto word
*      -->P_FILE  Ruta en la que grabar
*-----------------------------------------------------------------------
*       Form  insertar_en_word
*      -->P_WORD  Objeto word
*      -->P_QUE   Que insertar
*-----------------------------------------------------------------------
*       Form  insertar_intro_en_word
*      -->P_WORD  Objeto word
*-----------------------------------------------------------------------
*       Form  pegar_en_word
*      -->P_WORD  Objeto word
*-----------------------------------------------------------------------
*       Form  seleccionar_todo
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
*  MÓDULO AL QUE PERTENECE:
*
*  AUTOR: Ignacio Arnaiz Piorno                   FECHA: 19-05-2004
*
* ----------------------------------------------------------------------
* CONTROL DE MODIFICACIONES
*   AUTOR         EMPRESA     FECHA       MOTIVO
* ..........      .......   DD/MM/AA  ................................
* ..........      .......   DD/MM/AA  ................................
*-----------------------------------------------------------------------
***********************************************************************
*INCLUDE ZINCLUDEWORD.

************************************************************************
*                       INCLUDES
************************************************************************
INCLUDE ole2incl.
************************************************************************
* Definición de tablas del sistema
************************************************************************

************************************************************************
* Definición de constantes
************************************************************************
CONSTANTS: true(2) TYPE n VALUE '-1', "Valor verdadero
          false(2) TYPE n VALUE '0'. "Valor falso
************************************************************************
* Definición de variables
************************************************************************

************************************************************************
* Definición de estructuras
************************************************************************

************************************************************************
* Definición de tablas internas
************************************************************************

************************************************************************
* Definición de parámetros
************************************************************************

************************************************************************
* Definición de rango de selección
************************************************************************

************************************************************************
* Definición de la pantalla de selección
************************************************************************

************************************************************************
* Definición de FIELD-SYMBOLS
************************************************************************

************************************************************************
*
*                  LÓGICA DEL PROGRAMA
*
************************************************************************

************************************************************************
* Definición de inicializaciones
************************************************************************
*INITIALIZATION.

************************************************************************
* Proceso principal
************************************************************************
*START-OF-SELECTION.

************************************************************************
* Acciones de final de proceso
************************************************************************
*END-OF-SELECTION.

************************************************************************
* Definición de cabeceras de listado
************************************************************************
*TOP-OF-PAGE.

************************************************************************
* Definición de líneas de pie del listado
************************************************************************
*END-OF-PAGE.

************************************************************************
* Definición de acciones a tomar en caso de selección con doble click
************************************************************************
*AT LINE-SELECTION.

************************************************************************
* Definición y control de acciones a tomar según entrada del usuario
************************************************************************
*AT USER-COMMAND.

************************************************************************
* Definición y control de acciones a tomar según la tecla de función
************************************************************************
*AT PFM.

************************************************************************
* Definición de las validaciones a realizar de los parámetros de entrada
************************************************************************
*AT SELECTION-SCREEN.

************************************************************************
*
*                  FORMS ADICIONALES
*
************************************************************************
*&---------------------------------------------------------------------*
*&      Form  crear_objeto_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM crear_objeto_word USING    p_word.
* Se crea el documento
 CREATE OBJECT p_word 'WORD.BASIC'.
 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al crear el objeto'.
 ENDIF.

ENDFORM.                    " crear_objeto_word

*&---------------------------------------------------------------------*
*&      Form  ABRIR_DOCUMENTO_WORD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD    Objeto word
*      -->P_FICHERO Fichero a abrir
*      -->P_VER     Mostrar o no la aplicación
*----------------------------------------------------------------------*
FORM abrir_documento_word USING    p_word
                                  p_fichero
                                  p_ver.

 DATA l_fichero(256) TYPE c.

* Solicitamos que se visualice el word. (o no depende de lo que
* prefiramos)
 IF NOT p_ver IS INITIAL.
   CALL METHOD OF p_word 'APPSHOW' EXPORTING #1 = 'Microsoft Word'.
 ENDIF.

* Abrimos el fichero.
 CONCATENATE '"' p_fichero '"' INTO l_fichero.
 CALL METHOD OF p_word 'FILENEW' EXPORTING #1 = p_fichero.
 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al abrir el fichero'.
 ENDIF.

ENDFORM.                    " ABRIR_DOCUMENTO_WORD

*&---------------------------------------------------------------------*
*&      Form  buscar_reemplazar_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD   Objeto word
*      -->P_QUE    Reemplazar que
*      -->P_PORQUE Reemplazar por
*      -->P_CUANTO Cuantas veces
*----------------------------------------------------------------------*
FORM buscar_reemplazar_en_word USING    p_word
                                       p_que
                                       p_porque
                                       p_cuanto.

 DO p_cuanto TIMES.

   CALL METHOD OF p_word 'WW2_EDITREPLACE'
        EXPORTING  #1 = p_que
                   #2 = p_porque.

   IF NOT sy-subrc IS INITIAL.
    MESSAGE e666(01) WITH 'Se produjo un error al buscar/reemplazar ('
                            p_que
                            p_porque
                            ') en el fichero'.
   ENDIF.

 ENDDO.

ENDFORM.                    " buscar_reemplazar_en_word

*&---------------------------------------------------------------------*
*&      Form  seleccionar_todo
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM seleccionar_todo USING    p_word.

 CALL METHOD OF p_word 'EDITSELECTALL'.
 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al seleccionar todo.'.
 ENDIF.

ENDFORM.                    " seleccionar_todo

*&---------------------------------------------------------------------*
*&      Form  buscar_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*      -->P_QUE   que buscar
*----------------------------------------------------------------------*
FORM buscar_en_word USING    p_word
                            p_que.

* Se busca la cadena en el documento
 CALL METHOD OF p_word 'EDITFIND'
       EXPORTING #1 = p_que.

 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al buscar ('
                         p_que
                         ') en el fichero'.
 ENDIF.

ENDFORM.                    " buscar_en_word

*&---------------------------------------------------------------------*
*&      Form  pegar_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM pegar_en_word USING    p_word.

* Se pega el contenido del clipboard en el documento.
 CALL METHOD OF p_word 'EDITPASTE'.

 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al pegar en '
                         'el documento.'.
 ENDIF.

ENDFORM.                    " pegar_en_word

*&---------------------------------------------------------------------*
*&      Form  copiar_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM copiar_en_word USING    p_word.

* Se copia el contenido de la seleccion al clipboard
 CALL METHOD OF p_word 'EDITCOPY'.

 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al copiar del '
                         'documento.'.
 ENDIF.

ENDFORM.                    " copiar_en_word

*&---------------------------------------------------------------------*
*&      Form  eliminar_objeto_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM eliminar_objeto_word USING    p_word.

 FREE OBJECT p_word.

ENDFORM.                    " crear_objeto_word

*&---------------------------------------------------------------------*
*&      Form  cerrar_documento_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD    Objeto word
*      -->P_GUARDAR Indica si guardar un documento abierto
*----------------------------------------------------------------------*
FORM cerrar_documento_word USING   p_word
                                  p_guardar.

 CALL METHOD OF p_word 'FILECLOSE' EXPORTING #1 = p_guardar.
 CALL METHOD OF p_word 'APPCLOSE'.
 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error al cerrar '
                         'el documento.'.
 ENDIF.

ENDFORM.                      "cerrar_documento_word
*&---------------------------------------------------------------------*
*&      Form  Borrar_una_palabra
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*      -->P_CUANTAS  Cuantas palabras borrar
*----------------------------------------------------------------------*
FORM borrar_una_palabra USING    p_word
                                p_cuantas.

 DO p_cuantas TIMES.

   CALL METHOD OF p_word 'DELETEBACKWORD'.

 ENDDO.

ENDFORM.                    " Borrar_una_palabra

*&---------------------------------------------------------------------*
*&      Form  guardar_documento_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*      -->P_FILE  Ruta en la que grabar
*----------------------------------------------------------------------*
FORM guardar_documento_word USING    p_word
                                    p_file.

 IF p_file IS INITIAL.
   CALL METHOD OF p_word 'FILESAVE'.
   IF NOT sy-subrc IS INITIAL.
     MESSAGE e666(01) WITH 'Se produjo un error al guardar'
                           'el documento.'.
   ENDIF.
 ELSE.
   CALL METHOD OF p_word 'FILESAVEAS' EXPORTING #1 = p_file.
   IF NOT sy-subrc IS INITIAL.
     MESSAGE e666(01) WITH 'Se produjo un error al guardar '
                           'el documento como .'
                           p_file
                           '.'.
   ENDIF.
 ENDIF.

ENDFORM.                    " guardar_documento_word

*&---------------------------------------------------------------------*
*&      Form  insertar_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*      -->P_QUE   Que insertar
*----------------------------------------------------------------------*
FORM insertar_en_word USING    p_word
                              p_que.

 CALL METHOD OF p_word 'INSERT' EXPORTING #1 = p_que.
 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error insertando en '
                         'el documento.'.
 ENDIF.

ENDFORM.                    " insertar_en_word

*&---------------------------------------------------------------------*
*&      Form  insertar_intro_en_word
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WORD  Objeto word
*----------------------------------------------------------------------*
FORM insertar_intro_en_word USING    p_word.

 CALL METHOD OF p_word 'INSERTBREAK' EXPORTING #1 = 6.

 IF NOT sy-subrc IS INITIAL.
   MESSAGE e666(01) WITH 'Se produjo un error insertar INTRO en '
                         'el documento.'.
 ENDIF.

ENDFORM.                    " insertar_intro_en_word
 



Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search