数値入力フィールドについて

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 数値入力フィールドについて

4 件の投稿を閲覧中 - 1 ~ 4 件(全 4 件)
  • 著者
    投稿
  • #5151
    ORIteck CO., LTD
    一般参加者

    データベースのdatetime型2列からTIMESTAMPDIFF関数で時間差を取得(複数行の合計SUM)し、その値をMZ上に表示するためにテキストフィールドを使用していましたが、桁区切りのカンマを入れて表示させたくてFAQを検索していました、で、数値フィールド(表示形式→グループ→あり)で可能の記述がありましたのでそのようにしているのですが質問がありますのでお願いします。
     数値フィールドの数値型は複数ありますが、デフォルトでBigDecimal。この数値型でしか表示しません、入力は全ての型でできますが表示はしません。そもそも、入力フィールドなので、表示単独を想定していないということでしょうか?(区切り表示だけに使う、裏技の感覚)
     今後、このフィールドでの値を使用する必要があった場合、不都合が生じる懸念はありますか?
     丸目モードとの関連についても、ご教授いただけると幸いです。
     又、その他で、数値に区切りを入れる方法はありますか?

    よろしくお願いします。

    #5152
    MZPlatformユーザー会
    サイト管理者

    数値入力フィールドは、内部に数値データを保持しており、それとは独立に数値の文字列表現を表示しています。グループや丸めモードはすべて文字列表現に限定した指定となり、表示されている文字列と実際の数値は異なります。なお、メソッド「数値を取得する()」で実際の数値を取得できます。

    一方、メソッド「数値を設定する(Object)」を呼び出すと、内部の数値は変わりますが、画面上の文字列表現は変わりません。この挙動のせいで混乱してしまうかもしれません。

    設定した数値を表示に反映するためには、メソッド「文字列を設定した後、その文字列で値を確定する(String)」をお使いください。このとき、引数に数値を渡しても自動的に変換されるので問題ありません。この方法でフィールドに手入力せず表示に限定することは典型的な使用方法の一つです。その場合は、属性Editableをfalseにすると明示的に表示限定で使用できます。

    他に数値をグループ表記にする方法としてはテーブルの数値型の列で可能ですが、単体の数値を扱いたい場合は数値入力フィールドになります。

    #5153
    ORIteck CO., LTD
    一般参加者

    ご連絡ありがとうございます。
    実際の数値は、グループ(区切り文字)や丸めモード(端末処理)を含まない。ただ、表現として可能にするため文字列表現の機能をもたしている。
    「文字列を設定した後、その文字列で値を確定する(String)」を使用し、その後、その値を使用する場合は「数値を取得する()」を使うことで、本来の実際の数値を得られる。
    このような理解でよろしいでしょうか?

    「数値を設定する(Object)」では、デフォルトの数値型BigDecimal以外はフィールドに表示されないのがよくわからないのですが?

    #5154
    MZPlatformユーザー会
    サイト管理者

    その理解で良いと思います。
    一部訂正がありまして、異なる数値型のときに反映されないということは、実際に内部の数値も変更されていないかもしれません。内部の処理について検証して修正を検討します。ひとまず現状の正常に動作する部分をお使いください。

4 件の投稿を閲覧中 - 1 ~ 4 件(全 4 件)
  • このトピックに返信するには、ログインしてください。