| 2024/05/23(Thu) 17:13:39 編集(投稿者) 2024/05/23(Thu) 16:33:06 編集(投稿者)
> そもそもなのですが、主ウィンドウ から モーダルフォームを呼び出して絞り込みをするなんて事はやりたくないのです。 > > 今回は日時の範囲を指定して絞り込みをしたかったのですが、 > 桐の表に慣れている人なら 絞り込み:比較式で > D"24/4/1"≦[]≦D"24/4/30" とか D"24/4/1"≦[]≦#月末(D"24/4/1") > とか使って絞り込めばいいだけです。 > > じゃあ何故 主ウィンドウ から モーダルフォーム 方式に挑戦したかと言えば、桐を初めて使用する人が 日付の範囲絞り込みが難しいとの事だったので、 > 絞り込み開始日 と 絞り込み終了日 を入力して絞り込む 方法をやってみたのです。 > > 桐を初めて使用する人の評価は 使いやすい との事でした。 > > だけど、桐に慣れてきたら このやり方は面倒になってくるんじゃないかな?? > と思っています。 > その時に 絞り込み:比較式 の方法を伝えようと思っています(^^)/
ジェダイの桐さん本人以外も使用するアプリケーションの場合には、桐に慣れていない人を基準にするべきですよ。
桐に慣れていない人が、勉強して上達するなどと期待しない方がよろしいのではありませんか?
だって、皆さん忙しいんですし、そもそも桐に興味がないのですから・・・
エクセルを使っている人だって、周りのみんなが使っているから仕方なしにエクセルを使っているわけです。
多くの人は、出来ればPCなんか使わないで済むといいと思っていますよ。
> 私がやりたかった事が、正に実現出来ました。 > 期間指定絞込.wfx にある cmdok の 実行条件に > ( &gRefinementStartDate <= &gRefinementEndDate ) があるので、 > 24/4/1 から 24/3/1 と入力した場合はそもそも okボタンが押せない > > 思い通りの日付が入力されたら > 主ウィンドウに戻り(期間指定絞込.wfxが閉じられ)絞り込みを実行するか しないかをメッセージボックスで問う > とにかく分かりやすかったです。
【モーダルフォームで [Esc]キーを推す事】
モーダルフォームで [Esc]キーを押すとモーダルフォームは閉じられます。
これはタイトルバーの[×]ボタンを押したのと同じです。
ただし、今回のモーダルフォームでは、開始時実行コマンド:cmdStartup で訂正モードに遷移していますから、
[Esc]キーを押すと表示モードに遷移して、もう一度 [Esc]キーを押すとモーダルフォームは閉じられます。
【本当に必要なメッセージと不要なメッセージ】
サンプルでは、デバッグ目的でメッセージボックスを表示していますが、
特に else つまり、[OK]ボタン以外、つまり[キャンセル]・ボタン[×]ボタン・[Esc]キーを押すの場合には、
メッセージボックスを出す必要はありませんよ。※デバッグ中を除く
なぜならば、モーダルフォームを[キャンセル]・ボタン[×]ボタン・[Esc]キーを押した人は、
作業の取り消しの意思を示したのですから、ご丁寧に"キャンセルしました〜(^^♪"なんて表示するのは手間を増やすだけの余計なお節介です。 ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
お節介なメッセージが欲しいのは開発者がテストをしている時だけです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
なので、実際に運用する時には、 else 側のメッセ―ボックスは表示されないようにコメントアウトしてください。
p.s.
>>昔の掲示板には、格好は「フォーム+イベント処理」であっても、気持ちは一括処理の例が非常に多いのでよくよく吟味してくださいね。 > 分かりました。 > これに関しては、もうどれを参考にしたかは分からなくなりましたが、 > 具体的なプログラムは記載されていなかったんです。 > 考え方として、主ウィンドウからモーダルフォームを開いて絞り込む手順がありますよ程度のアイデアを記載されていたと思います。
最初に見せていただいたものは、それにしてもスゴイ作例でしたね。
見た瞬間に、ほとんど気絶しそうでしたよ。( 一一)
当方は小旅行中だったのでスマホしか使えませんでした。
そのうち「解決済み」になっちゃったので気にしていなかったのですが、家に戻って拝見したらびっくり仰天でした。
今回、「イベント駆動(イベントドリブン)」の「フォーム+イベント処理」を、
「ピタゴラスイッチやドミノ倒しのようにソフトウェアを作るということ」に例えました。
ご存じのように、ピタゴラスイッチやドミノ倒しでは、あるきっかけによって、連続的に動作が継続するという仕掛けです。
「イベント駆動型(イベントドリブン)」では、これらの仕掛けを必要な数だけ用意するということになります。
従って制御の主体は、ソフトウェアの仕掛けということになりますね。
ソフトウェアの仕掛けを複数個用意するというのですから、まずフォームの機能に眼を向けてください。
例えば、コマンドボタンの機能や、モーダルフォームの機能です。
ということで、コマンド(メソッドを含む)の方の知識は後回しでいいのです。
「フォーム+イベント処理」が上手にできないという人の場合には、
長年一括処理を使用していたために、桐言語のコマンドに精通しているのですが、
フォームの属性やコマンドボタンの機能に無関心で無知な場合なのです。※こういう人は、プログラムはコマンドで作るものだと漠然と思っているのです ・・・・・・・・・・・・・・・・・・・・・・・・・
だって、フォームの事を何も知らないのですから、ピタゴラスイッチやドミノ倒しのようにソフトウェアを作るということが出来るハズがないのです。 ・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・
今回のピタゴラスイッチ(ソフトウェアの仕掛け)
日付絞り込み.wfx
オブジェクト名: cmd期間指定絞込 標題 : 期間指定絞込
機能名 機能パラメータリスト 1 表示 2 なし #代入( &gRefinementStartDate, [日付] ), #代入( &gRefinementEndDate, [日付] ) 3 モーダルフォーム "期間指定絞込.wfx" │ └ 期間指定絞込.wfx
オブジェクト名: cmdOK 標題 : OK
機能名 機能パラメータリスト 1 実行条件 ( &gRefinementStartDate <= &gRefinementEndDate ) 2 なし #代入( &gAnswer, 1 ) 3 閉じる │ ┌──────────────┘ │ 4 手続き実行 cmd期間指定絞込Click ↓ ↓ 手続き定義開始 cmd期間指定絞込Click( ) 変数宣言 自動,文字列{ &title = "cmd期間指定絞込Click( )", &msg } : : 手続き定義終了
※最初のうちは、↑上のような図(ダイアグラム)を書いてみるといいですよ。慣れれば頭の中でイメージできるようになります。
|