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.
