過去の桐井戸端BBS (桐ver.9)
27476 フォームの編集属性式で明細行の背景色を1行ごとに変えるとともにある条件の時文字色を赤色にしたい とまと 2004/08/26-03:21
とまとです。いつもお世話になります。

フォームの明細行の背景色を1行ごとに変えるとともに、明細行の項目[入場料徴収]の項目値が「あり」の場合、
文字色を赤色表示するため、フォームの表示タブにある編集属性式に次の計算式を設定しました。

項目[入場料徴収]の編集属性式
#条件選択(#MOD(#行番号,2)=1,#条件選択([入場料徴収]="あり","背景色'パールグレイ'" .and "前景色'赤'",1,"背景色'パールグレイ'"),1,#条件選択([入場料徴収]="あり","前景色'赤'"))

他の項目の編集属性式
#条件選択(#MOD(#行番号,2)=1,"背景色'パールグレイ'")

この結果、奇数行で項目[入場料徴収]の項目値が「あり」の場合、背景色、文字色とも所期の目的どおりには表示されません。
(偶数行または項目値が「あり」以外の場合は正常に表示されています。)

そこで、「"背景色'パールグレイ'" .and "前景色'赤'",1,"背景色'パールグレイ'"」の部分を
「("背景色'パールグレイ'" .and "前景色'赤'",1,"背景色'パールグレイ'")」としたり
「“"背景色'パールグレイ'" .and "前景色'赤'",1,"背景色'パールグレイ'"”」
(これはおかしいと思いながらも)としてみましたが、いずれもエラーとなりました。

このような場合、計算式をどのように記述すればいいのでしょうか。

以前、【多遊】さんのホームページの「活用桐」の講座「結合処理」において、
#条件選択の入れ子によって不具合らしき現象に出くわしたこともあり、
そのあたりとも関連があるのでしょうか。

桐9-2004です。よろしくお願いいたします。

27477 Re:「.and」の使い方 宮城 2004/08/26-08:41
記事番号27476へのコメント
とまとさん、こんにちは。内側の条件選択だけ抜き出します。

#条件選択([入場料徴収]="あり","背景色'パールグレイ'" .and "前景色'赤'",1,"背景色'パールグレイ'")

「.and」がまったく奇妙な位置についています。ひょとして「あり」のとき
背景色パールグレイ、かつ、前景色赤にしたかった?

「.and」は「なんたら、かつ、かんたらのとき」といったときの「・・・かつ・・・のとき」ですので、「あり」だったら、
背景色パールグレイ、さらに、前景色は赤にしろというのはあまりに独創的要求です。
属性をまとめて変えたいときの記述はほかの人におまかせ。

「条件」に使うものであって「結果」に使うものではありません。

27478 Re:「.and」の使い方 宮城 2004/08/26-08:47
記事番号27477へのコメント
まあ一応あてずっぽう。"背景色'パールグレイ',前景色'赤'"でどうかな?

27481 Re:「.and」の使い方 今村 誠 2004/08/26-09:27
記事番号27478へのコメント
宮城さんこんにちは
>まあ一応あてずっぽう。"背景色'パールグレイ',前景色'赤'"でどうかな?
私も条件がよくわかりませんが以下の感じでどうでしょうか?

モードは半角カタカナです
#cond(#mod(#行番号,2)=1 .and [入場料徴収]="あり",A,[入場料徴収]="あり",B)
A="背景モード'指定色',背景色'パールグレイ',前景モード'指定色',前景色'赤'"
B="前景モード'指定色',前景色'赤'"
Bに続けてB,1,C)とCに通常の色を書くこともできますが、変更の必要はないので
条件選択関数の条件に当てはまらないときに返す値(未定義値)のままで良いと思います。
27486 Re:「.and」の使い方 うにん 2004/08/26-10:27
記事番号27481へのコメント

>モードは半角カタカナです
>#cond(#mod(#行番号,2)=1 .and [入場料徴収]="あり",A,[入場料徴収]="あり",B)
>A="背景モード'指定色',背景色'パールグレイ',前景モード'指定色',前景色'赤'"
>B="前景モード'指定色',前景色'赤'"
>Bに続けてB,1,C)とCに通常の色を書くこともできますが、変更の必要はないので
>条件選択関数の条件に当てはまらないときに返す値(未定義値)のままで
>良いと思います。

この場合変えたい物と条件が全く独立しているので、.andを使わないのも一法でしょう。
#COND(#MOD(#行番号,2)=1,A,1,B)+","+#COND([入場料徴収]="あり",C,1,D)
","だけになるとまずそうなので、変更の必要のない色もBとDに書く必要がありますが、
それはそれでわかりやすいかも。

27495 Re:「.and」の使い方 とまと 2004/08/26-11:33
記事番号27478へのコメント
とまとです。
宮城さん、ありがとうございます。

>「.and」がまったく奇妙な位置についています。ひょとして「あり」のとき
>背景色パールグレイ、かつ、前景色赤にしたかった?

そのとおりです。
明細行の背景色をを1行おきに変えるとともに、[入場料徴収]の項目値が「あり」のときは文字色を赤で表示したいのです。

>「.and」は・・・・。「条件」に使うものであって「結果」に使うものではありませ
>ん。

いい勉強になりました。今後は「.and」の使い方に留意します。


>まあ一応あてずっぽう。"背景色'パールグレイ',前景色'赤'"でどうかな?
>

この記述を参考にさせていただいて、編集属性式を修正しました。その結果、
明細行のうち、データのある部分は望みどおりに表示されましたが、
終端行及び行追加時の行(奇数行)の[入場料徴収]のセルの背景色が「パールグレイ」になりません。
(他の項目のセルは「パールグレイ」になっています。)

入力ミスがあるかもわからないので、もう一度検証してみます。
27497 Re:「.and」の使い方 とまと 2004/08/26-11:48
記事番号27481へのコメント
今村さん、ありがとうございます。
>
>モードは半角カタカナです
>#cond(#mod(#行番号,2)=1 .and [入場料徴収]="あり",A,[入場料徴収]="あり",B)
>A="背景モード'指定色',背景色'パールグレイ',前景モード'指定色',前景色'赤'"
>B="前景モード'指定色',前景色'赤'"

当該編集属性式を上記計算式を参考に修正しました。
その結果、奇数行の[入場料徴収]の項目値「あり」が赤色表示されません。(偶数行は赤色表示されています。)
同時に、終端行の下の行も含めて[入場料徴収]の列全体の背景色が「パールグレイ」で表示されています。

編集属性式への入力にあたって、入力間違いがあるかもわからないので、もう一度検証してみます。

とまと
27500 Re:「.and」の使い方 宮城 2004/08/26-14:05
記事番号27495へのコメント
>この記述を参考にさせていただいて、編集属性式を修正しました。その結果、明細行
>のうち、データのある部分は望みどおりに表示されましたが、終端行及び行追加時の
>行(奇数行)の[入場料徴収]のセルの背景色が「パールグレイ」になりません。

終端行はなりませんよ。あれは「行」ではありませんゆえ。追加中の行も同様かな?

これは「仕様」ということで大目にみてください。
いまいましい思いは皆さん(私も含めて)お持ちのことと思います。

27501 Re:「.and」の使い方 今村 誠 2004/08/26-14:23
記事番号27486へのコメント
うにんさんこんにちは、そうですね!!アンドは必要ないですね。
>この場合変えたい物と条件が全く独立しているので、.andを使わないのも一法でしょう。
(「背景色」と「1行毎に」がセットで「前景色」と「項目値」がセット)
>#COND(#MOD(#行番号,2)=1,A,1,B)+","+#COND([入場料徴収]="あり",C,1,D)
>","だけになるとまずそうなので、変更の必要のない色もBとDに書く必要がありますが、
>それはそれでわかりやすいかも。
>
A="背景モード'指定色',背景色'パールグレイ'"
B="背景モード'継承'"
C="背景モード'指定色',前景色'赤'"
D="前景モード'継承'"

試していませんが、上記の方がすっきるするかもしれません。
27504 Re:「.and」を使わない(余談) 悲しげ 2004/08/26-15:34
記事番号27486へのコメント
余談ですが(^^;)

うにんさん wrote

>この場合変えたい物と条件が全く独立しているので、.andを使わないのも一法でしょう。
>#COND(#MOD(#行番号,2)=1,A,1,B)+","+#COND([入場料徴収]="あり",C,1,D)

私は今まで

 #COND(#MOD(#行番号,2)=1,A,1,B)+#COND([入場料徴収]="あり",C,1,D)

のような記述、即ち","を入れないで使ってきました。(^^;)
で、それはそれで支障なく動いてはいたのですが、そうか、正しくは
半角カンマ区切りで条件を併記するのでしょうね。
この手の記述は沢山沢山使ってしまったので、修正はボチボチと・・・。(^^;)


27511 Re:「.and」の使い方 とまと 2004/08/27-10:29
記事番号27501へのコメント
うにんさん、今村さん、ありがとうございます。

これは最初に明確にしておく必要があったかと思いますが、項目[入場料徴収]の項目値は「あり」と「なし」及び未定義値があります。
(貸室において利用者が入場料を徴収するか否かによって貸室料金が異なることと、備品等のデータも処理しており、
この場合は[入場料徴収]の項目値は未定義になる。)
この前提を十分説明していなかったことをお詫びします。

そこで、うにんさんの
>>#COND(#MOD(#行番号,2)=1,A,1,B)+","+#COND([入場料徴収]="あり",C,1,D)
と、
今村さんの
>A="背景モード'指定色',背景色'パールグレイ'"
>B="背景モード'継承'"
>C="背景モード'指定色',前景色'赤'"
>D="前景モード'継承'"
を参考にさせていただいて、編集属性式を次のように修正しました。

#条件選択(#MOD(#行番号,2)=1,"背景モード'指定色'背景色'パールグレイ'",1,"背景モード'承継'")+","+#条件選択([入場料]="あり","背景モード'指定色'前景色'赤'",1,"前景モード'承継'")

その結果、奇数行の[入場料徴収]の項目値「あり」は正しく赤色表示されますが、偶数行の「あり」は黒色表示されています。
また、奇数行の[入場料徴収]項目値が「なし」と未定義の場合の背景色が正しくパールグレイで表示されていません。

ところで、うにんさんの計算式にある
「+","+」
は、どういう意味なのでしょうか? 初めてお目にかかりましたが・・・。
とまと

27512 Re:「.and」の使い方 とまと 2004/08/27-10:41
記事番号27500へのコメント
宮城さん、ありがとうございます。

>終端行はなりませんよ。あれは「行」ではありませんゆえ。追加中の行も同様かな?
>
>これは「仕様」ということで大目にみてください。いまいましい思いは皆さん(私も
>含めて)お持ちのことと思います。
>
実務上、問題はありませんが、少々見栄えがよくないですね。
管理工学研究所の方の目に触れて改善していただければありがたいですね。

とまと
27514 Re:「.and」の使い方 とまと 2004/08/27-12:22
記事番号27511へのコメント
続きです。

フォームの作成にあたって入力者の視認性の確保のため
@明細行を奇数行と偶数行で色分けする・・・#条件選択(#MOD(#行番号,2)=1,"背景色'パールグレイ'")
A項目[入場料徴収]の項目値のうち、「あり」を赤色表示する・・・#条件選択([入場料徴収]="あり","前景色'赤'")
を重点においてい作業をすすめています。

具体の入力作業においては奇数行の中に、[入場料徴収]の値は「あり」もあれば「なし」もあり、さらに未定義になることもあります。
これは偶数行においても同様です。

したがって、私は前記@及びAを満たすために、#条件選択の入れ子構造を選びました。
しかし、望みどおりに表示できなかったので、このBBSに投稿した結果、宮城さんのご指摘を得て、ほぼ問題の解決を図ることができました。

ところが、ここで、うにんさんの
>#COND(#MOD(#行番号,2)=1,A,1,B)+","+#COND([入場料徴収]="あり",C,1,D)
に遭遇しました。

今までに見たことのない計算式の構造で、この式はどう読むのでしょうか?
#条件選択の入れ子とニュアンスが異なるように思いますが・・・
特に「+","+」の意味がわかりません。

よろしくお願いします。

とまと


27516 Re:「.and」の使い方 今村 誠 2004/08/27-13:30
記事番号27514へのコメント
とまとさんこんにちは桐9のヘルプから引用します
オブジェクトに編集属性式を設定すると、オブジェクトの表示属性をデータに応じて変更できます。
オブジェクトの編集属性式は、[オブジェクトの属性]画面の[表示]タブにある[編集属性式]に入力します。
編集条件式には、変更する属性名と値を文字列式で指定します。属性に指定する値は、引用符(’)でくくります。
複数の属性を変更する場合は、属性と属性のあいだをコンマ(,)で区切ります。
つぎの例ではフォント名を「MS Pゴシック」に、フォント サイズを「16」ポイントに変更しています。
【例】#タ”フォント名’MS Pゴシック’,フォントサイズ’16’"
属性によっては、[英文フォントの使用] のように、ON か OFF かを指定するものがあります。
チェック ボックスで指定する属性は、ON にするなら 1、OFF にするなら 0(ゼロ)を指定します。
つぎの例では、[英文フォントの使用] を ON に変更し、英文フォント名を「Arial」に変更しています。
【例】#タ”英文フォントの使用’1’,英文フォント名’Arial’”
オブジェクトの表示属性を条件に応じて変更するには、#条件選択を使用します。
つぎの例では、[数量] の値がマイナスのときだけ、文字色を赤に変更します。
【例】#タ#条件選択([数量]<0,”前景モード’指定色’,前景色’赤’")
ノート
1:属性名と属性値の英数字とカタカナは、全角と半角、大文字と小文字まで、正しく記述します。
2:[継承] を指定するには、単に「継承」とだけ記述します。前後のカッコは必要ありません。
3:どの条件にも該当しない場合は、標準の属性(編集属性式を指定していないときの属性)で表示されます。
4:レコードの値を評価する編集属性式は、終端行では評価されません。つねに標準の属性になります。

※※継承と承継は桐では区別されます。
オブジェクトの属性は記述例のコピーでなくご自分の桐でオブジェクトの属性から選んで記述された方が間違いが少ないと思います。
特にノートの(1)は重要ですので掲示板からのコピーは控えられた方がよいと思います。
27518 Re:「.and」の使い方 とまと 2004/08/27-17:13
記事番号27516へのコメント
今村さん、ありがとうございます。

>複数の属性を変更する場合は、属性と属性のあいだをコンマ(,)で区切ります。

前回の例では、属性間の「,」が抜けていましたので次のように修正しました。

#条件選択(#MOD(#行番号,2 )=1,"背景モード'指定色',背景色'パールグレイ'",1,"背景モード'承継'")+","+#条件選択([入場料徴収]="あり","背景モード'指定色',前景色'赤'",1,"前景モード'承継'")

しかし、フォームを表示してみると前回同様奇数行の[入場料徴収]の項目値「なし」及び未定義のセルの背景色がパールグレイで表示されていません。(奇数行の他のセルはパールグレイで表示されている。)

そこで、次のように修正してみました。

#条件選択(#MOD(#行番号,2 )=1,"背景モード'指定色',背景色'パールグレイ'",1,"背景モード'指定色',背景色'白'")+","+#条件選択([入場料]="あり","背景モード'指定色',前景色'赤'",1,"背景モード'指定色',前景色'黒'")

今度は、望みどおりにフォームが表示されました。
終端行及び奇数行での行追加時の当該セルの背景色がパールグレイで表示されないのは仕方ないことのようですね。

とまと

戻る