過去の桐井戸端BBS (桐ver.8)
6028 フォーム(一覧表形式)での列固定について 中島 2000/05/13-12:59
成績処理を桐v8で行おうと思います。
そこで、フォーム(一覧表形式)で入力してもらい、成績処理をする予定なのですが科目が多くて右へ行くと
氏名が見えなくなります。
氏名の項目を列固定する事ができないのでしょうか。
もし、列固定ができないならば、他の方法がないものか。
どなたか、よろしくお教えください。
桐の初心者で色々と本などを読んでいるのですが。
6029 Re:フォーム(一覧表形式)での列固定について KH 2000/05/13-20:16
記事番号6028へのコメント
フォームで列固定は出来ないと思われます。いちばん簡単なのは表形式編集で入力するのが最も簡単だと思われます。
もしどうしても、フォームで入力する場合は、教科選択するフォ−ムをつくり、そこからコマンドボタンで各教科の
フォームに飛ばし入力する方法だと思います。
フォームを教科数+1(教科選択メニュー)作らなければなりませんが、各教科の入力フォームは1つ作れば
コピーで教科名のみ変えればよいのでたいした事はないと思います。

       V5からV8へのコンバートで四苦八苦している桐ファンより
6031 Re:フォーム(一覧表形式)での列固定について 佐田 守弘 2000/05/14-02:43
記事番号6029へのコメント
中島さん
KHさんが#6029で書かれた方法がその1つです。
別の方法としては、科目を入力する欄を複数行設け、複数行で1レコード(生徒1名)分を入力できるフォームを作る方法です。
伝票形式あるいは一覧表形式のどちらでも構いません。明細セクションを複数行作ります。
イメージとしては、

 氏名  現国 古文 漢文 数T 数U 数V
      世史 日史 地理 物理 化学 生物   

といった形です。

佐田守弘(KS-00119)
6033 Re:フォーム(一覧表形式)での列固定について KH 2000/05/14-08:20
記事番号6031へのコメント
>別の方法としては、科目を入力する欄を複数行設け、複数行で1レコード(生徒1名)
>分を入力できるフォームを作る方法です。
>伝票形式あるいは一覧表形式のどちらでも構いません。明細セクションを複数行作り
>ます。イメージとしては、
>
> 氏名  現国 古文 漢文 数T 数U 数V
>      世史 日史 地理 物理 化学 生物
>
>といった形です。

 佐田先生いつもHP等で拝見させて頂いていおり、この上ない勉強をさせて頂いておりますます。ありがとうございます。
 実は、前のコメントに書こうと思いぬけてしまいましたが、成績一覧表は個人ごとに入力することはないと思われます。
一般的には、担当教科の教科担任が成績結果を担任に提出しますので、担任は教科ごとに縦(教科ごと)に入力する事が
一般的な現状のようです。
6036 Re:フォーム(一覧表形式)での列固定について 佐田 守弘 2000/05/14-14:56
記事番号6033へのコメント
KHさん、フォロー有難うございます。
言われてみれば、学校の成績は各タンニンの共感が自分が担当する科目の成績を入力するわけですから、
担当する科目だけが入力できれば良いわけですね。
であれば、KHさんが書かれたように、科目毎の入力フォームを作るのが正解ですね。

佐田守弘(KS-00119)
6040 Re:一覧表wfmでの列固定もどき(1) 悲しげ 2000/05/14-17:45
記事番号6028へのコメント
某Accessでは(よく知らないけど)フォームの列固定はできるそうですね。でも桐v8ではできない。
で、この件は、私も何とか(少々力技でもいいから)実現させてみたいと思っていました。
で、試行途中のものを書かせていただきます。
(本記述の趣旨は「どなたかヒントを下さい」または「実験して下さい」と云うことです)

#6031から項目名等を拝借します。
全っ然余談ながら、佐田さん、今は高校の科目構成も結構変わっていまして、
例えば数学、佐田さんのお受験の頃は(私もそうだけど)、数I、数IIB、数IIIだったですが、
今は数I、数A、数II、数B、数III、数Cと云う具合になっていました。
娘が高校生になった時、私は驚きましたです。
余談終わり。(^^;)

 氏名 現国 古文 漢文 数I 数A 数学II 数B 数III 数C
 世史 日史 地理 政経 物理 化学 生物 英I 英II
 備考1 備考2 ………

方法1)
先ず[氏名]項目のみの一覧表(sub1.wfm)を作ります。
次にそれ以外の項目についての一覧表(sub2.wfm)を作ります。
sub1とsub2の行数・高さ、つまり縦の位置関係はなるべくキッチリ合わせます。
あ、フォーム属性/編集対象表タブ/許可作業釦にて「多重化」にチェックを入れておく必要があります。
もうひとつ、編集対象表を持たないカード(main.wfm)を作ります。
さて以上の上で、main.wfmをメインフォームとし、sub1を左側、sub2を右側(幅は広めに取る)に
配置したメイン・サブフォームとする訳です。
こうすれば、右側(sub2)を右にスクロールしても[氏名]列は固定されたままとなります。
右側の左端項目で[←]キーを押した時に左側wfmにフォーカスを移すことは、
kevの「キーダウン」イベントにて&仮想キーコード=37かつ「フォーカスオブジェクト取得」メソッドで左端項目か否かを判断、
次いで「フォーカス設定」メソッドでハンドル=&hwindowのsub2を指定すれば可能だと思います。
ここまではいいんですが、問題は縦スクロール時の連動の問題です。
この場合、「リンク元サブフォーム」の設定、あるいはグループ項目を設定できないように思えまして、
どのようにしていいのかが、結局はよく判りませんでした。
kevにて「グループ移動」イベントで判断する方法も途中で挫折しています。
結論は蜜柑もとひ未完です。
どなたか、ヒントをお願いします、と云うか、この続きに挑戦いただければありがたいです。(^^;)

長いので分割します。
6041 Re:一覧表wfmでの列固定もどき(2) 悲しげ 2000/05/14-17:46
記事番号6040へのコメント
続きです。

方法2)
#6033-6036にもあったように、入力フォームを切り換える方法。
この場合、単科目ずつ切り換えると云うことではなくて、1画面横いっぱいまで項目を配置します
(別マシンでも使うのなら解像度を考慮する必要あり)。
と云うのは、多項目表の一覧表wfmを作ろうとした方はお気付きかと思いますが、
一覧表wfmは最大19項目(?)までしか項目を配置できないからです(ですよね?)。
この度の例では21項目あるから、そもそもひとつの一覧表wfmでは全てカバーできない訳です。
それならいっそのこと、例えば次のように1画面に収まるようなwfmに3分割することにします。

a.wfm
 氏名 現国 古文 漢文 数I 数A 数学II 数B 数III 数C
b.wfm
 氏名 世史 日史 地理 政経 物理 化学 生物
c.wfm
 氏名 英I 英II 備考1 備考2 ………

留意点としては、当然ながら、各wfmにおいて「多重化」にチェックを入れておきます。
それと各wfmのサイズは全く同じとします。
垂直・水平位置も例えば中央揃えなりに固定しておいた方がいいです。
wfmを変更していないかのように見せるためです。
この場合、「横スクロール」と云うよりは、「頁切り換え」っぽいですけどね。
b〜c.wfmはa.wfmをリネームコピーして作るといいでしょう。
まず、a.wfmから開かれますね。
で、右端の数Cのところで[→]キーを押した時、フォームをb.wfmに切り換えます
(私ならb.wfmを「フォーム呼出し」します、ただし縦の表示位置に自信なし)。
b.wfmにおいて、左端の氏名のところで[←]キーを押した時にはフォームをa.wfmに切り換えます
(私なら呼び出したb.wfmの「閉じる」釦を実行する、戻ったa.wfmのフォーカスは右端のままのはず)。
b.wfm〜c.wfmの関係も同様です。

とは云うものの、実はまだ試してないです。
でも何だか行けそうな気がします。
どなたか試してみて下さい。(^^;)
ひとつ気掛かりなのは、フォームを切り換えた時、処理対象行を指定することは簡単なのだが、
画面上でそれが何行目に表示されるかが気掛かりです(未確認)。
これは、例えばb.wfmでレコード移動してaなりcなりに移った時も同様です
(処理対象行へのジャンプは当然としても)。

方法3)
これは方法1)と方法2)の合体です。
a〜c.wfmを全てサブフォームとして同一位置に重ねます。
で、当初はbcを画面非表示とし(aのみ画面表示)、随時bまたはcを「画面表示="1"」とする。
「随時」とは、例えば左右端項目で左右矢印キーを押した時を意味します。
こちらの方が幾分簡単かもしれません。

後ろふたつの方法は、私も近い内に試してみようと思ってます。
6043 Re:一覧表wfmでの列固定もどき(3) 悲しげ 2000/05/14-21:29
記事番号6041へのコメント
大事なことを書き忘れました。
方法3)では、b c.wfmとも氏名項目は必ず入れます。(^^;)
6048 Re:一覧表wfmでの列固定もどき(3) 佐田 守弘 2000/05/15-00:48
記事番号6043へのコメント
悲しげさん
「一覧表wfmでの列固定もどき」の壮大な計画を読ませて頂きました。
 >(本記述の趣旨は「どなたかヒントを下さい」または
 > 「実験して下さい」と云うことです)
との事なので、コメントさせて頂きます。

ざっと読んだだけで、実際に試したわけではないのですが、問題は、#6040で
書かれているように、

>問題は縦スクロール時の連動の問題です。
>この場合、「リンク元サブフォーム」の設定、あるいは
>グループ項目を設定できないように思えまして、
>どのようにしていいのかが、結局はよく判りませんでした。

にあると思います。

メインフォームが一覧表ないし伝票で、サブフォームがカードであれば、サブフォーム側のグループ項目の設定で、
メインフォームにリンクしてれコードが移動します。
しかしこの場合、双方が一覧表ですから、グループ項目でのリンク設定で連動させることは不可能なのでは。

双方のフォームの表示位置を合わせるようにどうやってスクロールするかの方法は簡単ではなさそうに見えます。
一つの苦肉の策として、レコード移動イベントが発生したら、このイベントを一時無効にし、双方のフォームで先頭行に
ジャンプした後、もう一度元の行にジャンプして戻るといった方法が考えられそうですけど、
余りにぎごちない方法になりそうですね。

佐田守弘(KS-00119)
6051 回答ありがとうござます 中島 2000/05/15-17:35
記事番号6028へのコメント
KHさん、佐田さん、悲しげさん本当にありがとうございます。
とても参考になりました。

私は高校で成績処理を担当しています。桐v5を使用しています。
私の高校では試験が終わると教科担任が成績をつけその伝票をホーム担任に渡します。
そこでホーム担任が入力を行い私が一覧表や通知票を作成するという流れになっています。
教科担任が入力しないのは高齢の先生方が多くてパソコンに慣れていまいというのが一つの理由です。

 どうして、表編集でやらずに、フォーム(一覧表)を使い列固定したいかというと、
私の学校は、同じ学年でも受講する科目がコースによって違うのです。現在は1学年5つのコースがあります。
(いままでは桐V5で3学年×5=15の表ファイルを使って成処理をしていました。)
また、年によって受講する科目が変わることもよくあります。
そこで、表ファイルの科目の項目を1,2とかすべて同じにして、フォームで各コースの科目をつくろうと思ったからです。
 また、同じ表に授業の欠席の日数も入力しなればならなので項目の数がとても多くなるので氏名を
列固定しなければならなかったのです。

長々とした文になりましたが勘弁してください。

6052 表の「表示条件」の保存・読込はいかが? 悲しげ 2000/05/15-21:15
記事番号6051へのコメント
どもっ、中島さん、

>と、私の学校は、同じ学年でも受講する科目がコースによって違うのです。
>現在は1学年5つのコースがあります。
>(いままでは桐V5で3学年×5=15の表ファイルを使って成処理をして
>いました。)
>また、年によって受講する科目が変わることもよくあります。そこで、表フ
>ァイルの科目の項目を1,2とかすべて同じにして、フォームで各コースの
>科目をつくろうと思ったからです。

そう云う目的ならば、例えば全項目をひとつの表にまとめてですね、
フォームではなく表形式編集において、コース毎に科目表示を変えた状態を「表示条件」として名前を付けて保存し、
次に表を開いた際に「表示条件読み込み」でコースを指定してから入力していく方法があります。
表なら、元々列固定できますしね。

ps
全てをひとつの表にまとめることについては、若干異論はあるかもしれませんが。(^^;)

ps2
表形式編集でできることを敢えてフォームにする必要がないこともあります。
私が一覧表フォームでやりたい(やらざるを得ない)のは、イベント(特にモーダルフォーム)では、
表形式編集を使わせてもらえないからです(シブシブです)。

6054 Re:表の「表示条件」の保存・読込はいかが? 悲しげ 2000/05/15-21:17
記事番号6052へのコメント
訊かれる前にお断りしておきますと、私は「表示条件の保存・読込」を使ったことがありません。(^^;)
だからこの点の詳細を質問されても、他の方におまかせします。(^^;)(^^;)
6073 Re:一覧表wfmでの列固定もどき(できました) 悲しげ 2000/05/16-21:37
記事番号6048へのコメント
結論から云うとできました(縦スクロールの連動)。
成り行き上、【多遊】さんのところに書いてしまいました。
あそこの#964-5です。
6107 一覧表wmfでの列固定もどき 悲しげ 2000/05/19-20:50
記事番号6028へのコメント
本件にかかる試作品を
http://www8.freeweb.ne.jp/animal/mokuchan/download/dl-list.htm
にアップしました。

あの中の説明文でふれ忘れたことを補足しておきます。
あの処理は、考え方を示しただけですから、挙動は上下左右の矢印キー(と[Up][Dn])程度しか考えておりません。
だから例えば、[Enter]キーや[Tab]、[Shift]+[Tab]で移動する場合は、横頁切り換えならぬ当該画面内で
クルクルするだけです。ま、矢印キー使用時のみ横スクロール(頁切り換え)可能としておきましょう、
画面内でクルクルさせたい場合もあるでしょうから。
関連して、この処理は訂正モードでも使う場合を想定してはおりません。
つまり、訂正モードでの矢印キーの挙動ですね。
この点には、定石的な対応方法があるのですが、それはまたの機会に。(^^;)
でも、その定石をちょっとだけ(多分(C)Ikaだと思われる)。
「キーダウン」イベント手続き内の冒頭に次の記述を挿入する。
  method @フォーム.更新モード取得(&更新モ)
  cond(&更新モ>0) return
つまり、ここで更新モードが非表示モードの場合は実行させないよ
うにしておく訳です。

戻る