Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
Retroceder   COBOL Foro > IDE-s y compiladores COBOL > Cocina Casera > Cocina PowerCOBOL + COM/OLE
Cocina PowerCOBOL + COM/OLE Código PowerCOBOL en utilización con OLE/COM
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Abrir documento Word Roger PowerCOBOL (ActiveX, v4 - v11) 4 19 de septiembre de 2016 23:21
[Información] Insertar imagen en documento Word Xavier PowerCOBOL (ActiveX, v4 - v11) 7 2 de febrero de 2016 22:15
Respuesta
 
Herramientas

  #1
Antiguo 11 de marzo de 2015, 23:54
IDENTIFICATION DIVISION
Rapinto
Gran amigo del Foro y Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
Forero desde (Registrado)febrero 2015
Portugal
UbicaciónPorto
Última Actividad29.01.2018 19:23
PROCEDURE DIVISION
PostsPosts: 246
Ha dicho GraciasEnviado: 19
Ha recibido agradecimientosRecibido: 215
Mejores respuestasSoluiones: 47
Medallas recibidas: 2Medallas: Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ReputaciónReputación: 13
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Teclado Llamada a SpellCheck de Word (correc. ortográfico)

Exemplo de como chamar o SpellCheck do Word para verificar texto numa CMtext1 de Cobol.
É necessário ter o MS Office instalado com correção actuvada.

Código COBOL:
  1.  @OPTIONS NOALPHA                                                                                            
  2.  IDENTIFICATION DIVISION.                                                                                    
  3.  PROGRAM-ID.   CHECKSPELLING.                                                                                
  4.  ENVIRONMENT DIVISION.                                                                                      
  5.  CONFIGURATION SECTION.                                                                                      
  6.  REPOSITORY.                                                                                                
  7.         CLASS OLE     AS "*OLE"                                                                              
  8.         CLASS OLE-EX AS "*OLE-EXCEPTION".                                                                  
  9.  DATA DIVISION.                                                                                              
  10.  WORKING-STORAGE SECTION.                                                                                    
  11.  01  WORD         OBJECT REFERENCE  OLE.                                                                    
  12.  01  DOCUMENT     OBJECT REFERENCE  OLE.                                                                    
  13.  01  ACTIVEDOCUMENT OBJECT REFERENCE  OLE.                                                                  
  14.  01  LINHA        OBJECT REFERENCE  OLE.                                                                    
  15.  01  SELECTION    OBJECT REFERENCE  OLE.                                                                    
  16.  01  APPLICATION                    PIC X(20) VALUE "Word.Application".                                      
  17.  01  OLE-TRUE                       PIC 1(1)  BIT VALUE B"1".                                                
  18.  01  FILLER                         PIC 1(7)  BIT.                                                          
  19.  01  OLE-FALSE                      PIC 1(1)  BIT VALUE B"0".                                                
  20.  01  FILLER                         PIC 1(7)  BIT.                                                          
  21.  01  CRLF                           PIC X(002) VALUE X"0D0A".                                                
  22.  01  VAL                            PIC X(256).                                                              
  23.  01  S-INDEX                        PIC S9(4) COMP-5 VALUE 0.                                                
  24.  01  HWND                              BINARY-LONG.                                                          
  25.  01  WINDOWNAME                     PIC X(128) VALUE SPACE.                                                  
  26.  01  WINDOWCLASSE                   BINARY-LONG VALUE ZERO.                                                  
  27.  LINKAGE SECTION.                                                                                            
  28.  01  TEXTO                          PIC X(256).                                                              
  29.  01  CARACTERES                     PIC 9(008).                                                              
  30.  PROCEDURE DIVISION USING TEXTO CARACTERES.                                                                  
  31.  MAIN SECTION.                                                                                              
  32.  MAIN-00.                                                                                                    
  33.      MOVE 1 TO CARACTERES.                                                                                  
  34.      IF TEXTO = SPACE GO TO MAIN-99.                                                                        
  35.      INVOKE OLE "CREATE-OBJECT" USING APPLICATION RETURNING WORD.                                            
  36.      INVOKE WORD  "SET-VISIBLE"  USING OLE-FALSE.                                                            
  37.      INVOKE WORD "GET-DOCUMENTS"       RETURNING DOCUMENT.                                                  
  38.      INVOKE DOCUMENT "ADD"             RETURNING ACTIVEDOCUMENT.                                            
  39.      INVOKE WORD "GET-SELECTION" RETURNING LINHA.                                                            
  40. *                                                                                                            
  41.      MOVE TEXTO TO VAL.                                                                                      
  42.      INVOKE LINHA "TYPETEXT" USING VAL.                                                                      
  43. *                                                                                                            
  44.      INVOKE LINHA "WholeStory" RETURNING SELECTION.                                                          
  45.      INVOKE WORD  "SET-VISIBLE"  USING OLE-TRUE.                                                            
  46. *    INVOKE LINHA     "WholeStory" RETURNING SELECTION.                                                      
  47. *    INVOKE LINHA     "COPY" RETURNING VAL.                                                                  
  48.                                                                                                            
  49. *    MOVE "Ortografia: Português (Portugal)"   TO WINDOWNAME.                                                
  50.      MOVE "Documento1 - Word"                  TO WINDOWNAME.                                                
  51.      MOVE X"00"        TO WINDOWNAME(18:1).                                                                  
  52. *                                                                                                            
  53.      CALL "FindWindowA" WITH STDCALL USING                                                                  
  54.                            BY VALUE WINDOWCLASSE                                                            
  55.                            BY REFERENCE WINDOWNAME                                                          
  56.                         RETURNING HWND.                                                                      
  57.      IF HWND > 0 THEN                                                                                        
  58.           CALL "SetForegroundWindow" WITH STDCALL USING                                                      
  59.                            BY VALUE HWND.                                                                    
  60. *                                                                                                            
  61.      INVOKE ACTIVEDOCUMENT "CheckSpelling" RETURNING VAL.                                                    
  62. *                                                                                                            
  63.      INVOKE LINHA "GET-TEXT" RETURNING VAL.                                                                  
  64.      INSPECT VAL REPLACING ALL  X"0D" BY SPACE.                                                              
  65.      INSPECT VAL REPLACING ALL  X"0A" BY SPACE.                                                              
  66.      MOVE 256 TO CARACTERES.                                                                                
  67.  MAIN-50.                                                                                                    
  68.      IF VAL(CARACTERES:1) = SPACE GO TO MAIN-60.                                                            
  69.      GO TO MAIN-80.                                                                                          
  70.  MAIN-60.                                                                                                    
  71.      IF CARACTERES NOT = 1 SUBTRACT 1 FROM CARACTERES GO TO MAIN-50.                                        
  72.  MAIN-80.                                                                                                    
  73.      ADD 1 TO CARACTERES.                                                                                    
  74.      MOVE    VAL TO TEXTO.                                                                                  
  75.        INVOKE ACTIVEDOCUMENT "CLOSE" USING S-INDEX.                                                            
  76.      INVOKE WORD  "QUIT".                                                                                    
  77.      SET LINHA    TO NULL.                                                                                  
  78.      SET DOCUMENT TO NULL.                                                                                  
  79.      SET ACTIVEDOCUMENT TO NULL.                                                                            
  80.        SET WORD     TO NULL.                                                                                  
  81.  MAIN-99.                                                                                                    
  82.  END PROGRAM CHECKSPELLING.                                                                                  

PS: Deve ser alterado o nome da form do Word para o caso particular (Documento1 - Word).
Se não abre mas fica por tras da nossa form.

Espero que seja útil a alguém.

Saludos Rui Pinto
Rapinto no ha iniciado sesión   Responder Con Cita
Han dicho Gracias: 3
Angel (16 de diciembre de 2017), Josber (12 de marzo de 2015), Kuk (12 de marzo de 2015)
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado



La franja horaria es GMT +1. Ahora son las 05:31.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.