過去の桐井戸端BBS (桐ver.8)
15836 イベントで表の任意の範囲を指定して印刷したい 磯田 2002/04/25-19:46
久しぶりに投稿します。
今イベントでプログラムを作っているのですが、表の任意の範囲を指定して印刷したいとき、
一括であれば「絞り込み 表,範囲・・・」として出来ると思うのですが、
イベントではこのコマンドは使えないとのこと。何かいい方法はありませんか。
やはりこのあたりがイベントの限界なのでしょうか?
そしたらまた最初から一括を中心に書き直さないと・・・。
15838 Re:イベントで絞り込み 悲しげ 2002/04/25-21:25
記事番号15836へのコメント
「絞り込み 表,範囲」を使ったことはありませんが、
イベントで使えない理由は「表ウィンドウ」のためではないでしょうか?
絞り込み操作自体は会話処理的に行っているようですから、代替策としては、少々面倒かもしれませんが、
表ウィンドウに似せた一覧表フォームを用意してですね(必ず「行セレクタ」を付ける)。
この行セレクタを[Shift]+マウス左クリックで範囲指定→マウス右クリックで「絞り込み−選択行」ってところくらいしか、
思い付きません、イベントからならば。

15840 イベントの限界ではありません 佐田 守弘 2002/04/26-00:54
記事番号15836へのコメント
磯田さん
方法は、既に悲しげさんが書かれている通りで、表形式のフォームで
フォーム上で範囲を指定した後、「絞り込み−選択行」を実行します。
ただしこれは代替え案ではなくて、これが正式な方法です。
この点を少し補足します。

●具体的な方法
磯田さんは「イベントで」と書かれているので、既に表形式のフォームは
作られているのだと思います。
後は、ここに「絞り込み−選択行」の機能を付ければでき上がりです。
具体的には、コマンドボタンを作り、機能名の「絞り込み−選択行」を設定するだけです。
あるいは何かのキーで操作したいのであれば、
キーダウンイベントなどで
 メソッド呼び出し @絞り込みボタン.実行()
を記述してもよいでしょう。

そして行セレクタで範囲を指定した後、このボタンを押せば、指定範囲の絞り込みが行えます。

●イベントの限界?
この話は良く聞きます。
*イベントは一括処理に比べて不便になりましたね。
*イベントは一括処理より制限が多いですね。

でも本当でしょうか。私にはこの様な話は、
「飛行機は不便ですね。高速道路を走れないんですね。」
の様に聞こえます。
実は、イベントは本当に使いこなせば一括処理よりも遥かに機能が高いはずなのです。
少なくとも私はそう思っております。

しかしそのためにはイベントを一括処理の代りに使うのではなくて、イベントをイベントして使う必要があります。
そしてそこには、一括処理からイベントへの発想の切替が必要です。
これは「自動車は道路を走るためだが、飛行機は空を飛ぶためのもの」の様な発想の違いです。
「道路の上を走る」から脱却しないと、空は飛べません。

絞り込みの例で言えば、一括処理の場合には、絞り込みコマンドを実行してから
ユーザーに範囲指定をさせます。
しかしイベントは会話処理が主体ですから、始めに範囲指定をした後、
指定範囲を絞り込むコマンドを実行します。
この順序の違いがポイントです。

アプリの使い方でも、MS-DOS時代にはまずコマンドなりメニューを指定した後、
その操作対象の指定をしました。しかしWindowsアプリは、始めに対象を指定してから、
その対象に対して何をするかを指定します。ちょうどこの関係と同じです。

また、一括処理はあらかじめ決めた手順で操作させるのに対して、イベントは、
ユーザーが会話処理を行うのを補助するのが本来の機能です。
ですから、一括処理主体でシステムを組む場合と、イベント主体でシステムを組む場合とでは、
必然的に操作の手順なり、操作イメージが異なります。
今までの一括処理と全く同じ様にイベントで作ろうとすると、そこには無理が出て繰る場合があります。

ではそれをイベントの限界と言うのかどうか。私は違うと思っています。
それが先程の自動車と飛行機の例です。
一括処理は表示モードでのみ動作します。ちょうど自動車が陸上だけを走れるのと同じです。
一方、イベントは編集モードと表示モードの両方で動作します。
そして一括処理ではできない編集中に何かを行える事が特徴でもあります。
そして一部には一括処理では行えた事が、イベントでは許されないものもあります。
一見すると制限されている様に見えますが、イベントの場合には別の形で、
しかももっと便利で優しく同じ事が行えるのです。
これは、飛行機は高速道路を走れないけど、その上空を飛ぶ事ができるのと同じです。

佐田守弘(KS-00119)

15844 Re:イベントで絞り込み natsu 2002/04/26-14:41
記事番号15836へのコメント
とびとびの行を選択するのではなく、連続した行の選択したい、
始めの行と、最後の行をクリックし、絞り込まれたらOKとすれば
次のようなイベントを使ってみて下さい
範囲指定も、行数が多くなると結構ストレスです

一覧表でフォームを作成し、行セレクタのイベント
(クリック時)に以下の処理を貼り付けましょう
変数は、フォームで局所変数として準備しておいてください

ケース開始
 ケース(&開始行=#U)
  行番号 &開始行
 ケース その他
  行番号 &終了行
  ジャンプ 行番号=&開始行
  絞り込み 行数=&終了行-&開始行+1
ケース終了

やり直したいときのために、変数をクリアするボタンがあれば
なお可でしょうか

15845 Re:イベントで絞り込み 磯田 2002/04/26-17:47
記事番号15836へのコメント
悲しげさん、佐田先生、natsuさんアドヴァイスありがとうございます。まだまだ勉強ですね。
イベントでだめだったらといつも心配なのですが、このままイベントでプログラムを書いていってみたいと思います。
これから具体的にイベントを組んでみます。また迷ったら、助けてください。
15846 Re:イベントの限界ではありません Ogo 2002/04/26-18:41
記事番号15840へのコメント

>●イベントの限界?
>この話は良く聞きます。
>*イベントは一括処理に比べて不便になりましたね。
>*イベントは一括処理より制限が多いですね。
>
>でも本当でしょうか。私にはこの様な話は、
>「飛行機は不便ですね。高速道路を走れないんですね。」
>の様に聞こえます。
>実は、イベントは本当に使いこなせば一括処理よりも遥かに機能が高いはずなの
>です。少なくとも私はそう思っております。

適材適所であるし、「スタイル」の問題でもあります。
少なくともイベントに頼ると、プログラムを記述している
ファイルがべらぼうに分散してしまい、システムメンテに
別の労力がかかるのが目に見えています。

# それに、桐8のイベントの限界は圧倒的に低いのです。


戻る