これは、Cognos の HTML オブジェクトを介して行うことができます。
HTML オブジェクトは、次の 3 つの主な方法のいずれかからその定義を取得できます。
1) ハードコードされたテキスト
2) データ項目値
3) レポート式
明らかに、最初の方法では値を動的に設定する方法がありません。2番目のものをまったく機能させることができませんでした。理由はまだわかりません。ただし、3 番目のタイプを使用して、ビジュアル スタイルを動的に設定できるようにすることができました。
解決策として、CSS で使用される標準の 16 進形式でデータベースから文字列値を取得する [Color] というデータ項目があると仮定します: #xxxxxx (例: #CCCCCC)。この例では、クエリ Query1 にあると仮定します。次の手順では、セットアップ方法について説明します。
1) リストのすぐ上に HTML アイテムを追加します
2) リストの一番下に別の HTML アイテムを追加します
3) 一番上の HTML アイテムに、次のような一意の ID を持つスパン タグを追加します。
<span id="list">
4) 下部の HTML アイテムに、終了スパン タグを追加します。
</span>
5) 他のすべての HTML アイテムの前に 3 番目の HTML アイテムを追加します。
6) HTML アイテムの「ソース タイプ」プロパティを「レポート式」に設定します。
7) レポート式に次のコードを入力します。
'<style>
#list td {
background-color: ' + [Query1].[Color] + '
}
</style>'
8) Page オブジェクトを選択し、Query プロパティを Query1 に設定し
ます。 9) Properties プロパティをクリックします。[色] 列を確認して、そのクエリ ソースの値へのページ アクセスを許可します。
データベースが提供する値に基づいて列の色を動的に設定できるようになりました。スパンを使用して、操作したい表のセルだけを分離する方法を提供しました。
テクニックは完璧ではありません。たとえば、ヘッダー セルの背景も問題の色に変更されますが、これは望ましい場合と望ましくない場合があります。これは、Cognos がヘッダーに th タグを使用せず、代わりに通常のセル (td) としてレンダリングするためです。