Q62:メソッドの中にテーブルデータの中の数字がマイナス値で表されるときに、フォントの色を赤にする機能は無いのでしょうか。
Q62-1:
テーブルコンポーネントのメソッドの中にテーブルデータの中の数字がマイナス値で表されるときに、フォントの色を赤にする機能は無いのでしょうか。または、無い場合、帰ってきた値に色を付けるとしたらどのようなやり方があるのでしょうか。
又、FORループでテーブルのデータを読み込んで値をセットするように行っているのですが、開始位置を0にすると、エラーとなってしまい、開始位置を1にすると問題なく処理されるのですが、このような場合どのような理由が考えられるのでしょうか。
A62-1:
1)[テーブル]セルのフォントを属性の設定で自動的に赤字にすることはできません。[比較演算]コンポーネント等で0より小さいか繰り返し比較し、小さければメソッド「setCellForeground(Color,int,int)」でセルの前景色を設定していきます。
色<引数:Color>の設定方法は主に以下の3つがあります。
@色名で指定する(red,blueなど)
javaで定義されている13色の色名を使用できます。
例:「取得方法:固定値 メソッド/値:red」
値は『java.awt.Color[r=255,g=0,b=0]』といった表記に自動的に変わります。
ARGB値で指定する
例:「取得方法:固定値 メソッド/値:java.awt.Color[r=255,g=0,b=0]」
B[色選択ダイアログ]で選択した色を設定する
前景色を全部一旦初期値(黒色)に戻すときにはメソッド
「setAllForeground(Color)」で引数を「black」として頂くと簡単かと思います。
2) >FORループでテーブルのデータを読み込んで値をセットするように行っているのですが開始位置を0にすると、エラーとなってしまい開始位置を1にすると問題なく処理される
おそらく[繰り返し制御(FOR)]の引数を「開始値:0、終了値:テーブル、最終行位置を取得する」などとし、[繰り返し制御(FOR)]の現在値=[テーブル]の行位置番号で各セルの値を読み込んで設定していらっしゃるかと思います。
@[繰り返し制御(FOR)]の現在値=[テーブル]の行位置番号に相当する行が存在しない。この場合「行インデックスエラー」、「Array index out of range」などのエラーが発生します。
Aセルの値が設定先のコンポーネントのデータ型と食い違いがある
(例:数値型の列に数字ではない文字を入れようとする)
「型が異なる値が含まれています」などのエラーが発生する場合があります。
主な原因としては上記が考えられますが、当てはまらない場合もありますので、よろしければどのような状況で、どんなエラーが発生するかお知らせ頂ければ、原因が判明しやすいです。
Q62-2:
比較演算の結果、起動コンポーネント テーブルにおいて、
メソッド「setCellForeground(Color,int,int)」
を選んだ場合、引数0は色、引数1は、引数2は通常何を設定するのが望ましいのでしょうか。
A62-2:
メソッド「setCellForeground(Color,int,int)」の
<引数1>行の位置インデックス
<引数2>列の位置インデックス
を設定して下さい。
例えば0行目1列目のセルの指定には
<引数1>固定値、値:0
<引数2>固定値、値:1
とします。
[繰り返し制御(FOR)]を使って一列のデータを上から順番に確認している場合は
<引数1>取得方法:メソッド戻り値、コンポーネント:繰り返し制御(FOR)
メソッド/値:現在値を取得する
となるかと思います。
また、選択されているセルの指定には
取得方法:メソッド戻り値、コンポーネント:テーブル
メソッド/値:選択行の位置を取得する/選択列の位置を取得する
となります。
Q62-3:
もう一つお聞きしたいことが発生しました。
エクセルファイル読み込みを行いテーブルにセットし処理を行うとき、追加事項として、テーブルとは別に、リストに追加項目を表し登録するように行っているのですが、リストの情報を読み込んだエクセルファイルの8列目に記載したいのですが、どのように行えばよいのでしょうか。
例:リストの内容は、 梱包が500個が8セット合った場合、500,500,500,500,500,500,500,500、と記載しデータベースへ登録を行っています。テーブルへ記載したい内容は500×8と表れるように記載したいのですが、よろしければお教えください。宜しく御願いいたします。
A62-3:
リスト型データの中に幾つ同一の要素があるか調べるには[出現頻度集計(文字列)]をお試し下さい。取得できる「出現頻度データ」はテーブル型のデータとなります。
「×」などの文字列を間に挟むには[文字列格納変数]の「メソッド:指定した文字列と連結して置き換える(String)」で、後ろに文字列を追加していくのが簡単かと思います。
ご参考までに[出現頻度集計(文字列)]を使ったサンプルファイルを掲載いたします。
[出現頻度集計(文字列)]で取得される「出現頻度データ」の順番は文字列での辞書順であり、数値の大小の順番とは違いますので、ソートの必要等ございましたら、お手数ですが再度ご連絡下さい。
関連ファイル:出現頻度集計テスト.mzax