DBGridの特定の列を非表示に
DBGridの特定の列をvisible=falseにする方法。
コード編
DBGrid1.getTableColumnModel().setColumnVisible($i, false);
※$iには0とか1とかの列番号を入れてください。
でもこれ、使うタイミングが難しくて、なかなかうまく消えてくれません・・・。
プロパティ編

DBGridのColumnsプロパティ(ObjectInspector)で、あらかじめ必要なItems(各列)をすべて作成しておく必要があります。

FieldnameはQueryのFieldsと同じで、大文字で書く必要があります。
この列を非表示にする場合、Visibleをfalseにします。
が、ここで問題が!
update2現在、visibleプロパティがコードの中に実装されていません・・・。
でも、アテクシ今これが絶対必要なので、実装してみました。
vcl/dbgrids.inc.phpの742行目あたりにあるcommonScriptファンクションの中の、776行目の$fname=$value['Fieldname'];の下に

下記のコードを追加します。
$visi = strtolower($value['Visible']);
if($visi == 'false')
{
echo "$this->Name.getTableColumnModel().setColumnVisible($i,false);\n";
}
※falseはbooleanじゃなく、文字列で入っています。

これでちゃんと非表示になると思います。
| 固定リンク

コメント