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 > Fujitsu COBOL > PowerCOBOL V3L10 (Win32)
PowerCOBOL V3L10 (Win32) IDE Freeware compatible con Windows 7/8/10
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Componente] Power Cobol ActiveX using with VB6,C++, etc. hbetancur PowerCOBOL (ActiveX, v4 - v11) 1 5 de julio de 2018 16:42
[Información] Leer puerto RS232 desde PowerCobol v9 Jovimabo PowerCOBOL (ActiveX, v4 - v11) 13 18 de octubre de 2016 15:00
[Información] Leer y llenar archivos PDF lfortuny PowerCOBOL (ActiveX, v4 - v11) 12 24 de abril de 2016 18:36
[Información] Crear archivos DBF desde COBOL (sin ODBC) Joseg PowerCOBOL (ActiveX, v4 - v11) 4 16 de marzo de 2016 15:36
[Información] Leer archivos RM Cobol desde PowerCobol Roger PowerCOBOL (ActiveX, v4 - v11) 9 2 de octubre de 2015 04:08
Respuesta
 
Herramientas

  #1
Antiguo 23 de enero de 2018, 23:51
IDENTIFICATION DIVISION
drvedia1981
Novato Junior
ENVIRONMENT DIVISION
Avatar de drvedia1981
DATA DIVISION
Forero desde (Registrado)febrero 2017
Argentina
UbicaciónCaba Argentina
Última Actividad11.12.2018 14:07
PROCEDURE DIVISION
PostsPosts: 33
Ha dicho GraciasEnviado: 1
Ha recibido agradecimientosRecibido: 3
Mejores respuestasSoluiones: 1
ReputaciónReputación: 0
drvedia1981 is an unknown quantity at this point
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.

Código COBOL:
  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 ----------

Código COBOL:
  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.
drvedia1981 no ha iniciado sesión   Responder Con Cita
  #2
Antiguo 24 de enero de 2018, 16:36
IDENTIFICATION DIVISION
Joseg
Novato Senior
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
Forero desde (Registrado)abril 2015
Portugal
Última Actividad19.06.2019 15:26
PROCEDURE DIVISION
PostsPosts: 160
Ha dicho GraciasEnviado: 35
Ha recibido agradecimientosRecibido: 46
Mejores respuestasSoluiones: 9
Medallas recibidas: 1Medallas: Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ReputaciónReputación: 9
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

Cita del post de 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.

Código COBOL:
  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 ----------

Código COBOL:
  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?
Joseg no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 29 de enero de 2018, 17:48
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
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
Rapinto no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 29 de enero de 2018, 19:55
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad25.06.2019 20:59
PROCEDURE DIVISION
PostsPosts: 1.393
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 526
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
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:

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


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 30 de enero de 2018, 19:25
IDENTIFICATION DIVISION
drvedia1981
Novato Junior
ENVIRONMENT DIVISION
Avatar de drvedia1981
DATA DIVISION
Forero desde (Registrado)febrero 2017
Argentina
UbicaciónCaba Argentina
Última Actividad11.12.2018 14:07
PROCEDURE DIVISION
PostsPosts: 33
Ha dicho GraciasEnviado: 1
Ha recibido agradecimientosRecibido: 3
Mejores respuestasSoluiones: 1
ReputaciónReputación: 0
drvedia1981 is an unknown quantity at this point
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
drvedia1981 no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 30 de enero de 2018, 20:06
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad25.06.2019 20:59
PROCEDURE DIVISION
PostsPosts: 1.393
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 526
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
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


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #7
Antiguo 30 de enero de 2018, 20:36
IDENTIFICATION DIVISION
drvedia1981
Novato Junior
ENVIRONMENT DIVISION
Avatar de drvedia1981
DATA DIVISION
Forero desde (Registrado)febrero 2017
Argentina
UbicaciónCaba Argentina
Última Actividad11.12.2018 14:07
PROCEDURE DIVISION
PostsPosts: 33
Ha dicho GraciasEnviado: 1
Ha recibido agradecimientosRecibido: 3
Mejores respuestasSoluiones: 1
ReputaciónReputación: 0
drvedia1981 is an unknown quantity at this point
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

Código COBOL:
  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.
drvedia1981 no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 30 de enero de 2018, 21:24
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad25.06.2019 20:59
PROCEDURE DIVISION
PostsPosts: 1.393
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 526
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

drvedia1981, para la DLL tiene que ser:

Código:
C:\ruta_powercobol_3\cobol32.exe -WC"MESSAGE,FLAG(I),SOURCE" C:\ruta_de_tu_programa\PROGRAMA.COB > SYSOUT.txt
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:

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


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 30 de enero de 2018, 23:53
IDENTIFICATION DIVISION
drvedia1981
Novato Junior
ENVIRONMENT DIVISION
Avatar de drvedia1981
DATA DIVISION
Forero desde (Registrado)febrero 2017
Argentina
UbicaciónCaba Argentina
Última Actividad11.12.2018 14:07
PROCEDURE DIVISION
PostsPosts: 33
Ha dicho GraciasEnviado: 1
Ha recibido agradecimientosRecibido: 3
Mejores respuestasSoluiones: 1
ReputaciónReputación: 0
drvedia1981 is an unknown quantity at this point
Predeterminado

Muchas gracias Kuk voy a probar Saludos !!!!
drvedia1981 no ha iniciado sesión   Responder Con Cita
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 16:00.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.