0

私は Power Builder 10.5 を使用していますが、最初は単純に思える問題を抱えていますが、解決策に近づくことができません。条件によって行の色を変えることはできますか? ステータスが異なる多数の行を取得するselectステートメントがあります。ステータスAは行がアクティブであることを意味し、ERRは何かが間違っていることを意味し、Fは終了したことを意味します...必要なのは、列の色ですステータス「ERR」は赤、ステータス「A」の列の色は緑になります。他のすべての列は白である場合があります。

現在、私は半分の仕事しかできません。データ ウィンドウに「色」というダミー フィールドを追加しました。デザインビューでこれを書いたすべてのセルについて、背景色のプロパティ..

IF ( color =1, 65280, 16777215)

ここで、データを取得する [OK] ボタンのクリック イベントに移動します...

dw_1.Retrieve()
FOR ll_=1 to dw_1.RowCount()
ls_status=dw_1.GetItemString(ll_,"status")
IF ls_status='A' THEN
dw_1.SetItem(ll_, 'color', 1)
ELSEIF ls_status='ERR' THEN
??????
END IF
NEXT

クエスチョンマークの部分が先に進めないところです。これにより、ステータスが「OK」のすべての行が緑で強調表示されますが、エラー行が赤く表示されないようです。背景色のプロパティでコードを操作しようとしましたが (色 = 2 の場合に条件を与えようとしました)、「式が無効です」というメッセージが表示され続けます。Modify メソッドを使用して「ERR」ステータスの行のみを色にすることはできないため、Modify メソッドもあまり役に立ちませんでした。

どんなアドバイスも役に立ちます。

4

3 に答える 3

1

SQL ステートメント自体で「色」列を設定する必要があります。

SQLのようなもの

CASE status WHEN 'ERR' THEN 'R' WHEN 'A' THEN 'G' END

次に、データウィンドウの列の背景色の式に、次のようなものを入れることができます

if (color[0] = 'R', RGB(255,0,0), if (color[0] = 'G', RGB(0,255,0), RGB(0,0,0))) 
于 2013-10-04T10:57:58.903 に答える
0

オブジェクトまたはバンドのデータウィンドウ プロパティで、背景タブに移動します。Color プロパティには、等号 (=) が付いた小さなボタンがあります。それをクリックして、列の値に基づいて RGB 値を導出する式を記述します。

私はこのことについてここに記事を書きました: PBDJ Article

于 2013-10-04T11:05:33.473 に答える