PDA

Ver la Versión Completa : Problemas con JSON y Tabla de Memoria


jmbarrio
11-04-2024, 11:37:05
Buenos días, tengo el siguiente fichero json que recibo con componentes TREST y lo vuelco a una tabla de memoria TFDMemTable

[{"cal_serie":"24","cal_nro":2,"cal_fecha":"2024-04-03T00:00:00","cal_cliente":"000000","cal_rsocial":"MOVIMIENTOS INTERNOS",
"lineas":[{"lal_serie":"24","lal_nro":2,"lal_linea":1,"lal_cod":"002049","lal_alm":"1",......................,"lal_observ4":""}]

El campo líneas es otro array, que en el código se lo quiero asignar a un TMemo

para ello empleo Memo.Lines.add( FDMemTable.fieldbyname('lineas').asstring)

El problema es que solo me coge 255 caracteres, da igual que cambie el size a 512 0 1024, o que en lugar de un asstring le diga al campo que sea widestring solo me copia en el memo 255 caracteres

¿Alguna idea?

Muchas gracias;

Neftali [Germán.Estévez]
11-04-2024, 16:16:25
El problema es que solo me coge 255 caracteres, da igual que cambie el size a 512 0 1024, o que en lugar de un asstring le diga al campo que sea widestring solo me copia en el memo 255 caracteres

¿Alguna idea?



Tal vez deberías poner algo de código que estás utilizando para saber porqué te está "cortando" la cadena a esa longitud.

jmbarrio
11-04-2024, 16:50:27
;555354']Tal vez deberías poner algo de código que estás utilizando para saber porqué te está "cortando" la cadena a esa longitud.

Hola Neftalí, no he puesto código pq va todo por componentes TREST Client-Request-Response-ResponseDataSetAdapter configurados en diseño.

El ResponseDataSetAdapter enlaza con la FDMemTable con lo que la tabla se llena al hacer un Request.Execute

Al ver los campos de la tabla de memoria en el Bind Visually veo que el jsonarray líneas aparece como el campo lineas y es el FieldDefs 80 Las propiedades de

FDMemTable.FieldDefs[80] el Data Type es ftWideString y el size 255 y aunque le aumente a 512 se me sigue cortando a los 255 caracteres.

Gracias, un saludo.

cloayza
12-04-2024, 00:18:28
Estimado le sugiero agregue los campos del FDMemTable como persistentes para ello doble click sobre el FDMemTable y agregar los campos con sus tipos y largos para los string y con el tipo Memo para el campo que le da problemas...

Saludos cordiales