Q20-1:テキストフィールドに、例えば「23」や「152」と入力した時に、0023、0152または、000023、000152など、任意の文字数にゼロ詰めする機能はありますでしょうか。
A20-1:
[テキストフィールド]では設定できませんが、[数値入力フィールド]でしたら表示可能です。
[数値入力フィールド]を右クリック>[表示形式(実数)]>[整数部分の最小桁数]を、表示したい桁数に変更します。
値を設定する際にはメソッド「文字列を設定した後、その文字列で値を確定する(String)」、書式と共に文字列を得たい場合には「表示されている文字列を取得する()」を使うと宜しいかと思います。
[数値入力フィールド]のデフォルトの数値型は「BigDecimal(実数)」になっています。今回は特に変更の必要はないかと思いますが、扱う値に合わせて適宜「BigInteger(整数)」等に変えて頂いても結構です。
Q20-2:
ゼロ詰めを数値入力フィールドで行いつつ、さらに最大文字数の制限もかけたいのですが、こちらはマスク入力フィールドを利用する事になるかと思います。マスク入力フィールドでは、ゼロ詰めを行う事は可能でしょうか。
A20-2:
[マスク入力フィールド]をお使いになる場合には、右クリック>[フォーマット]>[マスク文字列]に任意の数字を表す「#」を桁数分設定し(例:######)、[フォーマット]>[プレースホルダー文字列]>[設定する...]で「0」を桁数分設定します(例:000000)。
ただし、お試し頂くと分るのですが、[マスク入力フィールド]には設定した桁数分きちんと入力しないと値として受け付けられません。例えば最初に「000000」と表示されているところをユーザーが一旦全部消して「123」と入力しても有効になりません。
数字のみお使いの場合には[数値入力フィールド]で「最大値」を設定して頂くことも考えられます。
また、フィールドでEnterキーが押されたタイミングで、入力されている値を[文字列格納変数]等に入れて目的の文字数や文字種、書式に合っているかどうか判定し、合っていなければメッセージを出したり、書式を整えて表示したりということも可能です。
例えば「123」と入力されたら「000123」としてフィールドに設定する、「1234567」と入力されたら警告メッセージを出すなどです。
この方法ではフィールド上で判定処理をするわけではありませんので、[テキストフィールド]のままでも可能です。
考えられる入力の流れを詳しくお教え頂ければ、適当な処理がご紹介できるかと存じます。