過去の桐井戸端BBS (桐ver.8)
7164 一括処理で項目初期値の更新をしたい!! kaz 2000/08/16-10:15
みなさまにはいつもお世話になっております。kazと申します。

汎用性をもたせるために・・・・
すべてのデータに自分の会社名が入るとして
一括処理において初期設定で自分の会社名を1度入れておくと
以後のデータに自社名が初期値として入力されるようにするには
どんなコマンドや関数で処理すればよろしいのでしょうか?

※時々置換コマンドでやってますが、不便でしょうがありません。
7165 Re:一括処理で項目初期値の更新をしたい!! 【多遊】 2000/08/16-11:00
記事番号7164へのコメント
kazさんこんにちは。

一括処理の先頭にでも変数(定数)宣言を行い
&syamei="○○○○株式会社"とでもしておけば、
その後フォームヤレポートでも使用可能となります。

>汎用性をもたせるために・・・・

この意味がすこし分かりませんが、
同一プログラムを多数の会社で使用される場合は
変数ファイルで、書き出しておき、起動時に***.varを
読み込めば対応可能でしょう
※その場合は、***.varファイルの有無を判断して
 ファイルがない場合は変数書き出しを行う処理を追加
 して下さい。

また、フォームやレポート等を新規作成や変更する必要がある場合は、
事前に一括処理を一度動かしてからのほうがエラーが出なくなります。

>※時々置換コマンドでやってますが、不便でしょうがありません。

どこを置換されてるのかも解りませんので回答が、ずれてるかもしれませんがよろしく

7166 Re:一括処理で項目初期値の更新をしたい!! 尾形 2000/08/16-11:15
記事番号7164へのコメント
お盆で、質問の割にレスが少ないようですね。

もしくは、項目初期値に#表引き関数を使うとか。
#表引き(1,=,初期値,[行no],[初期値])のように項目初期値に設定して
初期値.tblの[初期値]を随時変更するとか。

7171 Re:一括処理で項目初期値の更新をしたい!! kaz 2000/08/16-19:49
記事番号7165へのコメント
【多遊】さん こんばんは   ご回答ありがとうございました。

>>汎用性をもたせるために・・・・
>この意味がすこし分かりませんが、
>同一プログラムを多数の会社で使用される場合は・・・・

この通りです。


>変数ファイルで、書き出しておき、起動時に***.varを
>読み込めば対応可能でしょう
>※その場合は、***.varファイルの有無を判断して
> ファイルがない場合は変数書き出しを行う処理を追加
> して下さい。

これって,社名1回登録すれば次からは再入力しなくていいと言うことですよね。

具体的にどう書けばよいのでしょうか?(おんぶにだっこですいません。)

 初回に社名をキー入力コマンドで入力 (&社名)したあと,どうすればよいのかご教授ください。

  変数書き出し  ?????
  変数読み込み  ??.VAR    ????

>>※時々置換コマンドでやってますが、不便でしょうがありません。

これは,「データ.TBL」の[社名]を置換していると言うことです。
それぞれの会社で項目初期値の再定義などできないんです。
7172 Re:一括処理で項目初期値の更新をしたい!! kaz 2000/08/16-19:52
記事番号7166へのコメント
尾形さん こんばんは  回答ありがとうございました。

>お盆で、質問の割にレスが少ないようですね。

のようです。
でも,こうやって回答してくださる方がちゃんといるこれにささえられて,
いつまでたっても初心者の私が生きていけるのです。

>もしくは、項目初期値に#表引き関数を使うとか。
>#表引き(1,=,初期値,[行no],[初期値])のように項目初期値に設定して
>初期値.tblの[初期値]を随時変更するとか。

なるほど,こういう手もあったとは。
選択肢の一つとしてやってみたいと思います。

7173 Re:一括処理で項目初期値の更新をしたい!! KH 2000/08/16-20:29
記事番号7164へのコメント
>汎用性をもたせるために・・・・
>すべてのデータに自分の会社名が入るとして
>一括処理において初期設定で自分の会社名を1度入れておくと
>以後のデータに自社名が初期値として入力されるようにするには
>どんなコマンドや関数で処理すればよろしいのでしょうか?
>
>※時々置換コマンドでやってますが、不便でしょうがありません。

 多分どの印刷物もすべてにロゴのように会社名を印字したいと言う意味ですね。
一括処理の中では、多遊さんが仰られるように、変数宣言をし、複数の一括処理に飛んでいるようでしたら、
共通変数で指定した方が良いでしょう。
後は変数に代入し、印刷するものがレポートならテキストオブジェクトでその変数を好きな所に
配置すればよいですし、一覧表ならば、フッターかヘッダーに変数を指定出来ますので
その変数を指定すればよいです。
一覧表の印刷は会社名の位置は上部か下部に限られますが、一般的には問題ないと思われます。
7174 Re:一括処理で項目初期値の更新をしたい!! KH 2000/08/16-20:40
記事番号7173へのコメント
追伸、
キー入力で代入し、変数書き出しでファイルにしておけば、
固有変数でも、一括処理が動き出す時に変数読み込みで毎度読み込むようにしておけばよいですが。
ファイルがあるなしのチェックで、ない場合は強制的に入力するようロジックしておくと完璧ですが。
項目初期値と全然関係なくなって申し訳ありませんでした。
7176 Re:一括処理で項目初期値の更新をしたい!! bonito 2000/08/16-21:07
記事番号7171へのコメント
こんにちは、【多遊】さんの代理でやって来ました。
でも、【多遊】さんの許可はとってありません (^^;

> 初回に社名をキー入力コマンドで入力 (&社名)したあと,
>どうすればよいのかご教授ください。
>
>  変数書き出し  ?????
>  変数読み込み  ??.VAR    ????

一括処理の記述順序はこんなかんじ(かなぁ?)

 変数宣言 文字列{&syamei}
 変数読みこみ "C:\settei.var",終了状態=&実行リターン
  if(&実行リターン<>1 .or #変数("syamei")="")
           
   /*--この間に社名をINPUTさせるコマンド群を書く--*/
   
   変数書き出し "C:\settei.var",{&syamei},終了状態=&実行リターン
  end

あえて汎用性と言う事でVARはCドライブのルートに置いています。

でもって、表(TBL)の[社名]項目の挿入初期値欄にただ &syameiと書いておきます。

ps.
こうすると桐から直接、件の表を開こうとすると変数&syameiが宣言されていないのでエラーとなってしまいますから、
別の会社の人の中に桐に詳しい人がいなければ、直接表を開かれていじられないだろう
というメリット(デメリット?)もあります…(かなぁ?)。

7179 Re:一括処理で項目初期値の更新をしたい!! 悲しげ 2000/08/16-22:26
記事番号7176へのコメント
私ならこんな感じかな。

ケース開始
ケース(#ファイルサイズ("社名.var")>0)
 変数読みこみ "社名.var",終了状態=&実行リターン
ケース その他
 変数宣言 文字列{&shamei}
 *確認 "社名を変数に書き出し保存しておきます。" とか
 *キー入力で社名を入力させたりして、 &shameiに社名を
 *代入させた後
 変数書き出し "社名.var",{&syamei},終了状態=&実行リターン
ケース終了

いえね、一番最初の、当該varファイルが未だ存在していない時に変数読み込みさせるとエラーになるかも(?)
しれないので、ただそれだけのことです。(^^;)
7183 Re:一括処理で項目初期値の更新をしたい!! bonito 2000/08/16-23:26
記事番号7179へのコメント
悲しげさん、お久しぶりでっす。

わたくし如きが…と思わないでもないんですが…、
(でも余ンまり自分を卑下するのもイヤミかもしんない…ですよね)

>いえね、一番最初の、当該varファイルが未だ存在していない時に
>変数読み込みさせるとエラーになるかも(?)しれないので、ただ
>それだけのことです。(^^;)

「終了状態=」のパラメータって主にその時、つまりエラーで処理(CMD又はKEV)がストップする時、
の為にあって(もちろんエラーラベル的な機能もあるけど…)
そのエラーストップをスルーする役目をおっていると、私はとりあえず認識してるんですけれども…
(もしかしたらそうじゃない場合もあるかも知れませんね…
(あったら教えて下さい m(__)m ))

っで今回の件について確認しましたところ、「終了状態=」のパラメータを付ければ、
「varファイルが未だ存在していない」時もエラーストップはしません。
もちろん、「終了状態=」をつけない場合はエラーで止まります。

ですから、前にも書きましたが、表コマンド(開く方)の代わりに今後多用されるであろう、
ウインド作成コマンドに、「終了状態=」のパラメータがないのは(少なくともHELP上では)、
おかしいンじゃないかと…(フォーム呼び出しにはありますね)…、あっ!でもSP6ではまだ見ていません (^^;

kazさん、…という訳で悲しげさん流でも(安心)、bonito風でも(ちょっと心配)、
どちらにせよ、これらの処理は、表をOPENする前に行って下さいね。

7185 イベントで行うなら 佐田 守弘 2000/08/16-23:59
記事番号7164へのコメント
kazさん
他の方々は変数ファイルを使う方法を提案されていますが、
私はイベントの中で変数値を代入する方法を提案します。

●イベントファイルの設定
イベントファイルの先頭のメインプログラムの部分(手続き定義開始以前の部分)に、
変数宣言コマンドと代入コマンドを書いておきます。
------------------------------
変数 文字列{&社名}
代入 &社名="マイカンパニー"

------------------------------
なお、イベントファイルには、上記のメイン部分だけで、イベントハンドラを
書いてなくても構いません。
イベントファイルにしておくと、フォームが開かれた後、このメインプログラム部分だけが実行され、
その段階で変数の宣言と代入が行われます。

●項目初期値の設定
項目初期値には、単に[&社名]と書くのではなく、#変数("社名") と書いてみてはどうでしょうか。
この関数を使うと、指定した変数が宣言されている時にはその値が、宣言されていない時には未定義値が返されます。
未定義値が返されれば、初期値を設定していないのと同じ作用になります。

佐田守弘(KS-00119)
7186 皆様 ありがとう\(^_^)/ kaz 2000/08/16-23:59
記事番号7174へのコメント
みなさま ありがとうございました。

すべて参考にさせていただき,勉強になりました。
で,結局 悲しげさん ご教授のようにしてうまくいきました。

項目初期値の方法も一つですが,社名は初期メニューの表示や
各種印刷のロゴ的表示だけなので,[社名]は必要なかったのです。

長い間のモヤモヤがやっと取れ晴れ晴れしい気持ちでいっぱいです。

7187 Re:「終了状態=」パラメータ 悲しげ 2000/08/17-00:08
記事番号7183へのコメント
どもっ、bonitoさん

>「終了状態=」のパラメータって主にその時、つまりエラーで処理(CMD又はKEV)
>がストップする時、の為にあって(もちろんエラーラベル的な機能もあるけど…)
>そのエラーストップをスルーする役目をおっていると、私はとりあえず認識して
>るんですけれども…

あ、そのとおりでした。私の勘違い。(^^;)
このところ、絶不調。(;_;)
7189 Re:イベントで行うなら kaz 2000/08/17-00:11
記事番号7185へのコメント
佐田さん こん**は KAZです。

イベントでもできるなんて驚きです。
以前教えていただいたデータによって表示非表示の切換をする方法ぐらいしかわからない私にとって,
こんな場合も使えるなんて・・・。

ところで,どの場面で(?)イベントファイルを作成し,
どこで使えばよいのでしょうか?


7190 イベントファイルを作る 佐田 守弘 2000/08/17-00:16
記事番号7189へのコメント
kazさん

>ところで,どの場面で(?)イベントファイルを作成し,
>どこで使えばよいのでしょうか?

フォームの属性設定ダイアログで、イベントファイルを指定します。
その後、一括処理編集でイベントを作っても構いませんが、簡単には、適当な
オブジェクトのイベントのタブを開き、適当なイベントをダブルクリックして下さい。
これでそのイベントファイルが作られ、イベントの編集モードになります。
そして、その画面でメインプログラム部分に前回のコマンドを書いて下さい。
なお、仮に作ろうとしたイベントハンドラは削除し、仮にイベントを設定した
オブジェクトのチェックマークは外しておいて下さい。

使い方:イベントは自動的に開かれて自動的に使われますから、何も考える必要はありません。

佐田守弘(KS-00119)
7195 Re:皆様 ありがとう\(^_^)/ 【多遊】 2000/08/17-01:05
記事番号7186へのコメント
kazさんは No.7186「皆様 ありがとう\(^_^)/」で書きました。
kazさんへ

もう、解決はされてるようですが、・・・

イベントファイルも一括処理も
ファイル内に書いておけば初期値として使用出来ますが

>汎用性をもたせるために・・・・
「いつ、いかなる場所で利用しても」と、いう意味では、
少し利用に注意が必要です。

たとえばそのプログラムを不特定の得意先等で紹介される
ような場合は、いっそイベントファイルや一括処理には
書かない方がいいような気もしますが。
(よけいなお世話でしたらご了承下さい)

7199 アドバイスありがとうございます kaz 2000/08/17-08:40
記事番号7195へのコメント
【多遊】さん ありがとうございます

>たとえばそのプログラムを不特定の得意先等で紹介される
>ような場合は、いっそイベントファイルや一括処理には
>書かない方がいいような気もしますが。
>(よけいなお世話でしたらご了承下さい)

今回のプログラムで扱うデータは全く差し支えないものです。
ほとんどが桐を知らないオペレーターですので
はじめからそのために作って参りました。
しかも,私の趣味性の強いものです。

ご忠告 しっかり受け止めこれからも
一括処理作成を楽しみたいと思います。

7200 変数初期値の設定について 尾形 2000/08/17-09:03
記事番号7185へのコメント
佐田さん、どうもありがとうございます。
>項目初期値には、単に[&社名]と書くのではなく、#変数("社名") と書いてみ
>てはどうでしょうか。
>この関数を使うと、指定した変数が宣言されている時にはその値が、宣言され
>ていない時には未定義値が返されます。未定義値が返されれば、初期値を設定
>していないのと同じ作用になります

知りませんでした。これはいい事を聞きました。
以前に同様の事で困ったので、苦肉の策で表引きなんかをやったのですが
合理的な解決方法があるのですね。
7238 Re:イベントファイルを作る kaz 2000/08/19-01:11
記事番号7190へのコメント
佐田 守弘さん こん**は

これからやってみます。

で、既にひとつのイベントファイルがあるのですが
これに、書き加えられるのでしょうか?
とすれば、これまでの記述が悪さしないのでしょうか?

初心者の心配は尽きません。

また、他のところでも別のイベントやりたくなりました。

戻る