COBOL Foro

COBOL Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL y COM/OLE (https://www.cobolforo.es/forumdisplay.php?f=32)
-   -   [Información] Exportar a Excel (https://www.cobolforo.es/showthread.php?t=1136)

Roger 4 de mayo de 2020 01:56

Exportar a Excel
 
Necesito al exportar un campo envié a la columna en excel de esta forma
Código:

CODIGO                  PRODUCTO              EN EXCEL      CODIGO            PRODUCTO 
 127                  ACONDICIONADOR                              000127            ACONDICIONADOR

Manualmente lo puedo hacer pero necesito que sea automático por programa intente poniendo campo alfanumérico y no funciona.

Hrmcobol 4 de mayo de 2020 03:32

Hola Roger, disculpa pero no entiendo.

Saludos
H

Roger 4 de mayo de 2020 04:13

2 Archivos Adjunto(s)
en la primera imagen asi lo exporta y el la segunda asi deseo

Josber 4 de mayo de 2020 09:02

Cita:

Cita del post de Roger (Mensaje 5614)
intente poniendo campo alfanumérico y no funciona

prueba de la siguiente manera a ver si te vale

Código COBOL:
  1. 01 EXPORTADO.
  2.    03                                        PIC X VALUE "'".
  3.    03  NUM                                PIC 9(6) USAGE IS DISPLAY.
  4.    .
  5.    .
  6.    .
  7.  PROCEDURE DIVISION.
  8.    .
  9.    .
  10.    .
  11.      MOVE NUMERO_A_EXPORTAR TO NUM.
  12.      INSPECT EXPORTADO
  13.                  REPLACING ALL " " BY "0".
  14.    .
  15.    .
  16.    .
  17.      .... RUTINA_DE_EXPORTAR_A_EXCEL donde envíamos la variable EXPORTADO, no la variable NUM.

Un saludo.-

Roger 4 de mayo de 2020 15:45

@Josber no funciona da el mismo resultado sin los ceros.

Gusaiello 4 de mayo de 2020 15:51

Yo creo que deberías pasarlo como si fuera texto desde una variable
Código COBOL:
  1. PIC X(6)
.

No sirve definir en excel la columna con formato texto, por que igual te quitará los ceros.

O sea que en el ejemplo de @Josber, cambiar
Código COBOL:
  1. PIC 9(6)
por
Código COBOL:
  1. PIC X(6)
.

JCantero 4 de mayo de 2020 15:58

Para poder ayudarte, debes de poner aqui la parte del programa donde montas la linea ( o flla ) para pasarlo a excel.

Asi como la estructura de los campos utilizados.

---------- Post añadido : 15:58 ---------- Post anterior : 15:52 ----------

Como dice @Gusaiello,

si tienes:

Código COBOL:
  1. 01  referencia-n pic 9(6).
  2. 01  referencia-a pic x(6).
  3. *
  4. *
  5. *
  6. move 5 to referencia-n
  7. move referencia-n to referencia-a

en referencia-a tienes 000005

Roger 4 de mayo de 2020 18:31

Amigos para ponerlo en contexto este programa me sirve para imprimir códigos de barras a través de una impresora Zebra GC420T que esta relacionada con un archivo excel generado por powercobol, si en la hoja excel el código se exporta "127" las barras seran diferentes a "000127"
para hacer mas complicada el campo de lectura de barras lee campos alfa numéricos de hasta 16 caracteres por ese motivo no puedo poner un campo de recepción numérica de 6 caracteres que seria la solución .

Código COBOL:
  1. ENVIRONMENT DIVISION.
  2.  INPUT-OUTPUT SECTION.
  3.  FILE-CONTROL.
  4.      SELECT LEXCEL
  5.      ASSIGN TO "d:\VET-SIS\BARRAS.XLS"
  6.      ORGANIZATION IS LINE SEQUENTIAL.
  7.  
  8.  DATA DIVISION.
  9.  FILE SECTION.
  10.  
  11.  FD LEXCEL
  12.      LABEL RECORD IS STANDARD.
  13.  01 REC-LEXCEL PIC X(500).
  14.  WORKING-STORAGE SECTION.
  15.  01 EXCEL OBJECT REFERENCE COM IS GLOBAL.
  16.  01 WORKBOOK OBJECT REFERENCE COM IS GLOBAL.
  17.  01 COM-TRUE PIC 1(1) BIT VALUE B"1" IS GLOBAL.
  18.  01 APPLICATION PIC X(20) VALUE "EXCEL.APPLICATION" IS GLOBAL.
  19.  01 EXCEL_FILE PIC X(35) VALUE "d:\VET-SIS\BARRAS.XLS".
  20.  01 L-1.
  21.     02 PIC X(6) VALUE "<BODY>".
  22.     02 PIC X(15) VALUE "<TR><TH> ".
  23.  01 L-2.
  24.     02 PIC X(7) VALUE "<TABLE>".
  25.  01 L-3.
  26.     02 PIC X(10) VALUE "<TR><TH> ".
  27.     02 NOM-I PIC X(85).
  28.     02 PIC X(4) VALUE "<TD>".
  29.     02 COD-I PIC X(6) VALUE "000000".
  30.     02 PIC X(4) VALUE "<TD>".
  31.     02 PRECIO-I pic   ZZZ,ZZ.99.      
  32.  01 GRUPO.
  33.    02 G1 PIC 999.
  34.    02 G2 PIC X(17).  
  35.  01 COD pic X(6) VALUE "000000".  
  36.  01 RUTA PIC X(256).
  37.  01 REDD GLOBAL EXTERNAL.
  38.    02 RED PIC X(256).
  39.  01 RUTA-ETI PIC X(256) VALUE "C:\Program Files (x86)\Zebra Technologies\ZebraDesigner Pro 2\bin\Design.exe".
  40.  PROCEDURE      DIVISION.
  41.  INICIO.  
  42.        OPEN OUTPUT LEXCEL CLOSE LEXCEL.
  43.        OPEN EXTEND LEXCEL.
  44.        MOVE POW-FALSE TO ENABLED OF CTPUSH3.
  45.  GRAVAEXCEL.
  46.       WRITE REC-LEXCEL FROM L-1.
  47.       WRITE REC-LEXCEL FROM L-2.
  48.  INICIO.
  49.       MOVE SPACES TO RUTA.
  50.       STRING RED DELIMITED BY SPACES
  51.             "Artic.DAT" DELIMITED BY SIZE
  52.             INTO RUTA.
  53.       MOVE RUTA TO WF-ARTIC.
  54.       OPEN INPUT ARTIC.
  55.       MOVE " "  TO DESCRIPCION-AR.
  56.       START ARTIC KEY NOT < DESCRIPCION-AR INVALID KEY
  57.        GO LEE.
  58.  LEE. READ ARTIC NEXT AT END GO FIN.
  59.       MOVE GRUPO-AR TO GRUPO.
  60.       IF G1 = 002 GO LEE.
  61.       IF G1 = 007 GO LEE.
  62.       IF G1 = 008 GO LEE.
  63.       MOVE CODIGO-AR  TO COD.
  64.       INSPECT COD REPLACING ALL " " BY "0".
  65.       move COD to  COD-I.
  66.       MOVE DESCRIPCION-AR TO NOM-I.
  67.       MOVE PRECIO-AR TO PRECIO-I.
  68.       WRITE REC-LEXCEL FROM L-3.
  69.       GO LEE.
  70.  FIN.  
  71.       CLOSE ARTIC.
  72.       CLOSE LEXCEL.
  73.       INVOKE COM "CREATE-OBJECT" USING APPLICATION RETURNING EXCEL.
  74. *      INVOKE EXCEL "SET-VISIBLE" USING COM-TRUE.
  75.       INVOKE EXCEL "GET-WORKBOOKS" RETURNING WORKBOOK.
  76.       INVOKE WORKBOOK "Open" using EXCEL_FILE.
  77.       invoke pow-self "THRUEVENTS".
  78.       INVOKE POW-SELF "executesync" USING RUTA-ETI.
  79.       INVOKE EXCEL "QUIT".
  80.       EXIT PROGRAM.  


(ojo) CODIGO-AR PIC 9(6).

JCantero 4 de mayo de 2020 19:57

El problema que veo es que generas un html y llamas a Excel.

Excel te lo convierte.

Si abres el fichero con un explorador, se veria bien
, Como tú quieres. ( Seguramente cambiando la extensión a .html )

En powercobol no te puedo ayudar, pero sería crear un Excel (no html), marcando todas las columnas como alfanuméricas.

¿ Admite la impresora, en vez de Excel , un CSV o un fichero texto con tabuladores ?

Roger 5 de mayo de 2020 02:47

@JCantero revisando las opciones de base de datos de Zebra encontre que podia ser txt, cvs, excel probe con .txt y funciona de maravillas.


La franja horaria es GMT +1. Ahora son las 03:00.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.