Ver Mensaje Individual
  #7
Antiguo 29 de enero de 2016, 17:47
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Xavier,

Tenho um exemplo dum programa que fiz, mas passa a imagem para Excel.
Penso que no Word será parecido, por isso aqui vai o exemplo:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  EXCEL              OBJECT REFERENCE OLE.
  3.  01  WORKBOOK           OBJECT REFERENCE OLE.
  4.  01  SHEETS             OBJECT REFERENCE OLE.
  5.  01  WORKSHEET          OBJECT REFERENCE OLE.
  6.  01  CELL               OBJECT REFERENCE OLE.
  7.  01  SHAPES             OBJECT REFERENCE OLE.
  8.  01  OBJRANGE           OBJECT REFERENCE OLE.
  9.  01  FITRANGE           OBJECT REFERENCE OLE.
  10.  01  APPLICATION                    PIC X(20) VALUE "EXCEL.APPLICATION".
  11.  01  OLE-TRUE                       PIC 1(1)  BIT VALUE B"1".
  12.  01  FILLER                         PIC 1(7)  BIT.        
  13.  01  OLE-FALSE                      PIC 1(1)  BIT VALUE B"0".
  14.  01  FILLER                         PIC 1(7)  BIT.        
  15.  01  ARRAY-ROW                      PIC S9(9) COMP-5.
  16.  01  ARRAY-COL                      PIC S9(9) COMP-5.
  17.  01  VAL                            PIC X(256).
  18.  01  S-INDEX                        PIC S9(4) COMP-5 VALUE 1.
  19.  01  INIRANGE                PIC X(13)          VALUE "A00001:A00001".
  20.  01  ROWVAL                  PIC 9(005).
  21.  01  ZROWVAL                 PIC ZZZZZ.
  22.  01  XROWVAL   REDEFINES ZROWVAL   PIC X(005).
  23.  01  CONTACHR                PIC 9(005).
  24.  01  LOCCHR                  PIC 9(005).
  25.  01  ROW-HEIGHT               PIC 9(005).
  26.  01  ROW-WIDTH                PIC 9(005).
  27. *
  28.  01   FOTONUM                PIC X(256).
  29.  01   FOTOEXTENSION          PIC X(032).
  30.  01   FOTONAME               PIC X(256).
  31.  01   PATH-IMAGE             PIC X(256).
  32.  01   IMAGESIZE              PIC 9(018)    VALUE ZERO.
  33. *
  34.  01   WSLEFT                 PIC S9(005)  COMP-5.
  35.  01   WSTOP                  PIC S9(005)  COMP-5.
  36.  01   WSWIDTH                PIC S9(005)  COMP-5.
  37.  01   WSHEIGHT               PIC S9(005)  COMP-5.
  38. ****  LINKTO E SAVEWITH 0 = FALSE -1 = TRUE (NÃO PODEM SER AMBOS 0
  39.  01   LINKTO                 PIC S9(005)  COMP-5    VALUE 0.
  40.  01   SAVEWITH               PIC S9(005)  COMP-5    VALUE -1.

Na Procedure Division:

Código COBOL:
  1.        INVOKE OLE "CREATE-OBJECT" USING APPLICATION RETURNING EXCEL.
  2.        INVOKE EXCEL "GET-WORKBOOKS" RETURNING WORKBOOK.
  3.        INVOKE WORKBOOK "ADD"                 RETURNING WORKBOOK.
  4.        INVOKE WORKBOOK "GET-WORKSHEETS" RETURNING SHEETS.
  5.        INVOKE SHEETS "GET-ITEM" USING S-INDEX   RETURNING WORKSHEET.
  6. *
  7.        INVOKE EXCEL "SET-VISIBLE" USING OLE-TRUE.
  8. *
  9. *      INVOKE WORKSHEET "GET-SHAPES"  RETURNING SHAPES.
  10. *

Em INIRANGE deve ser colocada a Linha/Coluna

Código COBOL:
  1. *
  2.              IF INIRANGE NOT = SPACE
  3.                   INVOKE WORKSHEET "GET-RANGE" USING INIRANGE RETURNING OBJRANGE
  4.                   INVOKE OBJRANGE "ACTIVATE"
  5.                   MOVE 64  TO ROW-HEIGHT
  6.                   MOVE 20 TO ROW-WIDTH
  7.                   INVOKE OBJRANGE "SET-RowHeight"    USING ROW-HEIGHT
  8.                   INVOKE OBJRANGE "SET-ColumnWidth"  USING ROW-WIDTH
  9.              END-IF
  10. *
  11.              IF  VAL NOT = SPACE
  12.                   INVOKE WORKSHEET "GET-SHAPES" RETURNING SHAPES
  13.  
  14.                   INVOKE SHAPES "ADDPICTURE" USING VAL LINKTO SAVEWITH WSLEFT WSTOP WSWIDTH WSHEIGHT
  15.                   ADD 64 TO WSTOP
  16.              END-IF

Talvez este exemplo ajude,
Un Saludo,
Rui
Rapinto is offline   Responder Con Cita