SaveInteractiveHTML()が不完全なレポートを作成する原因となる無効な文字これに対処するための既存の機能があるかどうか疑問に思います。
私は、Oracleから問い合わせたデータに基づいて表形式のレポートを作成しているJSLを持っています。 レポートはJMP(これはJMP12.1です)では問題なく見えましたが、SaveInteractiveHTML()を使用したときに不完全なレポートとエラーが発生しました "... PCDATAの無効な文字値11 ... "。 どのフィールドが問題だったのかは、表示されるはずの文字列に奇妙な文字が含まれていないように見えても、表示されたテキストのセルまで表が正しく表示されたためです。
その文字列の各文字にChartoHexを使用してさらに調査したところ、それには見えない文字ASCII 11または16進数 "0B"、明らかに "垂直タブ"が含まれていたことがわかりました。
この特定の列の値を調べてこの特定の文字の存在を探し、それを取り除くようにスクリプトを更新しました。 しかし、おそらくこれはHTML(?)では表示されず動作しない可能性のある多くの違法な文字の1つで、おそらく他のコラムでも表示される可能性があります。これはすべてのインタラクティブHTMLレポートのすべての文字列で確認できます。 とにかく、既存のJSL関数が文字列をきれいにしてHTML関数と連携させるようにしているのではないかと疑問に思います。
SaveInteractiveHTML()が不完全なレポートを作成する原因となる無効な文字どういたしまして。 @Craige_Hales 正規表現コマンドで助けました。喜んでお手伝いできます。
SaveInteractiveHTML()が不完全なレポートを作成する原因となる無効な文字ありがとうございます。それを実装しました。 問題となる可能性のある文字を「すべて」削除したほうがよいでしょう。
SaveInteractiveHTML()が不完全なレポートを作成する原因となる無効な文字HTMLでは、32未満のASCIIコード、または "00"から "1F"までの16進コードを含む印刷不能文字は無効です。
これらの文字を削除する既存のJSLスクリプトはわかりませんが、新しい列で次の列式を使用して、"name"という列の文字列から無効な文字をスペース文字に置き換えることができます。
Regex(:name, "[\x00-\x1F]+", " ", GLOBALREPLACE)
これをあなたのスクリプトに適応させるのに手助けが必要な場合は私に教えてください。
〜ジョン