リスト格納変数のindexOf(object)について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 リスト格納変数のindexOf(object)について

3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • 著者
    投稿
  • #4373
    1221fumitaka.ozeki
    一般参加者

    表題の件について、ご教示頂きます様お願い致します。

    テーブル上のある列に対し、「列データリストを位置指定で取得」して
    リスト格納変数にリストを設定しています。
    リスト内容は次のような具合となります。
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

    あるテキストフィールドに、例えば「6」の文字列が入力されており、
    リスト格納変数のindexOf(object)で、このテキストフィールドの
    文字列を取得します。

    その後、テーブルのメソッド「選択行を指定する」
    (開始行・終了行ともに、メソッド処理結果:indexOf)
    で6のデータがある行を選択したいのですが、
    行選択結果が-1になってしまいます。

    テーブル上のデータ型が関係していますでしょうか。
    考えられる事を教えて頂けます様、お願い致します。

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

    リスト格納変数のメソッド「indexOf(Object)」は、リストに含まれる要素と同一のオブジェクトを引数に指定した時に、その位置を返します。そのため、少なくともオブジェクトの型が一致している必要があります。

    元のテーブルの列型が文字列であれば、同じ文字列の比較で期待する結果が得られますが、もし列型が数値などになっていて、文字列と比較していると常に-1が返ることになります。

    テーブルの列型を確認する方法は、実行(設定可)で実行して、テーブルの列ヘッダで右クリックすると表示されるメニューから、「列>列型」で選択状態になっている項目になります。

    テーブルの列型を文字列に変更すれば解決すると思いますが、数値型から変更できない事情がある場合は、入力を数値入力フィールドにして、例えば整数(BigInteger)で型をそろえると、期待する結果が得られます。

    もし、データベースから取得した結果をテーブルに表示している場合など、特殊な数値型になっていることがありますので、うまくいかない場合は再度お問い合わせください。

    #4375
    1221fumitaka.ozeki
    一般参加者

    テーブルデータの型はShort値で、これは変更できませんでしたので、
    テキストフィールド上の文字列を整数(Short)格納変数に取得してから
    リスト格納変数に取得する事で、意図する処理が可能となりました。
    ご返答ありがとうございました。

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