過去の桐井戸端BBS (桐ver.9)
23712 フォームのテキストボックスの背景色を未定義の時は変わるようにしたい つかまさ 2003/12/05-08:22
いつもお世話になります。

フォームで編集対象表の項目Aの値が
未定義の時にそのAのテキストボックスの背景を
目立つように赤色に変えたいのです。
イベントを使うことでできるのでしょうか?
やろうとしたのですが、何イベントを使えばいいのか、判らなかったのです。

イメージとしては、
フォームで▼を使ってスクロールをしていく時、
項目Aの背景色だけを注意して見ていき、
未定義(赤色)のものを探したいのです。

未定義だけ絞り込めばいいじゃんという意見もあるでしょうが、
桐を知らない人にも分かりやすくしたいので、
どうかよろしくお願いします。
23713 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 通りすがり人 2003/12/05-08:36
記事番号23712へのコメント
>フォームで編集対象表の項目Aの値が
>未定義の時にそのAのテキストボックスの背景を
>目立つように赤色に変えたいのです。

このテキストボックスの属性で、
表示 編集属性式
の中に、
#COND([項目]=#U,"背景色'赤'")
なんてどう?

背景が「赤」だと、ものすごく見にくい〜〜と思います。
桜色? あたりが・・・

23714 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 つかまさ 2003/12/05-10:09
記事番号23713へのコメント
早いレスありがとうございます。

>このテキストボックスの属性で、
>表示 編集属性式
>の中に、
>#COND([項目]=#U,"背景色'赤'")

#COND([A]=#U,"背景色'赤'")
と、入れてみたのですが、変わりませんでした。
#Uには何か、別の値を入れるのでしょうか?
それとも、背景色モードなどが関係しているのでしょうか?

23716 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 幅田 2003/12/05-10:16
記事番号23714へのコメント
つかまささん
こんにちは。

もしかしたら、[A]は数値系の項目でしょうか?
文字列型ならこれでいいと思いますが、
数値系であれば、

#COND(#未定義値変換([A],0)=0,"背景色'赤'")

としてみてはいかがでしょうか?

>それとも、背景色モードなどが関係しているのでしょうか?

背景色モードが関係しているとすれば、指定色を選んで、
通常のときの色を指定してください。

23719 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 bonito 2003/12/05-10:57
記事番号23714へのコメント
既に管理人さんである幅田さんから回答が出ていますが

>それとも、背景色モードなどが関係しているのでしょうか?

そうです (^^)v
背景を"(継承)"に設定してあったり、ウインドウの背景色にしてあったり、
ともかく指定色以外のモードだと色は変わりません
これはフォント(前景色)の場合も同様です

それと既にお気づきのようですが編集属性式のオブジェクト属性欄には
背景モードとか前景モードとかあって通りすがり人さんの式に

#COND([項目]=#U,"背景モード'指定色'背景色'赤'")というふうに

どんどん式(?)を繋げていく事も可能です


23720 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 通りすがり人 2003/12/05-11:46
記事番号23716へのコメント
>文字列型ならこれでいいと思いますが、
>数値系であれば、
>#COND(#未定義値変換([A],0)=0,"背景色'赤'")

数値型でもOKの筈?
これなら、[A]が0の時も色が変わりますよね。
「未定義の時」だけだろうから・・・


23723 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 悲しげ 2003/12/05-11:58
記事番号23719へのコメント
どもっ、bonitoさん

× #COND([項目]=#U,"背景モード'指定色'背景色'赤'")
○ #COND([項目]=#U,"背景モード'指定色',背景色'赤'")

のように、「背景色」の左に入れるべきカンマが抜けてますよ、
とのツッコミを入れようかと思いましたが、試してみたら、
カンマが抜けていても問題なく動きましたね。(^^;)
でも、ヘルプによると複数の属性はカンマで区切りを入れるのが作法みたいですよ。

23728 Re:出来ました! つかまさ 2003/12/05-13:36
記事番号23716へのコメント
出来ました。

たしかに[A]は数値系の項目だったので、
#COND(#未定義値変換([A],0)=0,"背景色'赤'")
としたら、イメージ通りにいきました。

今日中に解決できるとは、
みなさんの早いお返事のおかげです。

通りすがり人さん、幅田さんをはじめ、
みなさん、どうもありがとうございました。
m(_ _)m
23730 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 悲しげ 2003/12/05-14:26
記事番号23720へのコメント
どもっ、通りすがり人さん
>数値型でもOKの筈?
>これなら、[A]が0の時も色が変わりますよね。
>「未定義の時」だけだろうから・・・

私もそう思いまして、試してみたらつかまささんの仰るとおりでした。(^^;)

この辺りは、「ファイル属性」の「未定義項目処理」の設定
如何によって挙動が異なりました。
(なお、変更した設定を生かすには表の閉開が必要)

#cond([A]=0,"背景色'赤'")

#cond(#未定義値変換([A],0)=0,"背景色'赤'")

#cond([A]="","背景色'赤'")
の違いをお楽しみ(?)下さい。

フォームの「編集属性式」と、表の「項目の表示条件」
(条件編集)の両方とも、V8・V9とも(全て試した訳ではないが)挙動は同じみたいです。

ファイル属性の設定如何に関わらず、「0」と「未定義」を厳密に区別したいのなら、次の判定式がお勧めです。

#横件数([A],[A])=0               (C)Ogo

23732 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 bonito 2003/12/05-14:30
記事番号23723へのコメント
悲しげさんさんからコメントもらったよぉ\(^-^)/

>でも、ヘルプによると複数の属性はカンマで区切りを入れるの
>が作法みたいですよ。
そうですか...この件(編集属性式)に関するヘルプ(っていうか
記述そのものも)何か見た事ないような気がするっす (^^;
経験則でダブルクリック、ダブルクリックの連続でしたから、
いつ通らなくなるかも判らないので(という私は今だにV8sp6)
今後はカンマで区切るようにしたいと思います

ところで
つかまささんは「出来ました」との事で
>#COND(#未定義値変換([A],0)=0,"背景色'赤'")
>としたら、イメージ通りにいきました。

えっぇ?
通りすがり人さんの
>数値型でもOKの筈?
>これなら、[A]が0の時も色が変わりますよね。
>「未定義の時」だけだろうから・・・
と同じような思いを私も持ちましたから...
後ろから訳すと(通りすがり人さんごめんなさい)

1.ゼロと未定義は違うものなのに一緒にしちゃっていいの?
 いいならいいけど...(^^;
2.数値型でもヌルはヌルだから#COND([項目]=#U,"背景色'赤'")
 は正当に評価される筈じゃ...

と思って私も試してみたら...
発見!
表のファイル属性で未定義項目値処理でゼロと未定義のうち
ゼロを選ぶとなるほど内部的には未定義ではなくゼロを返して
いるらしく背景色は変わらない...

では、未定義項目値処理をゼロとし、なおかつゼロと未定義を
区別し、つかまささんのイメージ通りにいかせるにはどうしたらよいか...
長くなりました...これからちょこっと考えてみます (^^;;;

23734 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 bonito 2003/12/05-14:37
記事番号23730へのコメント
>長くなりました...これからちょこっと考えてみます (^^;
答えの方が先に出ていた (^^;

>ファイル属性の設定如何に関わらず、「0」と「未定義」を厳
>密に区別したいのなら、次の判定式がお勧めです。
>
>#横件数([A],[A])=0               (C)Ogo

なるほど


23735 Re:編集属性式のヘルプ 悲しげ 2003/12/05-15:46
記事番号23732へのコメント
bonitoさん wrote

>そうですか...この件(編集属性式)に関するヘルプ(っていうか
>記述そのものも)何か見た事ないような気がするっす (^^;

v9ですが、結構深いところで見つけました。
フォームからだと、「表示」タブ/「編集属性式」にフォーカスを置いて、
上部の「?」をクリックし、最下部の【編集属性式】からのリンク。
あるいは、ヘルプの「トピックの検索」から直接「編集属性式」
を指定してもたどり着けます。

23737 Re:フォームのテキストボックスの背景を未定義の時は変えたい。 うにん 2003/12/05-16:11
記事番号23732へのコメント

>では、未定義項目値処理をゼロとし、なおかつゼロと未定義を
>区別し、つかまささんのイメージ通りにいかせるにはどうしたら
>よいか...

集計関数を使うんだったはず。

戻る