項目属性一括設定[トップ]

メインメニュー|属性設定トップ|表定義フォームイベント

作成にあたって。

  • 表(tbl)の会話処理から、「項目の表示条件→条件編集」を利用して、各項目ごとに表示条件を設定できます。が、複数項目の一括登録は複写を利用しても項目数が多い場合、多少めんどうだったりします。今回はその設定した条件を複数項目に一括して登録してしまう作品の紹介です
     
  • 特に新しい技術を使用しているわけではありません。たんなるフォームとイベントの組み合わせですので、簡単な内容です。ただ、今回は私にとって新しい発見がたくさんありましたので、是非皆様にご紹介したく、この材料に致しました。

「項目表示条件」って何?と、いう方に

  • 「項目表示条件」とは
     桐はデータベース性質上、通常はデータ行のみで、集計(合計)行はありません。しかし、行集計を利用して集計行を作成することもできます。
    そのとき集計行もデータ行も同じ設定では見分けづらいので「集計行だけ色をつけてみたい」など、ある条件の時、他の行と区別を行い、目立つようにわかりやすくする機能です。
     
  • 使用例は、上記のように「行集計」の行に色を付けるほか、「偶数行に色を付ける」、「特定の文字を含む時」など、条件の内容で設定できます。
     
  • 条件は、桐のオリジナルで用意されてる「 正ならば・負ならば・・・・・ 」他、自分で条件式を設定して、好み表示を行う事もできます。
     
  • 表示方法には、フォント名・フォント属性の変更他、背景色・文字色・セル内の表示位置等を設定できます。
     
  • 「項目表示条件」とは、名前のとおり項目に対して行いますが、同じ項目表示条件式を全項目に設定すると、行全体に反映させることもできます。
     
  • また、例えば成績表の各科目に、「 [ ] > 90 」このような比較式を設定すると、同じ比較式でもデータ値を評価し、それぞれの項目値によって、表示属性が対応されます。
     
     使用例も、参照下さい

紹介作品で、なにができるか。

起動画面(クリックで拡大)
  • まず、条件登録が簡単に設定できます。しかも複数項目に一括設定できます。(これは当然ですネ)
      
  • 現在登録してある条件内容を簡単に確認できます。(以外と便利かも)
     
  • ワンタッチ登録を自由に登録できます。
    桐の項目表示条件から使用できるのは標準で、「 正ならば・負ならば・ゼロならば・真ならば・未定義ならば・・・・・・小計5行ならば・小計6行ならば 」が、登録してありますが、「 1行置き(偶数行や奇数行の選択可能)に色を付ける、3行ごとにとか5行ごとにとか色を付ける、また指定した項目に特定文字が含まれている場合に色を付ける・・・ 」など、一度登録しておけば、どの表(tbl)にも利用できます。(登録方法に、改善の余地は残ってますが)
      
  • 条件登録の方法は、「選択項目・全項目・計算項目」など、簡単に選択できます。
     
  • 登録内容の「複写・貼り付け」を行い簡単な順序の入れ替えができます。(これも改善の余地有りです)
    応用で、他の表(tbl)の条件登録を参照して別の表(tbl)に登録も可能です。
     
  • おまけ。対象表の定義内容を、表(tbl)形式で簡単に見ることができます。(これは、今回のテーマと関係有りません) 

そして、なにができないか。

  • まず最初に、お断り致します。実は、「フォント関係」は、処理できません。
    • できないというより、登録済みの条件も削除してしまいます。
    • 項目名にフォント属性の区別文字「 FJ(日本語)・FE(英数)・FS(サイズ)・FY(スタイル) 」が使用されている場合、誤動作を起こすくらい危険です。
  • 項目条件登録は画面の都合で3個までです。すでに3個以上登録してある場合は、4個目以降は削除されます。
  • 情報取得方法が未確認の条件が、初期状態に戻ってしまいます。
    表条件・項目条件の属性で、取得できない条件は、設定時に指定しておりません。例[仕切り罫線・位取り罫線等]詳細
  • その他(私が気が付かなくてみなさんに必要な機能) 

作成後の感想

  • 設定した条件を、複数項目に設定するなんて、最初は簡単にできると思ってとりかかりましたが、大きな問題が発生。
    内容は、現在登録されてる条件を取得後、先頭から3条件を取得し、それぞれに分割しているのですが、条件の内容により途中に半角コンマが挿入されてる場合があります。
    例.正ならば背景を赤にする・・「 %P% CB3 」このようになりますが、偶数行の背景に色を付ける場合は、「 #mod(#行番号,2)=0 CB3 」このようになります。
    これを、#対応文字列利用して分けると「 #mod(#行番号 」「 2)=0 CB3 」に分かれてしまいます。
     
  • 会話処理中は「正ならば・負ならば・・・」と表示されますが、桐の内部では「%P%,%N%,・・・・」と保存されています。この「%P%,%N%,・・・・」を元の「正ならば・負ならば・・・」に戻すための変数処理にも苦労しました。

最後に

  • 今回も、たくさんの方に御助言・ご指導をいただきました。この場をかりてお礼申し上げます。どうもありがとうございました。
【多遊】 2002.5
top