過去の桐井戸端BBS (桐ver.8)
13347 #表引きを使って休日表と本日日付を比較して「今日は休日」「今日は仕事の日」と表示させたい。 恵司 2001/10/03-17:57
休日表と本日日付を比較判定して”今日は休日です。””今日は仕事の日です”
と表示させたいのです。
#表引き((#元号日付(&年月日),1),=,休日,日付,稼働)
メニューのテキストに上記の関数をいれましたが動きません。
名案がありませんか?
13351 名案??? 宮城 2001/10/04-00:12
記事番号13347へのコメント
恵司さん、こんばんは。「#表引き(val ,op ,file ,item1 ,item2)」って、なってますよね。

「休日」は「"休日"」とするでしょうし、「日付」・「稼働」も「[日付]」・「[稼働]」とします。

「val」に関数を使った計算結果が許されたでしょうか? それと[日付]とのデータ型は一致しておりますか?

>動きません。

どうなって「動かない」と判断されるのかをお書きになったほうがよろしいですよ。

>メニューのテキストに上記の関数をいれました

これも正直申しまして、皆目見当がつかないのです。
「メニューフォーム(?)があって、テキストボックス(?)を配置してて、そのソースにああいう式(?)が書いてあって・・・、
え? テキストのソースで表引き使えたんだっけ? できないと言い切る自信もないけど、調べたり、
わざわざ試してみるのもめんどくさいなあ・・・」 (^^;;

13352 Re:本日日付 YOSHI 2001/10/04-00:22
記事番号13347へのコメント
恵司さん

>休日表と本日日付を比較判定して”今日は休日です。””今日は仕事の日です”
>と表示させたいのです。
>#表引き((#元号日付(&年月日),1),=,休日,日付,稼働)
>メニューのテキストに上記の関数をいれましたが動きません。
>名案がありませんか?

はじめまして恵司さん、そしてこちらの皆さん、YOSHIと申します。
的外れでしたらごめんなさい。
私でしたら、難しいこと考えずにメニューに表設定(あくまでダミー)をしちゃいます。
それで表引きを使います。
多分、メニューはフォームだけで作られていますよね。

随分、桐に関してはミイラ化していたもんで・・・どうなんでしょう?
力技使うとできるのかも?・・・仙人ならきっと(^^;

13354 日付の書式やデータ型などを確認して下さい 佐田 守弘 2001/10/04-01:53
記事番号13347へのコメント
恵司さん
お書きになっている事だけでは状況の的確な判断はできませんが、とりあえず思い当たる事としては、次の通りです。
●日付のデータ型や書式など
真っ先に思い当たる方法としては、日付の記述文字列の書式の違いですね。
おそらく休日表の日付には文字列型を使われているように見受けます。
しかも、どうやら和暦で記述しているのではないでしょうか。
#元号日付(&年月日),1)は、yy年mm月dd日形式の日付文字列を返しますが、
休日表の日付の形式が、文字列としてこれと完全に一致する形になっているかを
まず確認してみて下さい。

●組込み変数「&年月日」が返す値
この組込み変数に代入されている値は、本日日付とは限りません。
この変数は桐を起動した時の日付です。
もしノートパソコンでレジュームしていると、いつまでたってもこの日付は変わりません。
そして、この組込み変数を日付以外の値を代入する目的で流用する事も良く行われます。
つまり、この値は本日日付である保証はありません。

正しい本日日付は、文字列型であれば#年月日、日時型であれば#日時値ないし
#日時日付(#日時値)を使って得て下さい。

●日付には本来は日時型を使うべきでしょう
日付は、文字列型と日時型、および年、月、日の3項目を整数で扱う方法があります。
しかし、私は、必ず日時型を使う事にしております。

日時型がなかったMS-DOS版桐の頃は文字列型で表現するしかありませんでした。
文字列型は一見簡単な方法に見えますが、文字列の比較なので、
書式が一致していないと正しい比較ができません。
例えば、「平成13年10月1日」と「平成13年10月01日」は、別の日付として判断されます。

一方、日時型は、内部的には日付時刻を組み合わせた特殊な値で統一して持ち、
必要に応じて自由に表示形式を指定できるデータ型です。
ですから、「平成13年10月1日」と「平成13年10月01日」だけでなく、「2001/10/1」や
「Oct 1 2001」も同一日付として比較できます。

佐田守弘(KS-00119)
13361 Re:本日日付 恵司 2001/10/04-12:06
記事番号13347へのコメント

>#表引き((#元号日付(&年月日),1),=,休日,日付,稼働)
>メニューのテキストに上記の関数をいれましたが動きません。
どうも皆さんすいません。
エラー内容は 表引き対象が自分自身です という内容です。
メニューフォームにダミーで休日.tblとしてあります。
13371 Re:本日日付 YOSHI 2001/10/04-19:46
記事番号13361へのコメント
>エラー内容は 表引き対象が自分自身です という内容です。
>メニューフォームにダミーで休日.tblとしてあります。

ダミー.tbl  [A]  -----------------> メニューの編集対照表
休日.tbl   [日付] [スケジュール] ----> 表引き用

   #表引き(&年月日,=,"休日.tbl",[日付],[スケジュール])

この場合、休日.tblには毎日のスケジュールを入れておく必要がありますが・・・
(^^;

YOSHI

13372 自分自身は表引きできません 佐田 守弘 2001/10/04-20:09
記事番号13361へのコメント
恵司さん
>エラー内容は 表引き対象が自分自身です という内容です。
>メニューフォームにダミーで休日.tblとしてあります。
メニューフォームにダミーであっても休日.tblを対象表に指定していれば、その表を表引きする事はできません。

●自身の表は表引きできません
これは仕様ですから仕方ないですね。
自分自身も表引きできたら便利だと思いますが、自分自身の表であれば、
表引きせずとも検索コマンドで目的レコードが検索できるから、表引きは必要ないのでしょう。

何か適当なイベント、それは何が良いかは、メニューの中身が分からないので何とも言えませんが、
まあ、適当に見つくろったイベントをトリガにして、自身の表を検索すれば目的は達成できるはずです。

佐田守弘(KS-00119)
13375 Re:本日日付 宮城 2001/10/05-01:04
記事番号13361へのコメント
恵司さん、こんばんは。

自分自身を表引きしたいという発想はいかがでしょうか?
この場合、「規則」を定める表と、ワークとして扱うべき表が同一でなければならない理由ってありますか?

# むしろ、「データ」を「基準」として扱おうだなんて・・・。
13381 Re:自分自身は表引きできません 恵司 2001/10/05-17:26
記事番号13372へのコメント
>メニューの中身が分かない
毎度です。
メニューの中身はごく普通のメインメニューで、コマンドボタンを配置してあります。
メニュー画面の中に日付、曜日を表示する部分があります。
日付、曜日が表示できたので次は”今日は何の日”(記念日、稼働日)を表示させたくいと思った次第です。
13382 Re:自分自身は表引きできません YOSHI 2001/10/05-17:50
記事番号13381へのコメント
>>メニューの中身が分かない
>毎度です。
>メニューの中身はごく普通のメインメニューで、コマンドボタンを配置してありま
>す。
>メニュー画面の中に日付、曜日を表示する部分があります。
>日付、曜日が表示できたので次は”今日は何の日”(記念日、稼働日)を表示させ
>たくいと思った次第です。

それで(~~)、前回の私の例でテストして見てくれましたか?
100%実現できるはずですが、ご理解頂けましたよね。自分自身は表引きしてないんですけど、
話の進行状況からして自分自身を表引きしているように解釈されている様な気がして・・・皆さんそーなの(^^;

YOSHI

13390 Re:自分自身は表引きできません 悲しげ 2001/10/05-22:07
記事番号13381へのコメント
どもっ、恵司さん

>メニュー画面の中に日付、曜日を表示する部分があります。
>日付、曜日が表示できたので次は”今日は何の日”(記念日、稼働日)を
>表示させたくいと思った次第です。

この部分だけへのコメントですが

http://isweb8.infoseek.co.jp/animal/mokuchan/download/dl-list.htm

の作品#025に同様の処理例があります。
タイトルとも全然関係ないので、多分大きく外していそうですけど。(^^;)
13398 Re:自分自身は表引きできません 恵司 2001/10/06-08:05
記事番号13382へのコメント
>前回の私の例でテストして見てくれましたか?
>100%実現できるはずですが、ご理解頂けましたよね。自分自身は表引きしてないんですけ
>ど、話の進行状況からして自分自身を表引きしているように解釈されている様な気がし
>て・・・皆さんそーなの(^^;
>
>YOSHI
>
YOHSIさんどうも
ダミー.TBLは空の表でいいんですよね。
空の表で実行すると表示したいテキスト部分に 編集対照表がありません エラーがでます。
フォームの編集対照表は ダミー.TBLです。

13406 Re:自分自身は表引きできません 恵司 2001/10/09-16:26
記事番号13390へのコメント
悲しげさんは どうも
>どもっ、恵司さん
>
>>メニュー画面の中に日付、曜日を表示する部分があります。
>>日付、曜日が表示できたので次は”今日は何の日”(記念日、稼働日)を
>>表示させたくいと思った次第です。
>
>この部分だけへのコメントですが
>
>http://isweb8.infoseek.co.jp/animal/mokuchan/download/dl-list.htm
>
>の作品#025に同様の処理例があります。
>タイトルとも全然関係ないので、多分大きく外していそうですけど。(^^;)
かなりちかいです。
ただこの作品はマウスポインターをあてると表示しますが
メニュー画面が立ち上がった時点で判別したいのです。
一括処理でやっているのがむりなのかな?
イベント処理がいまいち解らないので、改造部分がわからず、なんぎしています。

13410 Re:自分自身は表引きできません 【多遊】 2001/10/09-23:13
記事番号13406へのコメント
恵司さん>こんにちは
>>http://isweb8.infoseek.co.jp/animal/mokuchan/download/dl-list.htm
>>
>>の作品#025に同様の処理例があります。
の、関係者です。以後よろしく

皆さんのたくさんのRESを拝見させていただきましたが、
>メニュー画面が立ち上がった時点で判別したいのです。
>一括処理でやっているのがむりなのかな?
>イベント処理がいまいち解らないので、改造部分がわからず、なんぎしています。
どうもここで、ひっかかってるような気がします。

参考をご紹介します。
もしかして・・・・・わかりやすく書いてみます。

1.記念日用の表(tbl)を準備します。
 項目名・型は、[月]整数、[日]整数、[記念日]文字列、[月日]文字列
 計算式は、[月日]に、#文字列([月],2)+#文字列([日],2)

2.フォーム("今日は.wfm")には、テキストオブジェクトで、
  変数名 &何の日を設定

3.一括処理で

  変数宣言 共通,整数{&窓,&ch}
  変数宣言 共通,文字{&ボタン,&何の日,&今日は}

  &今日は=#文字列(&月,2)+#文字列(&日,2)
  表 "記念日.tbl"
    検索 [月日]{&今日は},終了状態=&ch
    条件(&ch=1) &何の日=[記念日]
    条件(&ch<>1) &何の日="なんにもないよ"
  終了 表

ウィンドウ作成 "今日は.wfm",ハンドル=&窓

繰り返し
  ウインドウ会話 &窓,ボタン=&ボタン
  条件(&ボタン="終了")繰り返し中止
繰り返し終了
  ウィンドウ終了 &窓
終了

これで、うまくいくのではと思います。
また、属性で、曜日によって色を変えるとか設定出来ますので、お試し下さい

違うようでしたら、またご連絡下さいね!


13445 Re:自分自身は表引きできません 恵司 2001/10/12-12:15
記事番号13410へのコメント
多遊さんどうも
>これで、うまくいくのではと思います。
うまくいきました。が
>違うようでしたら、またご連絡下さいね!

多遊さんにおしえてくださった一括を組み込んだら、別ウィンドウでうごきます。
わたしの思いはメインメニューの片隅(サブフォーム的)に表示させておき、
いろんな作業(手続き実行、手続き終了)中は表示せず、メインメニューに戻ったら、表示する、という構想です。
多遊さんのホームページの#25をメインメニューでサブフォームを作りカレンダーイベントを設定すると構想通りなりますが、
前回書きました通り自動判別自動表示はしませんからこの点で少し違うのです。

13451 Re:自分自身は表引きできません 【多遊】 2001/10/12-13:20
記事番号13445へのコメント
恵司さん>こんにちは

>多遊さんにおしえてくださった一括を組み込んだら、別ウィンドウでうごきます。
>わたしの思いはメインメニューの片隅(サブフォーム的)に表示させておき、
>いろんな作業(手続き実行、手続き終了)中は表示せず、メインメニューに戻ったら、
>表示する、という構想です。

以前ご紹介いたしましたのは、単なる例で、あれを現在のメニューとかに
表示用のテキストオブジェクトを組み込んで使用ください。>の意味でしたが
言葉足らずでしたね。そうすると、新しく別のウインドウを開くことはないと思います

それから
>わたしの思いはメインメニューの片隅(サブフォーム的)に表示させておき、
>いろんな作業(手続き実行、手続き終了)中は表示せず、メインメニューに戻ったら、
>表示する、という構想です。
上記意味は、手続き実行中はメニュー自体を表示させないのか、メッセージだけ
表示させないのかその辺によっても処理方法はことなってきます。


13465 Re:自分自身は表引きできません 恵司 2001/10/13-09:15
記事番号13451へのコメント
多遊さんどうも
>以前ご紹介いたしましたのは、単なる例で、あれを現在のメニューとかに
>表示用のテキストオブジェクトを組み込んで使用ください。>の意味でしたが
>言葉足らずでしたね。そうすると、新しく別のウインドウを開くことはないと思います
テキストオブジェクトを組み込んで okです。構想通りです。
大変お世話になりました。
もっと勉強します。

戻る