過去の桐井戸端BBS (桐ver.9)
27673 フォームで使用する変数は組み込み変数を使ってもよいのでしょうか 手塚 修 2004/09/14-18:06
メインフォーム上のコマンドボタンをクリックしモーダルフォームAを開き、
Aフォーム上にあ、い、うといくつかのコマンドボタンを配置しました。

あのコマンドボタンタブに
 1行目 機能名なし パラメータリスト #代入(&STR,"経費入力表")
 2行目 機能名なし パラメータリスト #代入(&比較式,"経費レポート")
 3行目 モーダルフォーム パラメータリスト "年指定WFM"
と記しました。コマンドボタンい、うの3行目は、上記の3行目と同じ。
1行目にはそれぞれに対応するテーブル名、2行目にも対応するレポート名を記してあります。

"年指定WFM"では、ドロップダウンリストから局所変数&指定年を取得し、表を絞込み、
コマンドボタン印刷実行にて希望する表を印刷しています。

最初にコマンドボタンあを作り、1行目・3行目を使って絞込み、印刷がうまくいった為。
モーダルフォーム、モーダルフォームで"年指定WFM"を開いたために固有変数を宣言する場がなかった為。
表とレポートが違っても、フォームは全て"年指定WFM"の為。&比較式を見つけ出した次第です。
1行目の#代入(&TR,"経費入力表")はこの桐井戸端BBSでもよく使われているように見えるのですが、
&比較式、&選択ファイル名をこのように使っても良いのでしょうか?
文言からして本来的な使い方ではない筈なのですが?

それとも?
この質問をしようとして書き始めた時、フォームAに関するイベントを作り、
固有変数を宣言し、ホーム呼び出し 年指定 なら変数を宣言する場も出来るかな
と思ったりもしていますが?

27674 Re:組み込み変数を使ってもよいのでしょうか?それとも? 宮城 2004/09/14-18:48
記事番号27673へのコメント
手塚 修さん、こんにちは。

>&比較式、&選択ファイル名をこのように使っても良いのでしょうか?
>文言からして本来的な使い方ではない筈なのですが?

問題ないですよ。あるとすれば、代入後、この変数を参照する前に絞り込み-比較式やったとかいうケースぐらいでしょうね。

KEVで変数宣言するのであれば、最初のメイン部に記述します。二重宣言にならないように注意します。


27675 Re:組み込み変数を使ってもよいのでしょうか?それとも? 悲しげ 2004/09/14-19:10
記事番号27673へのコメント
一般的には組込変数を利用してはいけないことは無いとは思います。

ただし、使い方によっては(他の思いも寄らない場所で別な値として使っていたとか)駄目な場合もあるでしょうから、
要するに使い方次第でして、一般的によいとか悪いとかは言えないでしょうね。
で、やろうとしていることもイマイチ読み切れないところもありますので、
ここはひとつ手塚さんが組込変数を使った一式を、自らが試してみて、
それで問題があるかないかを検証することがまず第一。
次に、もしそれでうまく行かないのなら、うまく行かない原因を自分で探してみること。
これが第二(データ一式を持っているのは手塚さんであって他の人ではないのですから)。
その上で、不明な点を質問するようにしてみたらいかがでしょう?

27678 Re:組み込み変数を使ってもよいのでしょうか?それとも? 佐田 守弘 2004/09/15-00:13
記事番号27673へのコメント
手塚 修さん
原則として、使って構いません。

●MS-DOS版桐時代の話
当時の桐では、一括処理を使わないと固有変数を宣言できず、桐のメニュー画面で定義できる変数は共通変数だけでした。
このため、帳票印刷(今のレポート印刷)だけで何かの変数を使おうとすると、致し方なく組込み変数を使ったものでした。

●今の桐
現在の桐ではフォームで有効な局所変数が使えます。これはフォームを開くと自動で宣言されます。
しかしレポートだけの中で変数を使おうとすると、予め変数を定義しておくか、
変数の読み込みで宣言させる必要があるので、昔の様に組込み変数を使う方法はあり得るかと思います。

●組込み変数流用の上での注意
項目集計値が代入される組込み変数や、検索や置換操作に使われる組み込み変数があります。
これらの操作を行うと桐が自動で値を代入しますから、ユーザーが使っていた値が書き換えられます。
この点だけを知っておいて下さい。

佐田守弘(KS-00119)


27681 Re:組み込み変数を使ってもよいのでしょうか?それとも? 手塚 修 2004/09/15-08:44
記事番号27678へのコメント
問題なし 使っても構わないとの由 安心しました。皆さんありがとうございました。

組み込み変数&比較式を使ってみたのは苦し紛れです。

メインフォーム→モーダルフォーム→モーダルフォームとフォームを開いてきて、2番目のモーダルフォーム上の
コマンドボタン(印刷実行)をクリックすると希望のレポートが印刷される。
希望のレポートは、"あ"の表を基にしたAorBであり、"い"の表を基にしたCorDのレポートでした。

どれにするかは、最初のモーダルフォーム上に配置したコマンドボタンを選択して決めます。
局所変数を利用し、レポート名を取得しようとしましたが、2番目のモーダルフォームが開かれた時には有効ではなくなっていました。
モーダルフォーム→モーダルフォームとフォームを開いてきたので変数を宣言する場もありませんでした。
どうすればよいのか?&STRには正しい表の名前が記されており、2番目のフォームを開いたときにも有効である。
&STRと同じようなものがないかな?
試しに&比較式を使ってみようかな?なんだかうまくいったけど、いいのかな?こんな気持ちからの質問でした。

結果は、正しく選択され望んだ印刷がなされました。

皆さんよりの使用上の注意点も理解できました。

但し、行集計を行った上での印刷等が求められてきており、やや複雑な操作の場合、イベント及び 
そこでの変数利用をと考えています。

皆さんありがとうございました。

戻る