過去の桐井戸端BBS (桐ver.9)
31072 イベント処理から印刷プレビュを行いたい トム 2006/02/08-23:47
ver9,sp3です。
過去のコメントに同様の話題があるのは承知の上ですが,あれからバージョンアップがされ,
年月も経っているので,新しい妙案が発見されているのでは!
と,再度,期待をこめて確認と質問させてください。
デスクトップ上に作ったショートカットメニューフォームファイルをクリックして,
メニュー画面を開いた後,データを絞り込むための選択入力(たとえば,
項目名[学年]と項目名[組])を終えて,成績表ボタンオブジェクト(機能名(ファイル>開く),
機能パラメータ(成績表.wfm)設定済み)をクリックすると,
希望通りのフォーム画面(生徒一人一人の成績単票表)が出てきます。
そして,印刷を実行する前にプレビュ画面にてデータのチェックをするために,
このフォーム画面上の印刷ボタンオブジェクト(機能名(ファイル>開く),
機能パラメータ(成績.rpt))を作りました。実際に,この印刷ボタンをクリックすると,
「モーダルフォームが存在するので実行されません」とエラーメッセージがでます。

 そこで質問ですが,このモーダルフォームとは,最初のメニュー画面のことでしょうか?
または,その後に開いた成績単票フォームのことでしょうか?
それとも,両方?
 これまで寝る時間を割いて,イベント処理を作って完成に近づいていたのですが,
このプレビュでつまづいてしまいました。桐ソフトを立ち上げて,
ファイル>開く>メニュー.wfm の流れでは,都合良くプレビュしてくれていたのですが,
直接,メニュー.wfm を開くと,「モーダルフォーム・・・」のエラーメッセージがでて困りはてています。
 過去ログもいろいろ参考にさせていただきましたが,一括処理からのメニューフォームの
立ち上げからしか有効でないとのことで,今更のような気がします。
 イベント処理の途中からでもcmdファイルに移れるライブラリコマンド等を活用してどうにかできないものでしょうか?
 皆様のお知恵をお願いいたします。
31073 Re:モーダルフォームから印刷プレビュー ONnoji 2006/02/09-00:27
記事番号31072へのコメント
>ver9,sp3です。
>過去のコメントに同様の話題があるのは承知の上ですが,あれからバージョン
>アップがされ,年月も経っているので,新しい妙案が発見されているのでは!

残念ながら、(他の人はいざ知らず)私には妙案はありません。

既に過去ログもご参照されているようですが、
念のために前後関係が分からない人のために以下に 過去ログの URL を示します。

--------------------------
桐ver.9 以降の場合ならば…

過去の桐井戸端BBS (桐ver.9)
26275 モーダルフォームで開いたフォーム上のコマンドボタンでレポート印刷をしたい
2004/05/12-08:48
 ↓
http://www.fuku3.com/~habata/kbbs/kakov9/26275.htm
--------------------------

遥かなる桐ver.8 の場合には…

過去の桐井戸端BBS (桐ver.8)
6479 モーダルwfmから印刷プレビュー(再び) 2000/06/16-17:36
 ↓
http://www.fuku3.com/~habata/kbbs/kakov8/06479.htm
--------------------------


31075 Re:モーダルフォームとは ONnoji 2006/02/09-10:42
記事番号31072へのコメント
> そこで質問ですが,このモーダルフォームとは,最初のメニュー画面のこと
>でしょうか?または,その後に開いた成績単票フォームのことでしょうか?
>それとも,両方?

どちらとも判断出来ませんが…、

次のどちらかの方法でフォームを開いた場合、
開かれたフォームはモーダルフォームになりますよ。

・フォームのコマンドボタンで実行した機能名:モーダルフォーム
 または
・イベント処理( .kev )で実行した[フォーム呼び出し]コマンド

31076 Re:イベント処理から印刷プレビュを行いたい アックン 2006/02/09-12:00
記事番号31072へのコメント
トムさん、こんにちは。
検証用にサンプルをアップしました
試すときは、"メニュー.wfm"のショートカットを作成してください。

・私も V9-2006(V9-2004 sp3)です。
質問に書いてあるとおりに作成したところ、ちゃんとプレビューを表示します。
機能名:開く で両フォームを表示しているので、どちらもモーダルではないはずです。
両フォームを表示している状態で、どちらのフォームにもマウスで行き来できた
り、"メニュー.wfm"だけ閉じることができれば、モーダルではないです。
行き来できないようなら、実際にはイベントでモーダルフォームを開いているということはありませんか。
(「フォーム呼び出し」コマンドでモーダルフォームを開きます。)

・サンプルのフォームの「ウィンドウの形式」は変更しても支障ありません。
(チャイルド・ポップアップ・オーバーラップ)

・コマンドボタンの機能名:レポート印刷 の説明には、
「モーダルフォーム表示中はプレビューはできない。」と書かれています。
そこで、"メニュー.wfm"を、機能名:モーダルフォーム 機能パラメータ:"成績.wfm"と変更したところ、
プレビューしませんけど、エラーメッセージは当然出ません。

モーダルフォームであればプレビューできないはずですから、
桐を起動していればプレビューできるということは、モーダルではないということですね。
メニューフォームのショートカットが違うものだとか?
実際にお使いのフォームやイベントを再度チェックしてみてはどうでしょう。

・桐のバージョン情報
桐 Ver.9-2006(桐9-2004 sp3)
Windows XP sp2
桐ビルド番号 #939

アックン(=^・^=)
31079 Re:イベント処理から印刷プレビュを行いたい アックン 2006/02/09-12:57
記事番号31076へのコメント
>機能名:開く で両フォームを表示しているので、どちらもモーダルではないはず
あり。「開く」で表示しているのは"成績表.wfm"だけでしたね。
「開く」で表示している"成績表.wfm"はモーダルではないです。
"メニュー.wfm"はショートカットからの(桐起動と)フォーム表示で、モーダルではないです。

31095 サンプルと比較してみました トム 2006/02/09-23:20
記事番号31079へのコメント
ONnojiさん,アックンさんコメントありがとうございます。また,アックンさんにはサンプルフォームまで作
って検証していただき感謝いたします。
 そこで,作っていただいたサンプルフォームを実際に私の作成したものと同様の環境(ネットワーク共有)で
実行してみましたら,プレビュできました。ただ,異なる点は,サンプルのようにダイレクトに成績表フォー
ムを呼び出すのでなく,メニューフォーム上で学年と組をそれぞれのリストボックスで選び,それぞれのONの
値を2つの変数&学年,&組に代入させ,イベントファイル上で全クラスの表ファイルの中から学年と組を絞り
込みさせて,成績表フォームに表示させています。
 もしかして,学年と組の選択をリストボックス使用にしているので,プレビュ時に「モーダルフォームが存在しますので・・・」とエラーがでるのかなと考え,学年と組の選択をテキストオブジェクトによるキー入力
にしたフォームを作っても同様のエラー表示が出ました。
 フォームからフォームへの移り変わりの相違点は,この学年と組の変数代入によるものだけに思えるのですが,実はこのことがモーダルフォームに関わりがあるのでしょうか?
 ご検証お願いいたします。
31096 サンプルと比較してみました/部分訂正 トム 2006/02/09-23:32
記事番号31095へのコメント
すみません,部分的に間違った設定がありました。

メニューフォーム上で学年と組をそれぞれのリストボックスで選び,それぞれのONの
>値を2つの変数&学年,&組に代入させ,イベントファイル上で全クラスの表ファイルの中から学年と組を絞り
>込みさせて,成績表フォームに表示させています。

リストボックスではなく,学年と組の2つのグループボックスの中にそれぞれトグルボタンで学年(1年,2年,3年),
組(1組,2組,3組)をチェック選択するよう設定して2つの変数&学年,&組に代入させ・・・の誤りでした。
お詫びして訂正します。
31097 Re:サンプルと比較してみました/部分訂正 ONnoji 2006/02/10-06:31
記事番号31096へのコメント
>メニューフォーム上で学年と組をそれぞれのリストボックスで選び,それぞれのONの
>>値を2つの変数&学年,&組に代入させ,イベントファイル上で全クラスの表ファイルの中から学年と組を絞り
>>込みさせて,成績表フォームに表示させています。
>リストボックスではなく,学年と組の2つのグループボックスの中にそれぞれトグルボタンで学年(1年,2年,3年),
>組(1組,2組,3組)をチェック選択するよう設定して2つの変数&学年,&組に代入させ・・・の誤りでした。

アックンさん、横レスですいません。
謎だらけなので、ここに繋げさせていただきます。

さて、「成績表フォーム」を開く時に、どのようにしていますか???

1.[ウィンドウ作成]コマンド
2.[フォーム呼び出し]コマンド

3.メソッド呼び出し @コマンドボタン名.実行( )
4.マウスでコマンドボタンをクリック

5.その他

どれでしょうか???

31098 Re:サンプルと比較してみました/部分訂正 アックン 2006/02/10-12:04
記事番号31096へのコメント
トムさん
絞り込みの箇所は関係ないと思いますけど、検証するためには、
学年組を絞り込みする一連の動作をしないでテストすればいいですよ。
(イベントであれば該当するイベント処理をオフにします。)

トムさん、再現できるファイルをアップしてもらうのがいいですよ。
データはダミーを数行入れてあればいいです。

アックン(=^・^=)
31108 Re:サンプルと比較してみました/部分訂正 ルパン 2006/02/13-10:51
記事番号31098へのコメント
ONnojiさん、アックンさんありがとうございます。
返答が遅くなりすみません。出張で見られませんでした。

ONnojiさんのご指摘を検証したら、成績フォームを開くのに最初は、ボタンの
左クリックイベント処理でフォーム呼び出しコマンドで開くよう作成していたのを、
ボタンのオブジェクト属性>コマンドボタンの機能名「開く」パラメータ「成績.wfm」に変更してプログラムを実行していました。
その際、ボタン左クリックイベントのチェックをはずすのを忘れたままで実行していました。
 
実際、そのチェックをはずして実行したら、なんとまあ、プレビュできました。
イベント処理でもプレビュできるんだと感動しているところです。

アドバイスありがとうございました。
31111 Re:サンプルと比較してみました/部分訂正 ONnoji 2006/02/13-12:39
記事番号31108へのコメント
>成績フォームを開くのに最初は、ボタン
>の左クリックイベント処理でフォーム呼び出しコマンドで開くよう作成して
>いたのを、ボタンのオブジェクト属性>コマンドボタンの機能名「開く」パラ
>メータ「成績.wfm」に変更してプログラムを実行していました。その際、ボタ
>ン左クリックイベントのチェックをはずすのを忘れたままで実行していまし
>た。

コマンドボタンをクリックした時、
・[マウス左クリック]イベントでイベントハンドラを実行する
 または
・[コマンドボタンの機能名:手続き実行]で一般手続きを実行する
の二通りの方法がありますね。

どちらの方法を使うかは、作る人の好みの問題ですが…

[マウス左クリック]イベントを利用するに場合は、
呼び出されたイベントハンドラ(さらに呼び出している手続き)で、
エラーが発生すると、[マウス左クリック]イベントの属性がオフになり、
次から[マウス左クリック]イベントが発生しなくなります。

[コマンドボタンの機能名:手続き実行]を利用する場合は、
エラーしても[コマンドボタンの機能名:手続き実行]がオフになることはありません。
また、コマンドボタンにフォーカスがあれば、Enterキーや Spaceバー でも実行可能です。
さらに便利なことに、Alt + I のようなアクセスキーも使えます。

ちなみに、[マウス左クリック]イベントを利用するに場合は、
アクセスキーを押しても[マウス左クリック]イベントは発生しないと思います。


戻る