2017-04-10 13 views
0

私はさらに多くの行があります。そして私はステータスがAA1の行を保護し、同じ列が保護されていないAA1以外の状態の行については欲しいと思います。 だから私はこれを書いた:Powerbuilder行の列を変更する

ll_count = dw_list.RowCount() 
    if ll_count > 0 then 
    for i = 1 to ll_count 
      if dw_list.object.status[i] = 'AA1' then 
       dw_list.modify("f_change[i].Protect='1") 
       //dw_list.Object.f_change[i].modify("f_change[i].Protect='1") 
       dw_list.Object.f_change[i].Background.Color = gf_get_btnface() 
      end if 
      if dw_list.object.status[i] <> 'AA1' then    
       dw_list.modify("f_change[i].Protect='0'")   
      end if 
    next 
    end if 

しかしdw_list.modify("f_change[i].Protect='1'")が正しくありません。どちらもdw_list.Object.f_change[i].modify("f_change[i].Protect='1")dw_list.modify("f_change.Protect='1'")と書いても、すべての行が変更されます。

+0

データの行が表示されていて、行/列内のデータに基づいてそれらの行のエントリに異なる属性を持たせたい場合は、通常、データウィンドウ式が最適です。 –

答えて

0

私は、1行でプログラミングするのではなく、データウィンドウのデザインを編集することでこれを実行します。

  1. オープンデザインモードでデータウィンドウ
  2. は、「一般」タブで目的の列
  3. を選択し、「保護」近くの小さなアイコンをクリックしてください。
  4. が挿入その列を保護したりしないようにcondiction:すべてのデータのために行わif(status = 'AA1', '0', '1')


同じプロセスをデータウィンドウの列の多くの特性(色、背景色、表示、ポインタ、位置など)に適用することができます また、条件をプログラムで設定することもできますが、 「オンザフライ」で保護スキームを変更します。とにかく、原則は列自体に保護条件を設定することです。 一般的に言えば、スクリプトプログラミングなしでできるだけ多くのことをPowerBuilderで試してみてください。 U

+0

追加するだけで、Protectのような属性は行ごとに操作できないことを理解することが重要です。 Modify()はDWのテンプレートを操作するので、すべての行に影響します。あなたが望むことをする能力は、DW属性が式をサポートしているときであり、ほとんどの場合です。 – Terry

関連する問題