Q19-2:
列のデータ型につきまして1点確認したいのですが、
> 2)テーブルコンポーネントの「メソッド:setColumnType(Class,int)」を使って列型を変更します。
上記方法にて、行うように考えておりますが、4桁以上の数字をデータテーブルに読み込ませる場合、3桁と4桁の間に区切りカンマがついてしまいます。
これを数字の列(文字列で可)にしたいのですが、うまくいきません。
例)「1,001」⇒文字型java.lang.Stringへ変更⇒「1001.0」
※小数点がついてしまう。
管理コードとして使用したいので、「1001」という表示をさせたいと思っております。何か解決策はございますでしょうか?
A19-2:
エクセルファイルから数値データを読込んだ際に、MZPlatformのテーブルの列型は、基本的に「java.lang.Double」になりますが、[テーブル]の数値列の属性で桁区切りを表示するモードが既定値となっていることが原因として考えられます。
列型は「java.lang.Double」のままでも、その後の処理に大きな問題はないかと存じます。
回避方法は以下の通りです。
1)「実行(設定可)」ボタンで実行し、テーブルの列の上で右クリック>列>表示属性(実数)>表示形式>グループ化>なしを選択
(グループ化ありで桁区切りが表示されるようになります)
但し、新しいテーブルデータで上書きされてしまうと、例え列型は同じであっても、表示形式や列の幅など属性は保持されません。
2)常に読込むテーブルデータの形式が同じ場合、
@列のみで行は追加されていない[テーブル]を用意します。
(見た目は列名の部分のみ表示されたテーブルになります)
グループ化なしを該当列に設定しておきます。
A[データベースアクセス]の検索結果は一旦[テーブル格納変数]に設定しておきます。
B[テーブル]に「メソッド:行を追加する(PFObjectTable)」で上記の[テーブル格納変数]のデータを追加します。
Cテーブルクリアの際も、「メソッド:全行列を削除する」ではなく、「全行を削除する」を使い、列名の部分は残しておくようにします。
但し、上記の方法は[テーブル格納変数]のデータの列数・列型と[テーブル]の列数・列型が同じでないとエラーになります。
読込むデータの列数やデータ型がいつも同じとは限らない場合には、上記の処理を基にして、さらに設定の追加が必要になるかと存じます。
2)について簡単なサンプルファイルを関連ファイル「列属性変更.mzax」に掲載致しますので、ご参考になれば幸いです。
関連ファイル:列属性変更.mzax (※このファイルは、ZIP形式に圧縮してあります。)