過去の桐井戸端BBS (桐ver.9)
30935 一括処理で結合表が開かない こた 2006/01/14-21:47
2回目の投稿です。以前は確か4年前くらいです。
桐は、解りたいけれどなかなか解らないです。

3つくらい教えて欲しいことがありますが、まずは一つづつ
一括処理のコマンドで
  結合 ○○,viw,,表番号=2,,,終了状態=&終了
  手続き終了  でメニューに戻ります。
 しかし、結合表が開いてくれません。砂時計が少し永く表示され
 その後メニューに戻ってしまうだけです。
  ウインドウ作成 や ウインドウ会話 などのコマンドを
 組み合わせては見たものの、「表が開かれていません」とエラーになりました。
 結合表を開くためには何か条件が必要なのでしょうか?
  桐 ver9-2006です
30937 Re:一括処理で結合表が開かない 佐田 守弘 2006/01/15-08:40
記事番号30935へのコメント
こたさん
結合コマンドは表コマンドと同じで、実行すると内部で結合表が開かれますが、
それだけでは結合表は表示されません。
編集を行うには、ウィンドウ作成・ウィンドウ会話コマンドと組み合わせる必要がありますが、それは行われている様ですね。

しかしそれでも表示されない原因は、書かれている内容からでは判別できません。
コマンドの記述も含めて、何か書いてない部分に原因がありそうです。

なお、結合表を開くのに時間がかかるのは、結合に時間が掛かっているためだと思います。
これは表形式で結合表を開いて確認してみて下さい。
(結合表の定義上に何か問題がありそうにも思えますが。)

●結合表を編集する方法
桐 ver9-2006であれば、表と同じでフォームを作成し、フォームの編集対象表に
結合表を設定するのが簡単です。
フォームを開いた時に結合が行われ、その結合表が編集対象になります。

佐田守弘(KS-00119)
30938 Re:一括処理で結合表が開かない アックン 2006/01/15-10:19
記事番号30937へのコメント
>コマンドの記述も含めて、何か書いてない部分に原因がありそうです。
結合コマンドに保存表名を記述してないからでは。

以下、リファレンスから抜粋
■構文
結合  <結合定義ファイル>,\
<保存表名>,\

■記述例
実表を更新しない結合表を開き、表を保存せずに閉じるようにします。
結合 "Uriage.viw",,終了状態 = &OK

実表を更新しない結合表を開き、保存する表の名前を「Work.tbl」にします。
結合 "Uriage.viw","Work.tbl",終了状態 = &OK

■パラメータ
<保存表名>
実表を更新しない結合表で、新規作成した表を保存するときの表ファイル名を指定します(計算式)。
現在のデータパス以外の場所に保存する場合は、表ファイル名をフルパスで指定します。
このパラメータを省略する場合であっても、コンマが必要です。

アックン(=^・^=)
30939 Re:一括処理で結合表が開かない こた 2006/01/15-10:34
記事番号30937へのコメント
早速のお返事有り難うございました。もう少し内容を記入しておきます。
 1つの表にたくさんの項目を作ってしまったので、とても不便だったので、結合表というのに挑戦しようと思いました。
マニュアルをちょっとだけ読み1対1の結合表を分類ごとに作りました。
一括処理は、メニュー用のフォームを作り、機能名に「一括処理に戻る」としています。
   ケース (&botum="分類名")
    手続き実行 結合表を開く
   名札 結合表を開く
      結合 "分類1.viw",,表番号=2,,,終了状態=&終了
    手続き終了     (表番号の1は元表としています。)  

>編集を行うには、ウィンドウ作成・ウィンドウ会話コマンドと組み合わせる必要
>がありますが、それは行われている様ですね。
 
  ウインドウズ作成は、表やフォームや簡易フォームやWFMのファイル名を記入する
  のでこのコマンドを実行すると”表がありません”となります。
  また、事前に結合元の表を開いておくと、表を編集する画面が表示されて結合表には
  至りません。

>なお、結合表を開くのに時間がかかるのは、結合に時間が掛かっているためだと
>思います。これは表形式で結合表を開いて確認してみて下さい。
>(結合表の定義上に何か問題がありそうにも思えますが。)

  時間はちょっと言い過ぎだったです。僅か2秒も経っていません。

>●結合表を編集する方法
>桐 ver9-2006であれば、表と同じでフォームを作成し、フォームの編集対象表に
>結合表を設定するのが簡単です。
>フォームを開いた時に結合が行われ、その結合表が編集対象になります。

  メニューのフォームの機能名に「結合表の再抽出」としてみました。すると、
  一括処理のディバックでメニュー画面を表示させます。しかし、クリックするべき表題が濃く表示されません。

  今、この一括処理に元表が表記されていないことに気づきました。
  やはり、何かこの辺りに何か問題があるのでしょうか?
  以上です。まだまだ、結合表の主キーの考え方とか教えてもらいたいことがあるのですが・・・。
  少しづつお願いしようと思います。
30940 Re:一括処理で結合表が開かない こた 2006/01/15-10:56
記事番号30938へのコメント
アックンさん お返事をあいがとうございました。


>結合  <結合定義ファイル>,\
><保存表名>,\
>■記述例
>実表を更新しない結合表を開き、表を保存せずに閉じるようにします。
>結合 "Uriage.viw",,終了状態 = &OK
>実表を更新しない結合表を開き、保存する表の名前を「Work.tbl」にします。
>結合 "Uriage.viw","Work.tbl",終了状態 = &OK
>■パラメータ
><保存表名>
>実表を更新しない結合表で、新規作成した表を保存するときの表ファイル名を指定し
>ます(計算式)。
>現在のデータパス以外の場所に保存する場合は、表ファイル名をフルパスで指定します。
>このパラメータを省略する場合であっても、コンマが必要です。

 結合表の定義のところで、「更新禁止」のところに チェックをはずしていると
 これが元表の更新が実行されると思っていました。
 また、一応、上記のコマンドも実行してみましたが、結合表が開かれず、編集することができませんでした。
30941 Re:一括処理で結合表が開かない アックン 2006/01/15-11:53
記事番号30940へのコメント
それではこうしてみては。

結合 "分類1.viw",,表番号=2,終了状態=&秒
確認 #str(&秒)
確認 #表ファイル名( 2 )
ウィンドウ作成 表
表形式編集
終了

30942 Re:一括処理で結合表が開かない こた 2006/01/15-14:28
記事番号30941へのコメント
アックンさんへ
 実行してみました。
 結合表を開くことができました。そして他の分類をも編集できました。
 ありがとうございました。
ただ、意味が全く理解できません。
 何故に終了状態に”秒”を使うのか?
 何故に秒の確認が必要なのか?
 何故に結合表の名を確認しなければならないのか?
 ウインドウズ作成では、表(つまり tbl)を作成しているのに
 表形式編集のコマンドにはその後に続くパラメーターは必要ないのか?
 確認コマンドの後の変数は省略できるの? です。
また、編集はできてもその都度ポップアップが出て確認をしなければならないのは
ちょっと面倒です。なにはともあれ会話形式でデータの更新ができるようになりました。
お世話になりました。
30943 Re:一括処理で結合表が開かない アックン 2006/01/15-16:01
記事番号30942へのコメント
こたさん
>また、編集はできてもその都度ポップアップが出て確認をしなければならないのは
>ちょっと面倒です。
確認コマンドはテスト時の確認のために書いただけですから、運用時には不要です。
削除するか、あるいは行の先頭に * を付けてコメント行(注釈行)にしてください。

結合 "分類1.viw",,表番号=2,終了状態=&秒
* 確認 #str(&秒)
* 確認 #表ファイル名( 2 )
ウィンドウ作成 表
表形式編集
終了

なお、上のようなプログラムは一括処理の場合です。
イベントの場合は、「ウィンドウ作成 表」だけでウィンドウが表示されますから、
「表形式編集」も「終了」も不要です。

> 何故に終了状態に”秒”を使うのか?
時間は関係ありません。変数宣言しないで、組み込み変数で代用しているだけです。
数値型の組み込み変数ならなんでもいいのです。
実際にはちゃんと変数宣言するのがいいですよ。

> 何故に秒の確認が必要なのか?
時間は関係ありません。結合が成功したかどうかを確認しています。
プログラムが意図したように動作しているかどうか、テスト中に確認する目的で書いた行です。

> 何故に結合表の名を確認しなければならないのか?
理由は上と同様です。

> ウインドウズ作成では、表(つまり tbl)を作成しているのに
> 表形式編集のコマンドにはその後に続くパラメーターは必要ないのか?
"ウィンドウズ作成"ではなくて"ウィンドウ作成"です。
結合で作成されたのは表(tbl)ではなく、結合表(viw)です。
で、表であれ結合表であれ、通常は「表形式編集」だけ書けばオーケーです。
細かい制御を指定したいときに、パラメーター等を書きます。

> 確認コマンドの後の変数は省略できるの? です。
省略できます。

30944 Re:一括処理で結合表が開かない アックン 2006/01/15-16:11
記事番号30943へのコメント
追加説明
> ウインドウズ作成では、表(つまり tbl)を作成しているのに
ウィンドウ作成コマンドというのは、表(tbl)を作成するのではありません。
編集対象表を表示するウィンドウを生成するのです。
今回の編集対象表になっているのは、結合表(viw)ですから、
ウィンドウを生成して結合表(viw)を表示したわけです。
30945 Re:一括処理で結合表が開かない こた 2006/01/15-17:30
記事番号30943へのコメント
いろいろとご指導をありがとうございました。
結局のところ、最低でも
>結合 "分類1.viw",,表番号=2,終了状態=&秒
>ウィンドウ作成 表
>表形式編集
の3つのコマンドがあれば良かったのですネ。
一度は試みたような気がしますが違っていたのでしょう・・・・。

>> 何故に終了状態に”秒”を使うのか?
>時間は関係ありません。変数宣言しないで、組み込み変数で代用しているだけです。
>数値型の組み込み変数ならなんでもいいのです。
>実際にはちゃんと変数宣言するのがいいですよ。
>> 何故に秒の確認が必要なのか?
>時間は関係ありません。結合が成功したかどうかを確認しています。
>プログラムが意図したように動作しているかどうか、テスト中に確認する目的で書い
>た行です。
>> 何故に結合表の名を確認しなければならないのか?
>理由は上と同様です。
>> ウインドウズ作成では、表(つまり tbl)を作成しているのに
>> 表形式編集のコマンドにはその後に続くパラメーターは必要ないのか?
>"ウィンドウズ作成"ではなくて"ウィンドウ作成"です。
>結合で作成されたのは表(tbl)ではなく、結合表(viw)です。
>で、表であれ結合表であれ、通常は「表形式編集」だけ書けばオーケーです。
>細かい制御を指定したいときに、パラメーター等を書きます。
>> 確認コマンドの後の変数は省略できるの? です。
>省略できます。

 質問に対するお返事は、理解できました。
30946 Re:一括処理で結合表が開かない アックン 2006/01/15-17:48
記事番号30945へのコメント
こたさん
>の3つのコマンドがあれば良かったのですネ。
そうです。最初に説明入れておけばよかったですね。

お願い:引用はできるだけ短くしてくださいね。

戻る