シリアル化を使用して印刷するとBarTenderがフリーズするように見える
症状
シリアル化されたラベルを印刷しようとすると、BarTenderがフリーズすることがあります。Print Portalではすぐにこの問題が分かりますが、DesignerやPrint Stationでも同様にフリーズが発生する場合があります。
対処方法/回答
名前付きデータソースを持つシリアル化オブジェクトを探します。「データソース」タブでデータソース名を確認してください:
「変換」タブで、シリアル化のダイアログボックスを開きます。一番下の「シリアル番号」オプションが、何らかのデータソースに設定されている可能性があります。
プロパティダイアログを開いて、データソース名を確認します。
リンクされている名前付きデータソースは、先ほど確認したオブジェクト自体か、または別のシリアル化されているオブジェクトです。別の値が増分されている場合にも同じことが起こることがあります。
この動作を止めるには、データソースへのリンクを解除してください。別の値に変更するか、印刷ダイアログから値を読み取るように設定してください。
なぜこうなるのか?
BarTenderが印刷時に値を確認する際、再帰的なループに入ってしまいます。この例では、シリアル化変数を読み取ろうとすると、その値が1234に設定されています。つまり、1234個のシリアル番号を作成しようとしています。
しかし、1235に増分しようとするとどうなるでしょうか?今度は1234個に加えて1235個のシリアル番号を作成しようとします。このプロセスはすぐに制御不能になり、プログラムがフリーズしたりクラッシュしたりします。自分自身の値を再帰的に読み取り、その値に応じて動作しようとするためです。値が繰り返し増減することで、プログラムが混乱し、処理を続けられなくなります。
印刷時に自分自身の値を読み取ろうとするリンクを解除することで、この問題の発生を防ぐことができます。