Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL] Código para crear archivo Json (https://www.cobolforo.es/showthread.php?t=1363)

fastpho 17 de agosto de 2021 16:54

Código para crear archivo Json
 
1 Archivos Adjunto(s)
Este es un ejemplo desarrollado en powercobol 5 para crear un archivo en formato json usando el control ocx de chilkat que es free toda la documentación de este control esta en el siguiente link

https://www.chilkatsoft.com/refdoc/x...ObjectRef.html
Adjunto el programa
Saludos

Fito 30 de octubre de 2021 01:24

Holaaaa:

Estoy utilizando este activex y lo que no sé cómo hacer es poner un valor null, false o true.

por ejemplo:

Código JS:
  1. "v": {
  2.       "a": 21,
  3.       "f": false
  4.     }

Gracias.

Saludos

Fito...

---------- Post añadido el 30 de octubre de 2021 a las 02:12 ----------

Por ahora lo he solucionado poniéndole unas clave "&False", "&True" y "&Null" y después leo el archivo generado y lo grabo en otro reemplazando con inspect

fastpho 30 de octubre de 2021 16:26

Hola @Fito, para poder trabajar con datos tipo booleanos y nulos ("false" , "true , "null") tendria que ser algo como esto :

Código COBOL:
  1.          INVOKE ChilkatJsonObject2 "UpdateString" USING "valores[0].iva"    "21"           RETURNING Success4.
  2.          INVOKE ChilkatJsonObject2 "UpdateBool"   USING "valores[0].falso"  0               RETURNING Success4.
  3.          INVOKE ChilkatJsonObject2 "UpdateBool"   USING "valores[0].verdadero"  1      RETURNING Success4.
  4.          INVOKE ChilkatJsonObject2 "UpdateNull"    USING "valores[0].nulo"                     RETURNING Success4.
  5.  

Saludos

Fito 1 de noviembre de 2021 23:48

Holaaaa:

Ahi pude hacer los nulls y boolean, Muchas gracias.

Ahora otra consulta. Tengo que poner el contenido de todo el json en una variable. Puedo leer el archivo e ir cargando, pero no habrá algún método que lo haga?

Gracias...

Saludos.

Fito...

---------- Post añadido el 1 de noviembre de 2021 a las 21:16 ----------

Hola:

Ahi encontré el método Emit, eso me devuelve el json. El problema le pongo una variable de pic x(1000000) pero solamente carga 8192.

Será un límite del power?

Saludos

Fito

fastpho 2 de noviembre de 2021 15:44

Cita:

Citación del post de Fito (Mensaje 7227)

Ahi encontré el método Emit, eso me devuelve el json. El problema le pongo una variable de pic x(1000000) pero solamente carga 8192.

Será un límite del power?

Saludos

Fito

Es un problema la limitacion de la variable , creo que es un limite del powercobol :llora:

Fito 3 de noviembre de 2021 03:00

Cita:

Citación del post de fastpho (Mensaje 7237)
Es un problema la limitacion de la variable , creo que es un limite del powercobol :llora:

Lo raro es que la variable de esos tamaños la trabaja bien, porque le cargo el json completo y se las banca. Pero debe ser el tema que es un parámetro.

Otra cosa

Código COBOL:
  1.      02 wjson                   pic x(256000000).
  2.      02 redefines wjson.
  3.         03 tabla-wjson occurs 1000000 times.
  4.            04 t-wjson           pic x(256).

Terminé haciéndola de este tamaño y funciona bien, pero puedo poner un solo form por dll, cuando compilo me da error. Así que hago una dll por formulario y no tengo problema.

Gracias amigo.

Saludos

Fito...

Fito 16 de noviembre de 2021 15:09

Holaaaa:

Estoy utilizando este ocx maravilloso sin problemas hasta ahora.

Sólo una duda. Cuando envío un numérico con decimales, un importe. Me lo pone con coma decimal como está configurada las Configuración Regional. Yo ahora lo que hago es por programa antes de cargar el json lo paso a punto y después vuelvo a coma. Pero habrá alguna propiedad donde se pueda configurar eso sin la necesidad de cambiar la configuración regional?

Saludos...

Fito...

Kuk 16 de noviembre de 2021 16:25

@Fito, has probado pasarlo a Editado, del Editado a Alfanumérico y pasarle al OCX el Alfanumérico?

fastpho 16 de noviembre de 2021 16:29

Hola @Fito, cuando le mandas un campo numerico parece que lee la configuracion regional , la unica forma para que te tome el punto decimal es como lo estas haciendo , o mandarlo como un string ....

Saludos....

Fito 16 de noviembre de 2021 16:30

tanta vuelta no le di. Como lo solucioné enseguida con lo otro, no me puse a probar tanto.


La franja horaria es GMT +2. Ahora son las 14:46.

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