carácter no válido que hace que SaveInteractiveHTML () haga un informe incompletoMe pregunto si hay alguna característica existente para hacer frente a esto.
Tengo JSL que está haciendo un informe que contiene un tabulado basado en datos consultados de Oracle. El informe se veía bien en JMP (esto es JMP12.1) pero cuando usé SaveInteractiveHTML () dio un informe incompleto y el error "... PCDATA valor de carácter inválido 11 ... ". Podía decir qué campo era el problema porque hizo que el tabulado llegara hasta la celda de texto que lo disparó a pesar de que la cadena de caracteres que debería haber estado allí no parecía tener ningún carácter extraño.
Un estudio adicional sobre el uso de ChartoHex en cada carácter de esa cadena mostró que contenía un carácter invisible ASCII 11 o hex "0B", aparentemente "tabulación vertical".
Actualicé mi script para ver los valores de esta columna en particular buscando la existencia de este personaje en particular y eliminándolo. Pero, presumiblemente, este es solo uno de los muchos caracteres ilegales posibles que podrían aparecer y no funcionar con el HTML (?) Y tal vez podrían aparecer en otras columnas también, aunque esto parece haber sido una ocurrencia extraña, por lo que probablemente debería ser infalible contra esto en todas las columnas de caracteres en todos mis informes HTML interactivos. De todos modos, ¿se pregunta si existe alguna función JSL existente que limpie las cadenas de caracteres para que funcionen con la función HTML, construyendo en qué caracteres son legales o ilegales?
Re: carácter no válido que hace que SaveInteractiveHTML () haga un informe incompletoDe nada. @Craige_Hales Ayudó con el comando Regex. Me alegro de haber podido ayudar.
Re: carácter no válido que hace que SaveInteractiveHTML () haga un informe incompleto¡Gracias! Implementado eso. Sentirse mejor eliminando "todos" los posibles problemas de caracteres.
Re: carácter no válido que hace que SaveInteractiveHTML () haga un informe incompletoEn HTML, los caracteres no imprimibles con códigos ASCII por debajo de 32 o códigos hexadecimales de "00" a "1F" no son válidos.
No conozco una secuencia de comandos JSL existente que elimine estos caracteres, pero la siguiente fórmula de columna podría usarse en una nueva columna para reemplazar los caracteres no válidos con caracteres de espacio de las cadenas en una columna llamada "nombre":
Regex(:name, "[\x00-\x1F]+", " ", GLOBALREPLACE)
Por favor, avíseme si necesita ayuda para adaptar esto a su script.
~ John