過去の桐井戸端BBS (桐ver.7)
584 当月と翌月の2月分のデータを絞り込みしたいのですが 井上 1998/11/23-22:05
一括処理で 例えば10と12を入力して、平成10年12月と平成11年1月の2月分のデータを一度に絞り込みしたいのですが、条件式の書き方が悪いのか、変数の代入の仕方が悪いのか、比較式の形式が違いますとかでてきてうまくいきません。
項目の設定・変数・代入の書き方等一括処理の書き方をどなたかお教え下さい。よろしくお願いします。
589 Re: ikjun 1998/11/23-23:27
記事番号584へのコメント
もうしわけありません。揚げ足を取る気はないのですが、これは「10と12を入力して、平成10年12月と平成11年12月分のデータを一度に絞り込みたい」という意味ですよね?
あとテーブルがどういう構成なのか、うまくいかなかった比較式なども書かれたほうがよろしいでしょう。
漠然とした質問は答えようがないので!
591 Re: コマッタ 1998/11/24-01:46
記事番号584へのコメント
>項目の設定・変数・代入の書き方等一括処理の書き方をどなたかお教え下さい。
●まず[項目]の設定方法が
 [年][月][日] なのか [年月日] なのか?

 [年月日]なら記入書式はどうなっているか?
 H10-11-24 .or 1998-11-24 .or 平成10年11月24日  どの方法でしょうね

●表(TBL)を新しく作るので有れば、入力のしやすさで
 [年月日]で"1998-11-24"を勧めますが(ただし絞り込み中心で考えるのであれば)
 2ヶ月先固定で良いのか? いろいろ変えられたほうが便利
---------------------------------------------------------
名札 入力年
キー入力 (10,05)-(10,40),プロンプト="何年?",初期値=&年,&入力年
   分岐 (&入力年<1900) 入力年
名札 入力月
キー入力 (12,05)-(12,40),プロンプト="何月?",初期値=&月,&入力月
   分岐 (&入力月>12) 入力月
キー入力 (14,05)-(14,40),プロンプト="何ヶ月先まで?",初期値=2,&月数
条件 (&入力月<10)代入 &検索年月=#文字列(&入力年)+"-"+"0"+#文字列(&入力月)+"-01"
条件 (&入力月>9) 代入 &検索年月=#文字列(&入力年)+"-"+#文字列(&入力月)+"-01"
条件 (#選択状態)  選択解除 *
条件 (&月数>=0)選択 [年月日]{>=(&検索年月),<=#月末(#月数加算(&検索年月,&月数,1))}
条件 (&月数<0) 選択 [年月日]{<=(&検索年月),>=#月末(#月数加算(&検索年月,&月数,1))}
--------------------------------------------------------
●動作確認してませんので・・間違ってたらゴメンなさい
 変数、入力書式が違えば適当に変えて下さい
592 ikjun 1998/11/24-03:58
記事番号589へのコメント
>一括処理で 例えば10と12を入力して、平成10年12月と平成11年1月の2
>月分のデータを一度に絞り込みしたいのですが、条件式の書き方が悪いのか、変数
>の代入の仕方が悪いのか、比較式の形式が違いますとかでてきてうまくいきませ
>ん。項目の設定・変数・代入の書き方等一括処理の書き方をどなたかお教え下さ
>い。よろしくお願いします。

失礼しました。勘違いしてました。パット見てなんのことかよくわからなかったので逆に質問してしまいました。

つまり、年をまたがる場合における比較式の書き方の問題ですね?ここからは想像ですが、[年]と[月]を別の項目にしてませんか?このままだと10年の5月から7月までのような場合を指定するのは簡単ですが、10年の12月から11年の1月というような年をまたぐ場合に困りますよね?そういう意味ですか?

もしそうなら、簡単な方法は[年月]という項目を設けて、計算式を[年]*100+[月]とします。これなら1012<=[年月]<=1101で簡単に指定できますよね。
欠点はよけいなデータをテーブル上に持つことですが、他の処理をする場合もいろいろとやりやすくなるので、ハードディスクの容量が、軽く2Gを越す時代そのくらいの欠点は無視してもいいのではないかと思ってます。

テーブルの項目自体から新しく作るのであれば、コマッタさんが別に詳しく書いてますのでそちらがよさそうですね。
あえて別の方法をというなら、入力用にダーミーのテーブルを作り、入力用フォームで年月日を入力し、それを元に絞り込みをするという方法が考えられます。
長所としては、一度入れた年月日を記憶しておくことができるので、月だけ直したいという場合は便利です。それと一度入力した年月日を取り消したい場合なども便利です。
あとVer7ならマウスオペレーションができることです。
欠点は作るのがちょっと面倒だということですね。

なんども書いているのですが、桐のVersionは書いたほうがよろしいかと思います。
桐Ver5とVer7では明らかな違いがありますので、例えばここではVer7にはVer5にはなかったデータ型日付型というのがあります。
(記憶違いがなければですが?)
これを使えるのか、使えないのかで回答が違う可能性があります。

どちらでも構わない場合もあるのですが、質問の際はVersionを書くようにするのが質問者にとっても回答者にとっても幸せなことだと思います。

あと質問はできるだけ具体的なほうが回答がつきやすいと思います。失敗例でも、書いてさえくれれば想像がつきますが、抽象的な話でなんのことかよくわからない話のでは返ってくる回答も見当はずれか曖昧な回答になりがちです。(ちょっといいわけですが?)
651 Re: 井上 1998/11/28-23:16
記事番号591へのコメント
>項目の設定・変数・代入の書き方等一括処理の書き方をどなたかお教え下さい。
どうもありがとうございます。早速つぎのようにしてみましたが、うまくいきませんでした。書き方等が不勉強で悪いのだと思います。
>●まず[項目]の設定方法が
> [年][月][日] なのか [年月日] なのか?
[年][月][日]は数値で[年月日]は#日付(#連結(”平成”#文字列[年],”年”,#文字列[月],”月1日”))としています。
> [年月日]なら記入書式はどうなっているか?
> H10-11-24 .or 1998-11-24 .or 平成10年11月24日  どの方法でしょうね
>
>●表(TBL)を新しく作るので有れば、入力のしやすさで
> [年月日]で";;1998-11-24";;を勧めますが(ただし絞り込み中心で考えるのであれば)
> 2ヶ月先固定で良いのか? いろいろ変えられたほうが便利
>---------------------------------------------------------
つぎのように書いてみましたがうまくいきませんでした。
勉強不足でお恥ずかしいのですが、なにかお気付きの点がありましたらお教え下さい。
名札 月別印刷
条件 (.NOT #行集計状態 .AND .NOT #絞り込み状態 .AND #整列状態) 整列解除
並べ替え条件登録 条件名=";;日付";;,{[年]昇順,[月]昇順,[日]昇順,[名称記述]昇順}
並べ替え 条件名=";;日付";;
 キー入力(04,02),プロンプト=”スケジュールを印刷する年を入力して下さい。”,¥
  モード=半角,終了状態=&選択,&入力年
 条件 (&選択=0)  手続き終了
 キー入力(04,17),プロンプト=”つぎに印刷する月を入力して下さい。”,¥
  モード=半角,終了状態=&選択,&入力月
 条件 (&選択=0)  手続き終了
 キー入力(04,32),プロンプト=”何ヵ月さきまで選択しますか?”,¥
  モード=半角,終了状態=&選択,&月数
 条件 (&選択=0)  手続き終了

条件 (&入力月<10)代入 &検索年月=#文字列(&入力年+1988)+”-”+”0”+#文字列(&入力月)+”-01”
条件 (&入力月>9)代入 &検索年月=#文字列(&入力年+1988)+”-”+#文字列(&入力月)+”-01”
条件 (#選択状態)選択解除 *
条件 (&月数>=0)選択 [年月日] {=(&検索年月),<=#月末(#月数加算(&検索年月,&月数,1))}
条件 (&月数<0)選択 [年月日] {<=(&検索年月),>=#月末(#月数加算(&検索年月,&月数,1))}

  条件 (#終端行=1) 確認 ”入力されたデータはありません”
  条件 (#終端行=1)  手続き終了
表表示
メニュー2 &番号,1,(5,5),”《月別スケジュール一覧表を印刷してよろしいですか?》”¥
 ,";;YES,NO”
 条件 (&番号=1) 分岐 YES3
 条件 (&番号=2) 手続き終了
名札 YES3
*プリンタ 1
 帳票印刷 ”スケジツキ”
 選択解除 *
手続き終了
**************
653 Re: ikjun 1998/11/23-22:05
記事番号651へのコメント
>つぎのように書いてみましたがうまくいきませんでした。

どのようにうまくいかなかったのですが?

>勉強不足でお恥ずかしいのですが、なにかお気付きの点がありましたらお教え下さい。

勉強不足は恥ずかしくないと思いますが、エラーメッセージがこういう風に出たとか、エラーは出なかったけれど、印刷は1軒も出てこなかったとか、結果がわからないと・
・・・・・

>条件 (&入力月<10)代入 &検索年月=#文字列(&入力年+1988)+”-”+”0”+#文字列(&入力月)+”-01”
>条件 (&入力月>9)代入 &検索年月=#文字列(&入力年+1988)+”-”+#文字列(&入力月)+”-01”
>条件 (#選択状態)選択解除 *
>条件 (&月数>=0)選択 [年月日] {=(&検索年月),<=#月末(#月数加算(&検索年月,&月数,1))}
>条件 (&月数<0)選択 [年月日] {<=(&検索年月),>=#月末(#月数加算(&検索年月,&月数,1))}

他が正しいとして、これだと「比較できないデータの型の組み合わせがあります。」というようなエラーメッセージがでるはずですが?

私の予想が正しければ、#日時文字列( 【 tmst | itvl 】 , n1 , n2, n3 ) で解決するはずです。
662 Re: 井上 1998/11/30-18:47
記事番号591へのコメント
コマッタさん おかげさまで次の様な一括処理で希望通りの事ができました。
数か月分のデータの絞り込みもでき助かりました。ありがとうございました。
--------------------------------------
******* 月別印刷 **********

名札 月別印刷
条件 (.NOT #行集計状態 .AND .NOT #絞り込み状態 .AND #整列状態) 整列解除
並べ替え条件登録 条件名=";;日付";;,{[年]昇順,[月]昇順,[日]昇順,[名称記述]昇順}
並べ替え 条件名=";;日付";;
 キー入力(04,02),プロンプト=”スケジュールを印刷する年を入力して下さい。”,¥
  モード=半角,終了状態=&選択,&入力年
 条件 (&選択=0)  手続き終了
 キー入力(04,17),プロンプト=”つぎに印刷する月を入力して下さい。”,¥
  モード=半角,終了状態=&選択,&入力月
 条件 (&選択=0)  手続き終了
 キー入力(04,17),プロンプト=”何ヵ月先まで印刷しますか?”,¥
  モード=半角,終了状態=&選択,&月数
 条件 (&選択=0)  手続き終了



代入 &年月=#連結(”平成”,#文字列(&入力年),”年”,#文字列(&入力月),”月1日”)
代入 &年月2=#文字列(#元号日付(#月数加算(&年月,&月数,2),1))
*検索条件登録 ";;検索条件01";;,{[年月]_&年月},{[年月2]_&年月2}
*検索条件登録 ";;検索条件01";;,{[年月]_&年月2}
*絞り込み 条件名=";;検索条件01";;
選択 [年月日]{>=#日付(&年月,1),=<#日付(&年月2,1)}
  条件 (#終端行=1) 確認 ”入力されたデータはありません”
  条件 (#終端行=1)  手続き終了
表表示
メニュー2 &番号,1,(5,5),”《月別スケジュール一覧表を印刷してよろしいですか?》”¥
 ,";;YES,NO”
 条件 (&番号=1) 分岐 YES3
 条件 (&番号=2) 手続き終了
名札 YES3
*プリンタ 1
 帳票印刷 ”スケジツキ”
 選択解除 *
手続き終了

戻る