Resultados 1 al 9 de 9

Tema: Leer archivos Cobol desde VB6

  1. #1
      Junior
    d

    Registrado
    febrero de 2017
    Ubicación
    Caba Argentina
    Mensajes
    66
    Última visita
    11.03.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    8

    Base de datos Leer archivos Cobol desde VB6

    Hola a todos, sera posible leer un archivo cobol desde una aplicación vb6 el archivo cobol es asi
    esta en power v3 en una aplicacion que hice hace un tiempo.

    COBOL Código:
    1. 000001 FD ARTICULO GLOBAL EXTERNAL.
    2. 000002 01 REG-ARTICULO.
    3. 000003    02 ART-CLAVE-PRIN.
    4. 000004       05 ARTCODIGO         PIC 9(5).
    5. 000005    02 ART-CLAVE-BARRA.
    6. 000006       05 ARTBARRA          PIC 9(13).
    7. 000007    02 ART-CLAVE-NOMBRE.    
    8. 000008       05 ARTNOMBRE         PIC X(35).
    9. 000009    02 ARTTPV               PIC X(20).
    10. 000010    02 ARTIVA               PIC 9(4).
    11. 000011    02 ART-CLAVE-PROVEEDOR.
    12. 000012       05 ARTPROVEEDOR      PIC 9(5).
    13. 000013    02 ART-CLAVE-RUBRO.
    14. 000014       05 ARTRUBRO          PIC 9(3).
    15. 000015    02 ARTENVASE            PIC 9(5).
    16. 000016    02 ARTCOSTO             PIC 9(7)V99.
    17. 000017    02 ARTMINORISTA         PIC 9(7)V99.
    18. 000018    02 ARTMAYORISTA         PIC 9(7)V99.
    19. 000019    02 ARTDESCUENTO         PIC 9(2).
    20. 000020    02 ARTCANTIDAD          PIC 9(2).
    21. 000021    02 ARTMINIMO            PIC 9(4).
    22. 000022    02 ARTGANANCIA1         PIC 9(2).
    23. 000023    02 ARTGANANCIA2         PIC 9(2).
    24. 000024    02 ARTSTOCK OCCURS 4    PIC S9(6)V99.
    25. 000025    02 ARTVENDIDO OCCURS 31 PIC S9(7)V99.
    26. 000026    02 ARTCANTIDADVEND      PIC 9(6)V99.
    27. 000027    02 ARTCOMPRA            PIC 9(6).
    28. 000028    02 ARTFOTOGRAFIA        PIC X(128).

    Solo quiero buscar por ARTBARRA y que me devuelva el ARTMINORISTA no lo puedo hacer en cobol porque usa el puerto serie y en power nunca pude usar un ocx que funcione como quiero, alguna pista de como lo puedo hacer .
    Muchas gracias Saludos

    ---------- Post añadido : 00:51 ---------- Post anterior : 00:49 ----------

    COBOL Código:
    1. 000001     SELECT ARTICULO   ASSIGN TO "E:\FSC\ARCHIVOS\ARARTIC.DAT"
    2. 000002           ORGANIZATION INDEXED
    3. 000003           ACCESS DYNAMIC
    4. 000004           RECORD KEY IS ART-CLAVE-PRIN
    5. 000005           ALTERNATE RECORD IS ART-CLAVE-BARRA
    6. 000006           ALTERNATE RECORD IS ART-CLAVE-NOMBRE    WITH DUPLICATES
    7. 000007           ALTERNATE RECORD IS ART-CLAVE-PROVEEDOR WITH DUPLICATES
    8. 000008           ALTERNATE RECORD IS ART-CLAVE-RUBRO     WITH DUPLICATES
    9. 000009           FILE STATUS ART-STATUS.

    0 Not allowed!

  2. #2
      Senior
    Avatar de Joseg

    Registrado
    abril de 2015
    Mensajes
    331
    Última visita
    02.04.2024

    Agradecimientos
     
    Recibidos
    147
    Enviados
    92

    Citaciones y menciones
     
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    4 Post(s)
    Poder de Reputación
    21
    Activista del Foro / Point Value: 0 Innovación / Point Value: 0

    Predeterminado

    Cita Iniciado por drvedia1981 Ver Mensaje
    Hola a todos, sera posible leer un archivo cobol desde una aplicación vb6 el archivo cobol es asi
    esta en power v3 en una aplicacion que hice hace un tiempo.

    COBOL Código:
    1. 000001 FD ARTICULO GLOBAL EXTERNAL.
    2. 000002 01 REG-ARTICULO.
    3. 000003    02 ART-CLAVE-PRIN.
    4. 000004       05 ARTCODIGO         PIC 9(5).
    5. 000005    02 ART-CLAVE-BARRA.
    6. 000006       05 ARTBARRA          PIC 9(13).
    7. 000007    02 ART-CLAVE-NOMBRE.    
    8. 000008       05 ARTNOMBRE         PIC X(35).
    9. 000009    02 ARTTPV               PIC X(20).
    10. 000010    02 ARTIVA               PIC 9(4).
    11. 000011    02 ART-CLAVE-PROVEEDOR.
    12. 000012       05 ARTPROVEEDOR      PIC 9(5).
    13. 000013    02 ART-CLAVE-RUBRO.
    14. 000014       05 ARTRUBRO          PIC 9(3).
    15. 000015    02 ARTENVASE            PIC 9(5).
    16. 000016    02 ARTCOSTO             PIC 9(7)V99.
    17. 000017    02 ARTMINORISTA         PIC 9(7)V99.
    18. 000018    02 ARTMAYORISTA         PIC 9(7)V99.
    19. 000019    02 ARTDESCUENTO         PIC 9(2).
    20. 000020    02 ARTCANTIDAD          PIC 9(2).
    21. 000021    02 ARTMINIMO            PIC 9(4).
    22. 000022    02 ARTGANANCIA1         PIC 9(2).
    23. 000023    02 ARTGANANCIA2         PIC 9(2).
    24. 000024    02 ARTSTOCK OCCURS 4    PIC S9(6)V99.
    25. 000025    02 ARTVENDIDO OCCURS 31 PIC S9(7)V99.
    26. 000026    02 ARTCANTIDADVEND      PIC 9(6)V99.
    27. 000027    02 ARTCOMPRA            PIC 9(6).
    28. 000028    02 ARTFOTOGRAFIA        PIC X(128).

    Solo quiero buscar por ARTBARRA y que me devuelva el ARTMINORISTA no lo puedo hacer en cobol porque usa el puerto serie y en power nunca pude usar un ocx que funcione como quiero, alguna pista de como lo puedo hacer .
    Muchas gracias Saludos

    ---------- Post añadido : 00:51 ---------- Post anterior : 00:49 ----------

    COBOL Código:
    1. 000001     SELECT ARTICULO   ASSIGN TO "E:\FSC\ARCHIVOS\ARARTIC.DAT"
    2. 000002           ORGANIZATION INDEXED
    3. 000003           ACCESS DYNAMIC
    4. 000004           RECORD KEY IS ART-CLAVE-PRIN
    5. 000005           ALTERNATE RECORD IS ART-CLAVE-BARRA
    6. 000006           ALTERNATE RECORD IS ART-CLAVE-NOMBRE    WITH DUPLICATES
    7. 000007           ALTERNATE RECORD IS ART-CLAVE-PROVEEDOR WITH DUPLICATES
    8. 000008           ALTERNATE RECORD IS ART-CLAVE-RUBRO     WITH DUPLICATES
    9. 000009           FILE STATUS ART-STATUS.

    Não dá para criar um ficheiro LINE-SEQUENTIAL temporário só com a informação a processar?

    0 Not allowed!

  3. #3
      Gran amigo y Guru de COBOL
    Avatar de Rapinto

    Registrado
    febrero de 2015
    Ubicación
    Porto
    Mensajes
    246
    Última visita
    29.01.2018

    Agradecimientos
     
    Recibidos
    227
    Enviados
    19

    Citaciones y menciones
     
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    19
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0 Guru de los Gurus / Point Value: 0

    Predeterminado

    Para testar, precisava dum exemplo do ficheiro com alguns dados.
    Posso tentar fazer em PowerCobol 9 uma DLL para utilizar em VB6.
    Sem o ficheiro, não consigo fazer nada.
    Un saludo,
    Rui Pinto

    0 Not allowed!

  4. #4
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Ayer a las 18:48

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @drvedia1981, puedes crear un programa "normal", es decir en modo Batch sin GUI, y compilarlo vía línea de comandos con el compilador que viene con el PowerCOBOL V3L10 y linkearlo a una DLL.

    Tendrás que mirar las opciones, pero no es nada complicado.

    Mira crea un programa cualquiera con un DISPLAY y complílalo con este script CMD/BAT:

    CODE Código:
    1. C:\ruta_powercobol_3\cobol32.exe -WC"MAIN,MESSAGE,FLAG(I),SOURCE" C:\ruta_de_tu_programa\PROGRAMA.COB > SYSOUT.txt
    2. C:\ruta_powercobol_3\link.exe C:\ruta_de_tu_programa\PROGRAMA.OBJ C:\ruta_powercobol_3\*.lib >> SYSOUT.txt
    3. pause

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  5. #5
      Junior
    d

    Registrado
    febrero de 2017
    Ubicación
    Caba Argentina
    Mensajes
    66
    Última visita
    11.03.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    8

    Predeterminado

    Hola Kuk gracias por la ayuda , no entiendo como seria, yo creo un programa sin GUI y lo compilo con el script y eso que me genera una .dll ? después esa dll la uso en vb ? como le pasaría parámetros ?
    Saludos

    ---------- Post añadido : 20:18 ---------- Post anterior : 20:11 ----------

    Hola Rapinto te dejo el link del archivo cobol
    Saludos gracias
    MEGA

    ---------- Post añadido : 20:25 ---------- Post anterior : 20:18 ----------

    Link definicion del archivo
    MEGA

    0 Not allowed!

  6. #6
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Ayer a las 18:48

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @drvedia1981, eso es. Los parámetros los defines en LINKAGE de tu programa COBOL. Para importar una DLL en VB hay un montón de ejemplos en Google, sería como una DLL cualquiera.

    Para la opción de hacer LINK en una DLL es la opción /DLL

    Para la lista completa del LINK mira aquí: Linker Options

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  7. #7
      Junior
    d

    Registrado
    febrero de 2017
    Ubicación
    Caba Argentina
    Mensajes
    66
    Última visita
    11.03.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    8

    Predeterminado

    Hola Kuk

    Arme esto y con el script que me dijiste me genero un .exe para generar la dll como seria, esta bien el codigo como lo ves Gracias Saludos

    COBOL Código:
    1. 000010 IDENTIFICATION DIVISION.
    2. 000020 PROGRAM-ID.   DLL.
    3. 000030 ENVIRONMENT DIVISION.
    4. 000031 CONFIGURATION SECTION.
    5. 000042
    6. 000043 INPUT-OUTPUT  SECTION.
    7. 000044 FILE-CONTROL.
    8. 000055     SELECT ARTICULO   ASSIGN TO "C:\FSC\ARCHIVOS\ARARTIC.DAT"
    9. 000056           ORGANIZATION INDEXED
    10. 000057           ACCESS DYNAMIC
    11. 000058           RECORD KEY IS ART-CLAVE-PRIN
    12. 000059           ALTERNATE RECORD IS ART-CLAVE-BARRA
    13. 000060           ALTERNATE RECORD IS ART-CLAVE-NOMBRE    WITH DUPLICATES
    14. 000061           ALTERNATE RECORD IS ART-CLAVE-PROVEEDOR WITH DUPLICATES
    15. 000062           ALTERNATE RECORD IS ART-CLAVE-RUBRO     WITH DUPLICATES
    16. 000063           FILE STATUS ART-STATUS.
    17. 000064
    18. 000065 DATA DIVISION.
    19. 000066 FILE SECTION.
    20. 000067 FD ARTICULO GLOBAL EXTERNAL.
    21. 000068 01 REG-ARTICULO.
    22. 000069    02 ART-CLAVE-PRIN.
    23. 000070       05 ARTCODIGO         PIC 9(5).
    24. 000071    02 ART-CLAVE-BARRA.
    25. 000072       05 ARTBARRA          PIC 9(13).
    26. 000073    02 ART-CLAVE-NOMBRE.    
    27. 000074       05 ARTNOMBRE         PIC X(35).
    28. 000075    02 ARTTPV               PIC X(20).
    29. 000076    02 ARTIVA               PIC 9(4).
    30. 000077    02 ART-CLAVE-PROVEEDOR.
    31. 000078       05 ARTPROVEEDOR      PIC 9(5).
    32. 000079    02 ART-CLAVE-RUBRO.
    33. 000080       05 ARTRUBRO          PIC 9(3).
    34. 000081    02 ARTENVASE            PIC 9(5).
    35. 000082    02 ARTCOSTO             PIC 9(7)V99.
    36. 000083    02 ARTMINORISTA         PIC 9(7)V99.
    37. 000084    02 ARTMAYORISTA         PIC 9(7)V99.
    38. 000085    02 ARTDESCUENTO         PIC 9(2).
    39. 000086    02 ARTCANTIDAD          PIC 9(2).
    40. 000087    02 ARTMINIMO            PIC 9(4).
    41. 000088    02 ARTGANANCIA1         PIC 9(2).
    42. 000089    02 ARTGANANCIA2         PIC 9(2).
    43. 000090    02 ARTSTOCK OCCURS 4    PIC S9(6)V99.
    44. 000091    02 ARTVENDIDO OCCURS 31 PIC S9(7)V99.
    45. 000092    02 ARTCANTIDADVEND      PIC 9(6)V99.
    46. 000093    02 ARTCOMPRA            PIC 9(6).
    47. 000094    02 ARTFOTOGRAFIA        PIC X(128).
    48. 000098 WORKING-STORAGE SECTION.
    49. 000100 01 ART-STATUS             PIC  9(2).
    50. 000104 LINKAGE SECTION.
    51. 000105 01 DATA1        PIC X(13).
    52. 000106 01 DATA2        PIC S9(14)V9(4) COMP-5.
    53. 000117
    54. 000118 PROCEDURE DIVISION WITH STDCALL LINKAGE USING DATA1 DATA2 .
    55. 000121      OPEN INPUT ARTICULO
    56. 000128      MOVE DATA1     TO ARTBARRA.
    57. 000130      READ ARTICULO  KEY IS ART-CLAVE-BARRA.      
    58. 000147      MOVE ARTMINORISTA       TO DATA2
    59. 000153      CLOSE ARTICULO      
    60. 000154
    61. 000157     EXIT PROGRAM.

    0 Not allowed!

  8. #8
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Ayer a las 18:48

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @drvedia1981, para la DLL tiene que ser:

    CODE Código:
    1. C:\ruta_powercobol_3\cobol32.exe -WC"MESSAGE,FLAG(I),SOURCE" C:\ruta_de_tu_programa\PROGRAMA.COB > SYSOUT.txt
    2. C:\ruta_powercobol_3\link.exe /DLL C:\ruta_de_tu_programa\PROGRAMA.OBJ C:\ruta_powercobol_3\*.lib >> SYSOUT.txt

    Para llamar el programa desde el VB, es el nombre de la PROGRAM-ID con el prefijo de guion bajo. Es decir, si tu PROGRAM-ID es PROGRAMA, desde VB debes llamar a _PROGRAMA

    Desde VB debes declarar la función de la siguiente manera:

    VB Código:
    1. Declare Function PROGRAMA Lib "PROGRAMA.DLL" Alias "_PROGRAMA@8"  (ByRef DATA1 As String, ByRef DATA2 As Long) As Integer

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  9. #9
      Junior
    d

    Registrado
    febrero de 2017
    Ubicación
    Caba Argentina
    Mensajes
    66
    Última visita
    11.03.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    8

    Predeterminado

    Muchas gracias Kuk voy a probar Saludos !!!!

    0 Not allowed!

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Información] Leer archivos RM Cobol desde PowerCobol
    Por Roger en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 11
    Último Mensaje: 23.03.2020, 14:01
  2. [Componente] Power Cobol ActiveX using with VB6,C++, etc.
    Por hbetancur en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 1
    Último Mensaje: 05.07.2018, 17:42
  3. [Información] Leer puerto RS232 desde PowerCobol v9
    Por Jovimabo en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 13
    Último Mensaje: 18.10.2016, 16:00
  4. [Información] Leer y llenar archivos PDF
    Por lfortuny en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 12
    Último Mensaje: 24.04.2016, 19:36
  5. [Información] Crear archivos DBF desde COBOL (sin ODBC)
    Por Joseg en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 4
    Último Mensaje: 16.03.2016, 16:36

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •