過去の桐井戸端BBS (桐ver.8)
19375 一つのフォームで複数の表を開きたい かまぼこ 2003/03/13-22:36
はじめまして。
最近、桐を使い始めた初心者です。
なので、すごく初歩的な質問かもしれませんが、教えてください。

今、使っているのは「Ver.8」です。

1つの表には、必ず1つのフォームを作成しないといけないのですか?

今日、売上の表を作って、その入力フォームを作りました。
売上の表を、1月・2月・3月・・・・と、分けて作りたいので、
「ファイル」→「書き出し」→「表の枠の書き出し」で、
1年分作りました。
そこで、つまづきました。

フォームも、12ヶ月分、同じフォームを作らないといけないのでしょうか?
最初に作った1つのフォームで、流用できないのでしょか?

よろしくお願い致します。
19379 Re:一つのフォームで複数の表を開きたいのですが 悲しげ 2003/03/14-00:11
記事番号19375へのコメント
どもっ、かまぼこさん

はて、困りましたね。(^^;)
ふつうはそう云う使い方はしないと思います。
逆のケース、即ち、ひとつの表を複数のフォームで使うと云うのはよくありますが。

どうしてもやろうとすれば、結構コリコリとイベント(kevを使った一括処理)を書かなければならないと思います。
例えば、フォームの編集対象表はkevの「名札 メイン」部でしかできないので、
そこで切り替えるとか、あるいは12個のサブフォームを作っておいて、
画面表示のオン・オフでひとつだけ見せるようにするとか・・・・。
要するに全く初心者向きではありません。

で、普通はどうするかと云うと、各表とも枠組み書き出しで作ったようですから、
と云うことは全く同じ構成の表ですから、折角なのでひとつの表に12ケ月分のデータを入れてしまいます。
あとは、このひとつの表から、ひとつのフォームを使って各月毎にデータを表示させるような使い方になると思います。
多分、[月]項目をグループ項目にして。

19380 訂正と補足 悲しげ 2003/03/14-00:31
記事番号19379へのコメント
#19379
× 例えば、フォームの編集対象表はkevの「名札 メイン」部でしかできないので
                                ↓
○ 例えば、フォームの編集対象表はkevの「名札 メイン」部でしか変更できないので

#19375
>売上の表を、1月・2月・3月・・・・と、分けて作りたいので、

この場合は、別表に分けるのではなく、ひとつの表において、各月のデータを絞り込むことによって
「分ける」のと同等の結果を得るようにします。
(そのためには、並べ替え条件または索引定義が意味を持ってきます)
場合によっては、月計ならぬ年計を必要とすることもあるかもしれません。
その場合、ファイルとして分けてしまっていたら逆に困ってしまいますし。

19381 Re:一つのフォームで複数の表を開きたいのですが ONnoji 2003/03/14-01:22
記事番号19375へのコメント
かまぼこさん、こんばんは。

最初に作った1つのフォームで大丈夫だと思いますよ。

まず、表を開いて…
例えば 1月.tbl を開いたとします。

表編集になったら、[表示]メニュー → [フォームの選択]を選び、
最初に作った1つのフォームを指定します。

同じように、2月.tbl を開いて、[表示]メニュー → [フォームの選択]を選ぶこともできます。


※もうひとつ方法があります。

ただし、フォームの詳細プロパティを使用する必要があります。

フォームを再定義して、
詳細プロパティでフォームの属性の[編集対象表]タブで、
[参照表]の値をそのままにして、[編集対象表]の欄を空っぽにする方法です。

こうすると、フォームを開く時に、表を選択する画面が現れますよ。


19383 もうひとつお聞きしたいことが・・・ かまぼこ 2003/03/14-08:41
記事番号19381へのコメント

悲しげさん、ONnojiさん、お返事ありがとうございます。

ONnojiさんの方法で、挑戦してみましたら、

>まず、表を開いて…
>例えば 1月.tbl を開いたとします。
>表編集になったら、[表示]メニュー → [フォームの選択]を選び、
>最初に作った1つのフォームを指定します。
>同じように、2月.tbl を開いて、[表示]メニュー → [フォームの選択]を選ぶ
>こともできます。

この方法は、出来ました!!


>※もうひとつ方法があります。
>ただし、フォームの詳細プロパティを使用する必要があります。
>フォームを再定義して、
>詳細プロパティでフォームの属性の[編集対象表]タブで、
>[参照表]の値をそのままにして、[編集対象表]の欄を空っぽにする方法です。
>
>こうすると、フォームを開く時に、表を選択する画面が現れますよ。

「フォームの詳細プロパティ」とは、フォーム定義の「オブジェクトの属性」ですよね。
私の桐がおかしいのか?普通は、上に出てくるタブは
「フォント」「編集」「イベント」「オプション」「編集対象表」「フォーム」ですよね。

なのに、「表示」「フォント」「編集対象表」のタブしか出てきません。
尚且つ、「編集対象表」タブの中も、「参照表」「「共有」「更新」・・・などなど出てこず、
「編集対象表」の設定項目だけなのです。

これは、どこに原因があるのでしょうか?

すみません。宜しくお願い致します。


19385 フォームの詳細プロパティ ONnoji 2003/03/14-09:38
記事番号19383へのコメント
かまぼこさん、こんにちは。

オブジェクトの属性に目的のタブが見つからない場合には次のように設定を変更してください。

<操作>

1.フォーム定義で[書式]メニュー → [定義画面の設定]を選びます。

2.[定義画面の設定]ウィンドウを開きます。

3.一番下と下から二番めの項目にチェックマークを付けてください。

□  操作ナビを消去する
□  詳細プロパティを使用する

この二つにチェックマークを付けてください。

なお、手前味噌ですが…以下のページでイメージが確認できます。(^^ゞ

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


19387 Re:一つのフォームで複数の表を開きたいのですが 悲しげ 2003/03/14-11:21
記事番号19381へのコメント
ONnojiさん wrote

>詳細プロパティでフォームの属性の[編集対象表]タブで、
>[参照表]の値をそのままにして、[編集対象表]の欄を空っぽにする方法です。
>こうすると、フォームを開く時に、表を選択する画面が現れますよ。

あら、こんなやり方があったんですね、知らなかったとです。(*^^*)
う〜ん、これは簡便な処理として使えそうです。
例えば、見積表のデータと実際の納品or請求伝票表のデータを切り替え表示させるとか、
あるいは転記保存済みの過去代々の旧年度データを参照する時とか
(流石に月毎とか日毎ってのには使いませんけど)。
と云う訳で、おありがとうございました。<(_ _)>
19388 ありがとうございました。 かまぼこ 2003/03/14-11:23
記事番号19385へのコメント

ONnojiさん、無事出来ました。
すごく嬉しいです。
ありがとうございました。

また何かあったら、よろしくお願い致します。

19389 Re:一つのフォームで複数の表を開きたいのですが ONnoji 2003/03/14-16:09
記事番号19387へのコメント
>う〜ん、これは簡便な処理として使えそうです。

悲しげさん、こんにちは。

試していませんが…こんな感じでしょうか(^^ゞ

*------------------------------------------------*
名札 メイン

if ( &STR = "空虚" )

 オブジェクト操作  @フォーム.編集対象表 = #未定義

end


*------------------------------------------------*

19390 Re:一つのフォームで複数の表を開きたいのですが 悲しげ 2003/03/14-18:12
記事番号19389へのコメント
どもっ、ONnojiさん

>試していませんが…こんな感じでしょうか(^^ゞ

いえいえ、逆です。極端に云えば、kevイベント自体を設定しないでも編集対象表を切り替えるような
使い方をしてみようかな、と云うことです。(^^;)

今まではですね、例えば呼び出し元において、メニュー系コマンドで表ファイルを選ばせておいてから、
呼び出し先の「名札 メイン」でその表に編集対象表を切り替える・・・のような使い方をしていたのです。
そこまでしなくていいと云う意味で「簡便な」と書いた次第です。すいません、紛らわしくて。(^^;)
19398 正解は1つの表にまとめる事です 佐田 守弘 2003/03/14-21:52
記事番号19375へのコメント
かまぼこさん
皆さんのアドバイスを拝見しました。
ONnojiさんが書かれた方法は、会話処理としてそれなりに使える簡便法ですが、
本格的に作るなら、悲しげさんが書かれている様に、
イベントのメイン部分でフォームの属性の1つである編集表を
切り替える必要があります。

●一番大事な事は
桐でデータを処理するときには、表計算の様に、1月ごとに表ファイルを分けるのでなく、
1つのファイルにデータをまとめる事です。
表計算ではそう言った使い方は難しいのですが、それが可能である点がデータベースの特徴です。

とは言え、何年分もまとめるわけではなく、一般的には1年分を1つのファイルにまとめる事が多いと思います。

では指定した月のデータだけをどうやって表示するかですが、
月をグループに指定すれば、指定された月のデータだけが表示できます。
フォームで行うには、グループ項目に日付を指定し、
月単位でグループ化する設定を行う事で可能になります。

差し当たって、月単位で表を作られるのでしょうが、いずれこの方法は、何かと問題が出て来るかと思います。
その時には、このコメントを思い出して、別々になっている表を1つの表に読み込んでまとめる事を考えてみて下さい。
それで、私が懸念している将来の各種の課題が解決できるはずです。

佐田守弘(KS-00119)

戻る