Buenas, y primero gracias por la ayuda!

Ya lo hemos conseguido. Lo hemos hecho cambiandole el CCDIS a la variable
Z60:

 dcl-s Z60 char(60) ccsid(819) ;

Finalmente parece ser que era un problema de conversión.

De nuevo, GRACIAS!

On Fri, Nov 13, 2020 at 10:38 AM estela retes <[email protected]> wrote:

> Buenas,
>
> Hemos encontrado una web en la que subes la imagen del código de barras y
> te da lo que contiene: https://zxing.org/w/decode.jspx
>
> Enviando el código datamatrix que nos ha enviado el cliente la
> interpretación que hace de los 4 campos es esta:
> [image: image.png]
> Hace el salto de línea.
>
> Sin embargo, con el que enviamos nosotros ya sea CR, LF, CRLF, LN,... Lo
> interpreta de esta otra:
> [image: image.png]
>
> Ayer encontramos algo que teníamos mal, y es que en el CRTPRTF hay que
> poner RPLUNPRT(*NO) para que no sustituya por blancos los caracteres no
> imprimibles.
>
> Pero aún así, nuestro código parece que sigue sin generarse correctamente.
>
> Hemos probado definiendo las constantes de varias maneras:
>      D CRLF            C                   CONST(x'0D25')
>      D CRNL            C                   CONST(x'0D15')
>      D LF             C                   CONST(x'0A')
>      D CRLF           C                   CONST(X'0D0A')
>      D CR              C                   CONST(x'0D')
>      D LF              C                   CONST(x'25')
>  y con todas ellas hemos probado con este código (donde pone LF hemos
> probado con todas las constantes anteriores):
>      C                  MOVE      *BLANKS       Z60              60
>      C                   EVAL      Z60=%TRIM(P1_REFER1)+%TRIM(P1_REFER2)
>      C                             + LF + %EDITC(P1_NUALBA:'X')
>      C                             + LF + %TRIM(P2_CDARCL)
>      C                             + LF + %CHAR(Z7N)
>      C                   EVAL      PC_CDTMAT=Z60
>
>
> Definición del datamatrix en el PRTF:
>      A            PC_CDTMAT     60A       61BARCODE(DATAMATRIX +
>      A                                       (*DATAMATRIX 20 20 +
>      A                                        *USRDEF  *DATA *NO
>      A                                        *ESCAPE))
>
>
> Pero el resultado siempre es el del "rombo con interrogación" de la
> segunda imagen.
> Está claro que algo estamos haciendo mal, que algo más nos falta en el
> CRTPRTF o en la definición del propio PRTF, o quizá algún lío de conversión
> ASCII-hexadecimal...
> Seguimos haciendo pruebas, pero no conseguimos dar en el clavo.
>
> Muchas gracias!
>
>
>
> On Fri, Nov 13, 2020 at 10:26 AM Alex Martínez <[email protected]> wrote:
>
>> Hola
>>
>> Ya puestos prueba también con el hexadecimal 0D0A que es un CR+LF
>>
>> Salu2
>>
>> El jue., 12 nov. 2020 a las 15:35, estela retes (<[email protected]>)
>> escribió:
>>
>>> Gracias Javier.
>>>
>>> Le hemos pedido al cliente que nos ponga en contacto con su departamento
>>> técnico/informático para que nos den una especificación más completa.
>>> Estamos a la espera.
>>>
>>> Mientras tanto, intentaremos conseguir la cadena ascii del código de
>>> ejemplo que nos han enviado probando con la configuración de algún lector
>>> que tenemos.
>>>
>>> Muchas gracias!
>>>
>>> On Thu, Nov 12, 2020 at 2:39 PM datil400 <[email protected]> wrote:
>>>
>>>> ¿Puede tu cliente enviarte la cadena ASCII que leen y la que debiera
>>>> ser? De esta forma puedes intentar localizar el valor binario del carácter
>>>> que buscas.
>>>>
>>>> Si está leyendo bien las letras, también debería leer correctamente el
>>>> LF o lo que sea.
>>>>
>>>> La mayoría de lectores del mercado pueden servir, solo hay que
>>>> configurarlos para que lean Datamatrix. Casi todos pueden parametrizarse.
>>>>
>>>> Un saludo,
>>>>
>>>> Javier
>>>>
>>>> El jue., 12 nov. 2020 14:31, estela retes <[email protected]> escribió:
>>>>
>>>>> Muchas gracias Javier,
>>>>>
>>>>> Hemos hecho lo que nos comentabas y a nuestro parecer los códigos de
>>>>> barras están ya saliendo bien, pero hemos estado esperando respuesta del
>>>>> cliente y nos dice que su lector no está interpretando lo que ellos llaman
>>>>> ENTER. Nosotros le hemos enviado para probar el LF, el CR, el CRLF y hasta
>>>>> un NL por si acaso, y nos dice que su lector no está interpretando bien el
>>>>> salto.
>>>>>
>>>>> ¿Hay alguien que conozca algún software que interprete los códigos de
>>>>> barras datamatrix y te devuelva lo que están leyendo incluídos los
>>>>> caracteres de control? De esa manera al menos podríamos intentar leer el
>>>>> único que nos han enviado de ejemplo (y que ellos dicen que va bien) e
>>>>> intentar reproducir lo que tengan ahí puesto, que en este momento ya dudo
>>>>> de si es un LF.
>>>>>
>>>>> Muchas gracias a todos!
>>>>>
>>>>> On Mon, Nov 9, 2020 at 3:51 PM datil400 <[email protected]> wrote:
>>>>>
>>>>>> Hola Estela,
>>>>>>
>>>>>> sustituye el \n por X'25'.
>>>>>>
>>>>>> Ten en cuenta que \n es un carácter de escape típico del lenguaje C
>>>>>> que, precisamente, identifica un fin de línea (y lo que eso signifique). 
>>>>>> En
>>>>>> RPG no va a funcionar.
>>>>>>
>>>>>> El IBM i utiliza EBCDIC para codificar sus cadenas de caracteres, así
>>>>>> el valor X'25' es LF y X'0D' es CR.
>>>>>>
>>>>>> Prueba a ver y nos cuentas.
>>>>>>
>>>>>> Un saludo,
>>>>>>
>>>>>> Javier Mora
>>>>>>
>>>>>> El lun., 9 nov. 2020 a las 12:39, estela retes (<[email protected]>)
>>>>>> escribió:
>>>>>>
>>>>>>> Buenas a todos,
>>>>>>>
>>>>>>> Tenemos un cliente que nos ha solicitado que en sus albaranes
>>>>>>> añadamos un código de barras de tipo Datamatrix que contenga la 
>>>>>>> información
>>>>>>> que va en el albarán.
>>>>>>>
>>>>>>> El código lo sacamos sin problema, pero en la especificación del
>>>>>>> cliente viene que cada campo debemos separarlo con un "ENTER". Le 
>>>>>>> pedimos
>>>>>>> que nos aclarase más ese ENTER qué debía ser y nos respondió que debe 
>>>>>>> ser
>>>>>>> un
>>>>>>>
>>>>>>>    - LF (0x0A, \n)
>>>>>>>
>>>>>>>
>>>>>>> El problema nos viene aquí, ya que no sabemos cómo codificar ese LF
>>>>>>> dentro de la cadena de caracteres que componen el código de barras.
>>>>>>>
>>>>>>> En el PRTF tenemos descrito el campo así:
>>>>>>>      A            PC_CDTMAT     20        61BARCODE(DATAMATRIX +
>>>>>>>      A                                       (*DATAMATRIX 20 20 +
>>>>>>>      A                                        *ESCAPE))
>>>>>>>
>>>>>>> En el SQLRPGLE:
>>>>>>>
>>>>>>>      C                   EVAL
>>>>>>>  PC_CDTMAT=%TRIM(REFER1)+%TRIM(REFER2)
>>>>>>>      C                             + '\n' + %EDITC(NUALBA:'X')
>>>>>>>      C                             + '\n' + %TRIM(CDARCL)
>>>>>>>      C                             + '\n' + %EDITC(CANSER:'X')
>>>>>>>
>>>>>>>
>>>>>>> Pero cuando escaneamos el código nos interpreta el \n como si fuese
>>>>>>> parte de la cadena de caracteres y no una secuencia de escape.
>>>>>>>
>>>>>>> ¿Alguien sabría decirnos qué estamos haciendo mal?
>>>>>>>
>>>>>>> Muchísimas gracias y un saludo,
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Estela
>>>>>>> ____________________________________________________
>>>>>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>>>>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>>>>
>>>>>> ____________________________________________________
>>>>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>>>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Estela
>>>>> ____________________________________________________
>>>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>>
>>>> ____________________________________________________
>>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>
>>>
>>>
>>> --
>>> Estela
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>
>
>
> --
> Estela
>


-- 
Estela
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to