過去の桐井戸端BBS (桐ver.8)
17752 フォームのコマンドボタンに「開く」「並べ替え条件名」を設定したのですが、表は開いても並べ替えが実行されない カベタニ 2002/10/25-13:58
よろしく御願いします。

桐のV8でフォーム上のコマンドボタンにレコードの並べ替えを指定できるのでしょうか?

機能名1=開く  機能パラメータリスト="A.TBL"
機能名2=並べ替え条件名  機能パラメータリスト="A"

としたのですが実行後、表が開いても並べ替えは実行されてません。
(並べ替え条件の"A"は"A.TBL"で作成してあるものです。)
何がいけないのか、お分かりになるかた教えて下さい。
よろしく御願いします。
17754 Re:コマンドボタン ONnoji 2002/10/25-14:16
記事番号17752へのコメント
カベタニさん、こんにちは。

コマンドボタンの機能名で実行される機能は、
基本的に自身のフォームや自身のフォームの編集対象表に対してです。

   機能名       機能パラメータリスト
[1]開く        "A.TBL"
[2]並べ替え条件名   "A" ← これは自身のフォームの表が対象になります
[3]なし
[4]なし

この場合、
[2]並べ替え条件名   "A"
の結果は、

1.並べ替えられなければ中止する
2.自身のフォームの表に並べ替え名 "A" があれば並べ替えられる

のどちらかになると思います。
17756 Re:コマンドボタン カベタニ 2002/10/25-16:15
記事番号17754へのコメント
ONnojiさんありがとうございます。もう少し教えて下さい。

>コマンドボタンの機能名で実行される機能は、
>基本的に自身のフォームや自身のフォームの編集対象表に対してです。
>
>   機能名       機能パラメータリスト
>[1]開く        "A.TBL"
>[2]並べ替え条件名   "A" ← これは自身のフォームの表が対象になります

自身のフォームの表とは"A.TBL"ではないということですよね?
このフォームは白紙定義から作っていますが、編集対象表はどこで指定できるのでしょうか?

こんな質問ですみません。(汗)
よろしく御願いします。

17757 Re:コマンドボタン ONnoji 2002/10/25-17:39
記事番号17756へのコメント
>自身のフォームの表とは"A.TBL"ではないということですよね?

これは普通、フォームを作る時に決めることなので…どうなんでしょうか???

>このフォームは白紙定義から作っていますが、編集対象表はどこで指定できるのでしょうか?

フォームの編集対象表は、[フォーム]の[オブジェクトの属性]ウィンドウで指定できますが…

[簡易プロパティ]でも[詳細プロパティ]でも[編集対象表]タブで設定できます。

手前味噌ですが、以下をご覧になるとGIFイメージで確認できます。

http://www.geocities.co.jp/SiliconValley-Bay/7565/navi.htm

カベタニさんがお作りになったフォームは、表を編集するフォームではないのでしょうか???

どうもよく分からなくなりました。(@_@)

17758 Re:コマンドボタン カベタニ 2002/10/25-18:56
記事番号17757へのコメント
ONnojiさん、ご迷惑をおかけします。

編集対象表で表の指定をしてコマンドボタンを実行してみましたが、並べ替えはされませんでした。
何が間違っているのか良く分かりませんが、いろいろと自分なりに調べてみます。
ありがとうございました。
17759 Re:コマンドボタン ONnoji 2002/10/25-22:56
記事番号17758へのコメント
>編集対象表で表の指定をしてコマンドボタンを実行してみましたが、並べ替えはされませんでした。
>何が間違っているのか良く分かりませんが、いろいろと自分なりに調べてみます。

カベタニさん、こんばんは。

>このフォームは白紙定義から作っていますが、

ということは…
カベタニさんは最初に、
編集対象表:なしのフォーム(これをNULLフォームと呼びます)をお作りになったのだと思います。

NULLフォームは、[メニュー]や[変数だけを使用したフォームやダイアログボックス]に利用すると便利です。

ですから、最初は編集対象表が設定されていなかったのだろうと推測いたします。

その状態で、コマンドボタンで

   機能名       機能パラメータリスト
[1]開く         "A.TBL"
[2]並べ替え条件名   "A" ← これは自身のフォームの表が対象になります
[3]なし
[4]なし

を実行すれば、

[1]開く "A.TBL" → これによって A.tbl が開いて表編集状態になるでしょうけれど、
[2]並べ替え条件名 "A" → 並べ替えの操作対象は A.tbl ではないということになります。

つまり、[1]開く "A.TBL" によって開いた "A.TBL" には、
[2]並べ替え条件名 "A" を実行しても効果が無いということになります。

どうして効果が無いかというと、
そのフォームとは別個に開いた表(つまり"A.TBL")は、対象外だからです。

>編集対象表で表の指定をしてコマンドボタンを実行してみましたが、並べ替えはされませんでした。

編集対象表を指定した後に、コマンドボタンを実行すれば、

[1]開く "A.TBL" で A.tbl が開くことは無くなるでしょう。
[2]並べ替え条件名 "A" … 実行されたか確認することは出来ないでしょう。

そこで、
[2]並べ替え条件名 "A" が実行されたか確認するには、
メニューバー[表示]→[表編集]を選び、フォーム編集から表編集に切り替へてみると判ると思います。

もしも、並べ替え条件名 "A" のようなことを実行されたいのであれば、
「白紙からフォームを作成」するのではなく、カード型や一覧表型を選び、
編集対象表を指定するといいと思います。

※ウィザードですぐに[完了]しないで[次へ]を選べば編集対象表を指定するところが現れますよ。(^^ゞ

17774 Re:コマンドボタン カベタニ 2002/10/28-11:30
記事番号17759へのコメント
ONnojiさん、返信ありがとうございます。
とても勉強になりました。
自分がしていたことは正にONnojiさんの推測どおりです。
今、考えていることはコマンドボタンのみが表示されているフォームがあって
そのボタンを押すと"A.TBL"が"A"という並べ替え条件が実行された状態で開くようにするということなんですが、
編集対象表に”A.TBL”を指定するとその表は開かないですよね?
ONnojiさんの書かれるように表示メニューから表編集を選び確認してみると並べ替えは出来ているようです。
これはカード型などでフォームを作成し直しても同じ結果になってしまうのですが、
私のやりたいことは実現不可能なのでしょうか?

17776 Re:コマンドボタン ONnoji 2002/10/28-12:49
記事番号17774へのコメント
カベタニさん、こんにちは。

>ということなんですが、編集対象表に”A.TBL”を指定するとその表は開かないですよね?

そのとおりです。(^^ゞ
”A.TBL”を別ウィンドウで開きたければ、フォームの編集対象表(と参照表)を空欄にしてください。
つまり元に戻してください。

カベタニさんのフォームはNULLフォーム(編集対象表が無いフォームのこと)ですね。

そのフォームにはコマンドボタンだけが配置してあるということですね。

そしてコマンドボタンを実行すると、"A.TBL"が開くということですね。

それだけならば、以下のようにすればいいのですが…

   機能名       機能パラメータリスト
[1]開く         "A.TBL"
[2]なし
[3]なし
[4]なし

しかし、"A.TBL"が"A"という並べ替え条件を実行しなければならないところが問題ですね。

これって、"A"という並べ替え条件だったり、"B"という並べ替え条件だったり…するのでしょうか?

もしも、常に"A.TBL"が"A"という並べ替え条件を実行でよければ、

"A.TBL"を表編集にして、[属性]メニュー→[表の表示条件]を選んで、
[表の表示条件]ウィンドウの[表示形式]タブの[開始時に使用する並べ替え条件]に"A"を指定すればいいのですが…

>私のやりたいことは実現不可能なのでしょうか?

前にも書きましたが、コマンドボタンの機能では基本的に自身のフォームやそのフォームの編集対象表を実行対象にします。

ですから、[2]並べ替え条件名 "A" と書いても効果がないわけです。

コマンドボタンによって表をウィンドウとして開き、その表を任意の並べ替え条件で実行するには、
コマンドボタンの機能だけでは…表を開くところまではできますが…その後が無理そうです。

どうしてもそうしたいのであれば、イベントファイル( .kev )に一般手続きを作り…となると思いますが…
※この場合には桐の一括コマンドの知識が必要になります。
※慣れればそんなに難しくはありませんが、初めてだと大変です。そこまでする必要がありますか?

17778 Re:コマンドボタン カベタニ 2002/10/28-15:42
記事番号17776へのコメント
ONnojiさん早速ありがとうございます。

並べ替えの条件は"A"しか使わないので"表の表示条件"で指定することによって解決できました。
"表編集で設定"という発想の転換が私には欠けていました。(爆)

実は今、私のような素人が社内の生産管理システムを桐8で作っております。
現在は桐5の一括処理で作ったプログラムを使用しておるのですが(私が作成したものではありません)
そろそろWINDOWS版へということで動き出しました。が…
今後現在のシステムを移行することを考えると今回以上の難題が出てきそうです。
ONnojiさんの書かれた一括コマンドとかいう知識も必要になってきそうです。(笑)
今回はいろいろとありがとうございました。


17779 Re:コマンドボタン ONnoji 2002/10/28-16:33
記事番号17778へのコメント
カベタニさんは No.17778「Re:コマンドボタン」で書きました。

カベタニさん、こんにちは。

>並べ替えの条件は"A"しか使わないので"表の表示条件"で指定することによって解決できました。
>"表編集で設定"という発想の転換が私には欠けていました。(爆)

いろいろと想像しながらご返事してまいりましたが、解決されたようでホッといたしました。

>実は今、私のような素人が社内の生産管理システムを桐8で作っております。
>現在は桐5の一括処理で作ったプログラムを使用しておるのですが(私が作成したものではありません)

桐の初心者だとしても、これから機械化しようとしている仕事にはご精通されていますよね。
このことの方が大事だと思います。
桐のコマンドや関数に精通していても、よいアプリケーションは作れません。
桐のコマンドや関数は、必要な時に1つづつ覚えていけばいいのです。
あせっては駄目です。少しずつフォームを増やしていけばいいのですから。

>そろそろWINDOWS版へということで動き出しました。が…
>今後現在のシステムを移行することを考えると今回以上の難題が出てきそうです。

あくまでも私の感想ですが…
桐V5の一括処理を桐V8に移行するのならば、
桐V8から利用できるイベント処理( .kev )でアプリケーションを構築するほうが簡単です。
是非、フォーム( .wfm )+イベント( .kev )でアプリケーションを作ってみてください。

>ONnojiさんの書かれた一括コマンドとかいう知識も必要になってきそうです。(笑)
>今回はいろいろとありがとうございました。

カベタニさんに熱意さえあれば、アプリケーションを作ることは可能です。
桐の上級者の人たちも、最初は初心者だったのですから。


戻る