過去の桐井戸端BBS (桐ver.9)
20785 絞り込んだ表をコマンドボタンで表示させたい HOSHI 2003/06/10-15:26
いつもお世話になっております。
A.TBLの一覧表フォームにコマンドをつくり、現在フォーカスしているレコードのキーとなる項目を変数値に代入し、
その変数値でB.TBLの表を絞り込んで表示させたいと考えております。
私の知識ではコマンドボタンでB.TBLを表示することしかできません。
イベントとコマンドを併用すると絞込みは「すでに表が開いています」のメッセージがでます。
イベントで表を開き、かつ絞り込んで表示させる方法があればご教示をおねがいします。
20795 Re:絞り込んだ表をコマンドで表示させたい 悲しげ 2003/06/10-22:17
記事番号20785へのコメント
どもっ、HOSHIさん
失礼ながら、殆ど暗号のような文章(^^;)なので、解読はなかなか大変です。

>A.TBLの一覧表フォームにコマンドをつくり、
「コマンド」と云うと一括処理コマンドを指しますから、これは「コマンドボタン」のことではないでしょうか?
とすれば、省略形は「ボタン」です。

>現在フォーカスしているレコードの
「フォーカス」の対象は、正確には「レコード」ではなくてむしろ「項目」
(またはオブジェクト)の方ですが、でも意味は判ります。

>キーとなる項目を変数値に代入し、
「キーとなる項目」と云われても何を指すのか不明ですが、たぶん当該レコード上の某項目だと思います。
その項目値をある変数に代入する訳ですね。

>その変数値でB.TBLの表を絞り込んで表示させたいと考えております。
>私の知識ではコマンドボタンでB.TBLを表示することしかできません。
純粋に表形式編集としてだけなら、表示するだけのことしかできないと思います。
オープン時に絞り込み等をさせたければ、仮称B.wfmなる一覧表フォームとかを用意する必要があります。

>イベントとコマンドを併用すると絞込みは「すでに表が開いています」のメ
>ッセージがでます。
さて最大の疑問。ここで云う併用した「イベントとコマンド」って何でしょう?
「イベント」とは必ず「****」イベントである筈です。
何イベントですか?
またこの時の「コマンド」ってのは多分「ボタン」のことだと思うのですが、
そのボタンの機能は何ですか?



>イベントで表を開き、かつ絞り込んで表示させる方法があれば
例えば「イベント」を使わずに、コマンドボタンだけでも可能だと思います。
以下、その例。

A.wfm上の或るボタン(仮称「bB表」)
機能    同パラ
実行条件  .not #EOF
表示    確定する
(なし)  #代入(&STR,[某項目])  ←[某項目]のデータ型は文字列と仮定
開く    B.wfm
↑または機能として「モーダルフォーム」を使うのも便利

次に、B.tblに(布石として)絞り込み条件を設定しておく。
(条件の中味は、上の例で行けば、[某項目]に&STRである)
B.wfmの枠内または枠外(ワークスペース)に仮称「b開始時」なるコマンドボタンを作る。
機能        同パラ
絞り込み_条件名  ×××←(B.tblの絞り込み条件名)

そしてオプションタブにある「開始時(S)」に「b開始時」を入れておく。

後段で「開始時」実行ボタンではなく「フォーム開始」イベントを使いたければ
B.kevに
手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 絞り込み 条件名="×××"
 *または 絞り込み [某項目]{&STR}
手続き定義終了

20797 Re:絞り込んだ表をコマンドで表示させたい うにん 2003/06/10-23:28
記事番号20795へのコメント
表 ファイル名
絞り込み 適当な条件
という一括処理を作っておいて、コマンドボタンではその一括処理を開くようにすると簡単なような気がします。
とりあえず絞り込んだ状態で表形式編集になるのは確認しましたが。

20819 Re:絞り込んだ表をコマンドで表示させたい 佐田 守弘 2003/06/12-00:37
記事番号20785へのコメント
HOSHIさん
悲しげさんが確認した部分は、私にも良く理解できない部分ですが、
それはさておき、フォーム(それも多分モーダル型のフォーム)が
開かれていて、そのフォーム上で実行されるイベントハンドラから
表コマンドで別の表を開いているのではなかろうかと勝手に仮定します。

その前提であれば、類似の事をいくつか前の質問でも書いておりますが、
まず、表コマンドで表を開いただけで、その表が表示されるわけではありません。

次に表コマンドで表を開いた場合ですが、先に開かれているフォームが
オーバーラップ型のモーダルフォームの場合には、開かれた表の前に立ちはだかって、
開いた表が前面に出てこない場合があります。

多分どちらかの様な原因かと思うのですが、状況把握ができていないので、
外しているかも知れません。

佐田守弘(KS-00119)
20829 ありがとうございます HOSHI 2003/06/12-13:29
記事番号20795へのコメント
悲しげさん、ありがとうございました。
コメントの内容をまず理解してからその結果をご報告をと思ったので遅れてしまいました。
私の質問の暗号に近い内容について、悲しげさんが推測されてコメントされたことは、
まさに私のお聞きしたかったことでした。
余計な気を使わせてしまったことをお詫びします。
ところで そのコメントの中で、設定したボタンの機能と機能パラについて、例として示していただいた

>A.wfm上の或るボタン(仮称「bB表」)
>機能    同パラ
>実行条件  .not #EOF
>表示    確定する
>(なし)  #代入(&STR,[某項目])  ←[某項目]のデータ型は文字列と仮定
>開く    B.wfm
>↑または機能として「モーダルフォーム」を使うのも便利
>
の3行目と4行目の記述がまだ理解できません。
マニュアルにも書式のみで詳しい説明がなく目下苦戦中です。
いつも思うのですがマニュアルは会話処理中心でイベントやフォームのコマンドについての
解説がほとんどないような気がします。
最近解説書もほとんど書店になく、今後もよろしくおねがいします。
20837 Re:ありがとうございます 悲しげ 2003/06/12-20:37
記事番号20829へのコメント
HOSHIさん wrote

>>A.wfm上の或るボタン(仮称「bB表」)
>>機能    同パラ
>>実行条件  .not #EOF
>>表示    確定する
>>(なし)  #代入(&STR,[某項目])  ←[某項目]のデータ型は文字列と仮定
>>開く    B.wfm
>>↑または機能として「モーダルフォーム」を使うのも便利

>の3行目と4行目の記述がまだ理解できません。

3行目は、変数&STRに[某項目]なる項目の値を代入しています。
次に開くb.tblで検索に使うのがこの&STRの値だからです。

4行目(その1)は、単にb.wfmを開くと云うことです。

「または」の4行目(その2)を次のように書き直すと
  機能      同パラ
………       ………
モーダルフォーム  B.wfm

これはb.wfmを「モーダルフォーム」として呼び出すと云うことです。
「モーダルフォーム」の説明は、話すにはあまりに長くなるので、
これは過去ログを当たって下さい。わんさかと出てきます。
20841 Re:ありがとうございます hoshi 2003/06/12-23:01
記事番号20837へのコメント
悲しげさん

>HOSHI wrote
>
>>>A.wfm上の或るボタン(仮称「bB表」)
>>>機能    同パラ
>>>実行条件  .not #EOF
>>>表示    確定する
>>>(なし)  #代入(&STR,[某項目])  ←[某項目]のデータ型は文字列と仮定
>>>開く    B.wfm
>>>↑または機能として「モーダルフォーム」を使うのも便利
>
>>の3行目と4行目の記述がまだ理解できません。
>

悲しげさん 再度のコメント感謝します。
またも言葉足らずで申し訳ありませんが、3行目と4行目との記述とは、実行条件・・・の行と表示・・・の行のことです。
「実行条件」のパラで「.not #EOF」とはA.wfmの編集対象表のことか、あるいはコマンドで呼び出そうとしている表のことなのか、
また「表示」同パラの「確定する」とはどういう意味なのかが解らないのです。
しつこいようですがよろしくお願いします。           hoshi

20842 Re:ありがとうございます 悲しげ 2003/06/12-23:27
記事番号20841へのコメント
どもっ、hoshiさん
「3行目と4行目」ってのは1行目と2行目のことだったんですね。(^^;)
ちなみに、この2行の記述は別に無くても構いません。念のためのエラー対策です。

「実行条件」について、ボタンのヘルプには次の説明がついています。
【説明】 以降の機能を実行するかどうかを実行条件式で指定する。
    <チェック条件式>が真のとき凹んだ状態になる。
この場合は、#EOF即ち終端行(最終行の次の行)では実行しないと云う実行条件を指定しています。
なぜなら、終端行にはデータがないので、変数&STRに項目値を代入することも不可能だから。

桐には訂正中のモードとそうではない表示モードがあります(詳しい説明は略)。
牡丹の機能「表示」とは、訂正中であっても表示モードに変更することです。
そのモード変更の際に、訂正中の字句を確定してしまう場合と破棄してしまう場合の二とおりがあり得る訳でして、
この場合は確定させてしまう方を指定したということです(その方が私としては自然に思えるので)。
このボタンの実行(3行目で変数&STRに某項目値を代入し、4行目で別wfmを開く)
が[某項目]の訂正真っ最中に行われることもないのかもしれませんが、「もし、
そのような時に牡丹をクリックしたら」への保険として挙げた訳です。
これら2行は、牡丹の全機能4行の内、2行は余裕があったので入れておいたのですが、
余計なお世話だったのかもしれません。(^^;)

20843 Re:ありがとうございます 悲しげ 2003/06/12-23:36
記事番号20841へのコメント
コメントもれ。(^^;)

>「実行条件」のパラで「.not #EOF」とはA.wfmの編集対象表のことか、
>あるいはコマンドで呼び出そうとしている表のことなのか、

b.tblは4行目のb.wfmを開く時に初めて開かれます。だから、この時点では
まだ開かれておらず、当然ながらa.wfmの編集対象表=a.tblのことです。
そもそもa.tblの現在処理対象行(終端行ではない)の某項目の値を、ここで
変数に取得するんでしたよね?

それと機能「表示」のパラとしては「確定する」と「破棄する」を▼をクリックすることで選ぶことができます。

戻る