過去の桐井戸端BBS (桐ver.8)
10536 レーダーチャートで全体の平均も一緒にグラフ表示したい ats 2001/03/27-17:56
桐Ver8SP6で学校の成績処理をしています。
成績の個人票を、レポートで作成しています。
各該当生徒の成績をレーダーチャートにし、印刷したいのですが、そのときに全体の平均も一緒にグラフにできるといいのですが
思うようにいきません。
アドバイスいただければ幸いです。

10558 Re:実は私も困っています tomio 2001/03/28-22:24
記事番号10536へのコメント
実は、私もこの点がよくわかりません
教えて欲しいと思っています
今まで個人の表を作っていませんでした
来年度はきっと必要と思います
自分の得点と全体の平均を同時に表示したいと思います

10571 Re:レーダーチャートで平均表示 ケント 2001/03/29-19:38
記事番号10536へのコメント
atsさん初めましてこんにちは。

とりあえず会話処理ですがやってみました。
データは"c:\k3\kiriv8\sample\一括処理\成績管理\成績表.tbl"を使用しました。
(ドライブ,フォルダーはatsさんとは違うかもしれません。)

・成績表.tblを開く
・行操作−行集計−"組別平均"実行
・表示−行集計のみ
・ファイル−書出し−表
____書出し表名"成績グラフ"
____同名表が存在するとき−追加
____全項目書出し
実行
・解除
・グラフ表示させたい人の[生徒]で絞込み
____例 [生徒]=99003
____結果 奥脇勝美で2件表示
・ファイル−書出し−表−"成績グラフ"実行
・成績表.tblを閉じる
・成績グラフ.tblを開く
____データ内訳 平均値関係が12件,奥脇勝美データが2件
・表示−グラフ−新規作成−レーダー−次へ
・(格子円付)標準レーダー−次へ
・軸項目−[氏名]−次へ
・レーダー項目−[英語][数学][国語][理科][社会]−次へ−完了
・条件名"成績グラフ"
・変更−グラフ種別タブ−副グラフ・転置・対数目盛
・その他−"データを転置する"をチェック−OK−OK−閉じる
・成績グラフ.tblの1行目,3行目,13行目を行選択し、絞込み−選択行
・表示−グラフ−"成績グラフ"−グラフ表示する 又は 印刷

お望みのものかどうかわかりませんが、とりあえずうまく行くようです。
・表示−グラフ−"成績グラフ"−変更−軸タブ−軸リストボックス−目盛軸で目盛の最小値,最大値を設定したり、
仕上げタブで"データ値を表示する"にチェックしたりで色々遊べます。

後はフォームにこのグラフを配置し、グループ項目を設定すれば動的に変化するグラフが出来ると思います。
(生徒の絞込み書出しは要らなくなる?)
成績表.tbl、成績グラフ.tblで結合表を作って、グラフ表示するほうがスマートかな?(^^ゞ
その辺は諸先輩にバトンタッチです。

10586 途中まではできました ats 2001/03/30-15:47
記事番号10571へのコメント
早速のアドバイスありがとうございます。
おっしゃるとおりやってみると、確かに該当生徒の得点と平均点が一緒に表示されるレーダーチャートができました。
ただ、表示させる生徒を変えたときに、ほとんど特別な操作をすることなくグラフを動的に変化させることが
私には理解できませんでした。

グループ項目とか、結合表とか。


行集計を行った場合、集計行をデータ行とともに
グラフ化できればいいと思うのですが、できないようですね。

私が理解した範囲では、

集計行を書き出すということは、集計結果もデータ行として扱うことですね。
個々の生徒の行と集計結果の行をその都度絞り込んでグラフを表示させることになります。

グラフを表で定義してそのまま表示させると全生徒のデータが表示されすごいことになります。
しかし、レポート上では各生徒のデータのみ表示されます。

ここでデータ行としてもっている平均点も同時に表示するには
該当生徒と平均点がある項目で共通の値を持っている必要があります。
この対応は1対1でなければならないので結論としては生徒の数だけ平均点のデータ行を用意する必要が
あるということになってしまいます。

そうすればいちいち絞り込みをしなくても生徒の個票を一度に印刷できるようです。

でも、あまりスマートな方法ではありませんね。
10593 Re:途中まではできました hintを元にしてみましたが tomio 2001/03/30-19:28
記事番号10586へのコメント
コメントを元に一つの試案です

国語 社会 数学 理科 英語 テスト名
101  67 74 58 43 65 1中間
102  34 76 87 77 81 1中間 
103  86 45 35 98 65 1中間
104  32 65 54 57 34 1中間 
101  55 65 59 69 61 1中間平均
102  55 65 59 69 61 1中間平均 
103  55 65 59 69 61 1中間平均
104  55 65 59 69 61 1中間平均

軸項目 テスト名 転置
レーダー項目 [国語]・・・[英語]
で作り番号などでグラフに貼り付けるのはどうかと思いましたが 

10595 Re:レーダーチャートで平均表示 佐田 守弘 2001/03/30-19:42
記事番号10536へのコメント
atsさん
レーダーチャートで個人の成績値と平均値を表示するには、元データがこの2レコードになっている必要があります。
つまりその様な状態を作り出せばよい訳です。

さて、その方法ですが、ケントさんが#10571に書かれている手順通りで宜しいと思いますが、
これをベースに多少の補足をさせて頂きます。

● 行集計を行った結果を別表に書き出す。
平均値をレコードデータとして持つ関係で、まずはこの作業が必須になります。
ただし、ここで集計行と個人成績とを一緒に書き出して下さい。
また、もし、学年平均の他にクラス平均も一緒に表示したい(グラフが3本になる)場合でしたら、
クラス別の中計も作って書き出すとよいでしょう。

そして、ここでのポイントは生徒名の項目に「全学年」「○組平均」の様な文字を入れて下さい。

● 生徒1人と平均値だけの行にする方法
いろいろな方法を考えてみましたが、どうやら結合表を使うのが最も簡単そうです。
つまり結合表の抽出条件を使って絞り込みます。
その際に、
条件1には[生徒名]が「全学年」の条件
条件2には[生徒名]が&生徒名の条件
を設定します。

ここで分かる通り、&生徒名は変数ですから、パラメータ変数を使った結合表になります。
そして、レポートなどではこの変数に生徒名を代入してやれば、一人ずつの生徒について
個人成績と平均が一緒にグラフ表示されるはずです。

佐田守弘(KS-00119)
10596 Re:訂正 tomio 2001/03/30-19:54
記事番号10593へのコメント
コメントを元に一つの試案です

国語 社会 数学 理科 英語 テスト名 分類
101  67 74 58 43 65 1中間  成績
102  34 76 87 77 81 1中間  成績 
103  86 45 35 98 65 1中間  成績  
104  32 65 54 57 34 1中間  成績  
101  55 65 59 69 61 1中間  平均
102  55 65 59 69 61 1中間  平均 
103  55 65 59 69 61 1中間  平均
104  55 65 59 69 61 1中間  平均

軸項目 分類 転置
レーダー項目 [国語]・・・[英語]
でレポートの時 番号 氏名 テスト名 でグラフをリンクさせるといいと思いますが

10602 Re:レーダーチャートで平均表示 【多遊】 2001/03/31-00:22
記事番号10536へのコメント
すでにたくさん書かれてますがおまけ程度に

グラフを2個重ねて表示する方法です。
平均や同時に表示したいデータは別tblに書き出ししておきます。
下にそのグラフを配置し、上に生徒別のグラフを表示します。以上ではいかがでしょうか
そのとき、グラフの背景は透明にしておきます。

いろいろお試し下さい

10603 Re:レーダーチャートで平均表示 tomio 2001/03/31-00:27
記事番号10595へのコメント

※ケントさんの内容グラフは表示されました
>● 行集計を行った結果を別表に書き出す。
>平均値をレコードデータとして持つ関係で、まずはこの作業が必須になります。
>ただし、ここで集計行と個人成績とを一緒に書き出して下さい。
>また、もし、学年平均の他にクラス平均も一緒に表示したい(グラフが3本にな
>る)場合でしたら、クラス別の中計も作って書き出すとよいでしょう。
>
>そして、ここでのポイントは生徒名の項目に「全学年」「○組平均」の様な文字を
>入れて下さい。
※この部分はokです

>● 生徒1人と平均値だけの行にする方法
>いろいろな方法を考えてみましたが、どうやら結合表を使うのが最も簡単そうで
>す。つまり結合表の抽出条件を使って絞り込みます。
>その際に、
>条件1には[生徒名]が「全学年」の条件
>条件2には[生徒名]が&生徒名の条件
>を設定します。
>ここで分かる通り、&生徒名は変数ですから、パラメータ変数を使った結合表になり
>ます。
>そして、レポートなどではこの変数に生徒名を代入してやれば、一人ずつの生徒に
>ついて個人成績と平均が一緒にグラフ表示されるはずです。
※結合表の使い方がイマイチわかりません
 一つの表で結合表を作る
 &生徒名 は自分で決めるという意味ですか
 個人票を連続印刷する方法は
 わかりませんので教えて下さい
10606 Re:レーダーチャートで平均表示 ケント 2001/03/31-10:17
記事番号10571へのコメント
佐田先生のコメントを参考に勉強のためにも結合表を作ってみました。
【多遊】さんのグラフを重ねる案にも1票です。
また、勝手ですがグラフは試験別の個人データ、組別平均、学年平均の3点とします。
>データは"c:\k3\kiriv8\sample\一括処理\成績管理\成績表.tbl"を使用しまし
>た。(ドライブ,フォルダーはatsさんとは違うかもしれません。)
>
>・成績表.tblを開く
>・行操作−行集計−"組別平均"実行
>・表示−行集計のみ
>・ファイル−書出し−表
>____書出し表名"成績グラフ"
>____同名表が存在するとき−追加
>____全項目書出し
上記で
>・表示−行集計のみ
を省略します。つまり行集計を取った表をそのまま"成績グラフ.tbl"として書き出します。
"成績グラフ.tbl"を開いてみると[氏名]="組別平均"の[学年]が未定義なので1or2を手入力しておきます。

"成績グラフ.tbl"と"成績表.tbl"で結合表"1A学力検査1.viw"を作成します。
構成は
___[試験名]成績グラフ.tbl
___[生徒NO]成績グラフ.tbl
___[氏名]成績グラフ.tbl
___[英語]成績グラフ.tbl
___[数学]成績グラフ.tbl
___[国語]成績グラフ.tbl
___[理科]成績グラフ.tbl
___[社会]成績グラフ.tbl
___[生徒NO1]成績表.tbl
___[計算項目1]#STR( ["成績グラフ.tbl".学年] , 1 )+["成績グラフ.tbl".組]+["成績グラフ.tbl".氏名]
___[計算項目2]["成績グラフ.tbl".生徒NO]+["成績表.TBL".生徒NO]
です。それから[生徒NO]成績グラフ.tblの絞込条件を下記にします。
___《絞込条件1》[生徒NO]=[生徒NO1],#部分列( [計算項目1] , 1 , 1 )="1",#部分列( [計算項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )≠"98",#部分列( [生徒NO1] , 1 , 2 )≠"98"
___《絞込条件2》[生徒NO1]=[計算項目4],#部分列( [計算項目1] , 1 , 1 )="1",#部分列( [計算項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )
≠"98",#部分列( [計算項目4] , 1 , 2 )≠"98"
これで"1A学力検査1.viw"を開くと1Aの個人データ10件と平均関係40件の計50件のデータが見れます。
この"1A学力検査1.viw"にもグラフを設定します。
>・表示−グラフ−新規作成−レーダー−次へ
>・(格子円付)標準レーダー−次へ
>・軸項目−[氏名]−次へ
>・レーダー項目−[英語][数学][国語][理科][社会]−次へ−完了
>・条件名"成績グラフ"
>・変更−グラフ種別タブ−副グラフ・転置・対数目盛
>・その他−"データを転置する"をチェック−OK−OK−閉じる
以上で終了です。
"1A学力検査1.viw"[生徒NO1]で任意の絞込みをすれば当該個人データ、組別平均、学年平均の
3件データが表示されるので、それをグラフ表示・印刷させます。

後は"[生徒NO1]で任意の絞込み"のところを一括処理化すればよいと思います。
配列変数を使って挑戦してみてください。^_^;

10611 Re:レーダーチャートで平均表示 ケント 2001/03/31-12:03
記事番号10606へのコメント
蛇足

"1A学力検査1.viw"を編集対象表に白紙フォームを作成し、明細部にグラフ条件="成績グラフ"のグラフオブジェクト、
ヘッダ部に[生徒NO1]のグループ項目、[氏名]のテキスト、グループ操作バー"上"とします。
これで何とか"動的に変化するグラフ"らしくなってきたかな?(^o^)

後は、コマンドボタンの左クリックイベントで"グラフ条件実行 印刷……"で印刷できました。

多少の問題点は有りますが、前コメント又は当コメントでとりあえずいいかな、と妥協しています。(~_~;)
10612 Re:レーダーチャートで平均表示 ケント 2001/03/31-12:19
記事番号10606へのコメント
書き間違いがありました。

>___《絞込条件1》[生徒NO]=[生徒NO1],#部分列( [計算項目1] , 1 , 1 )="1",#部分列( [計算
>項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )≠"98",#部分
>列( [生徒NO1] , 1 , 2 )≠"98"
>___《絞込条件2》[生徒NO1]=[計算項目4],#部分列( [計算項目1] , 1 , 1 )="1",#部分列(
>[計算項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )
>≠"98",#部分列( [計算項目4] , 1 , 2 )≠"98"

《絞込条件1》[生徒NO]=[生徒NO1],#部分列( [計算項目1] , 1 , 1 )="1",#部分列( [計算項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )≠"98",#部分列( [計算項目2] , 1 , 2 )≠"98"
《絞込条件2》[生徒NO1]=[計算項目2],#部分列( [計算項目1] , 1 , 1 )="1",#部分列( [計算項目1] , 2 , 1 )≠"B",[試験名]="学力検査1",#部分列( [生徒NO1] , 1 , 2 )≠"98",#部分列( [計算項目2] , 1 , 2 )≠"98"

です。内容さえわかれば大勢に影響は無いかと思いますが……(~_~;)

10626 Re:レーダーチャートで平均表示 佐田 守弘 2001/03/31-23:24
記事番号10603へのコメント
tomioさん
>※結合表の使い方がイマイチわかりません
結合表の方はどうやら分かったようですね。

> 個人票を連続印刷する方法は
> わかりませんので教えて下さい
これは特に難しい話ではありません。会話処理でレポート印刷を行えば、表にある個人のデー
タ分だけが連続印刷されます。
実際に試した訳でないのですが、ポイントとしては次のようになるはずです。

・レポートの対象表
レポートの対象表には、行集計前の成績一覧表を指定します。
これによって生徒の人数分だけ連続印刷されます。

・結合表に引き渡す生徒名の情報
成績一覧表の方には、[生徒名]の様な項目があるでしょうし、レポートの中でこの項目を使って生徒名を印刷するだろうと思います。
そこで、生徒名を印刷するオブジェクトのソースの計算式に、
 #代入(&生徒名,[生徒名])
とでも設定しておけば、生徒名を印刷する時に、生徒名の値が変数「&生徒名」に代入される仕組みです。

・グラフオブジェクトの対象表
こちらは、行集計結果を書き出した表を対象とした結合表が対象表になります。
グラフオブジェクトによって結合表が実行される時に、&生徒名の値が使われてい結合が行われるので、
目的の生徒と平均値のみのレコードが得られる仕組みです。

なお、この方法では一括処理やイベントわず、会話処理が主体の方法です。
もし使うとしたら、行集計を行って集計結果を書き出す部分、その後レポートを開いて印刷を行う部分ですが、
会話処理で行っても大した事はないと思います。

ただし、毎年あるいは毎学年同じ様な集計条件を設定するのが面倒だとしたら、その部分に一括処理を使う事も考えてみて下さい。



佐田守弘(KS-00119)

10653 レポートで&生徒名が認識されません 富生 2001/04/03-00:36
記事番号10626へのコメント

>・レポートの対象表
>レポートの対象表には、行集計前の成績一覧表を指定します。
>これによって生徒の人数分だけ連続印刷されます。
>
>・結合表に引き渡す生徒名の情報
>成績一覧表の方には、[生徒名]の様な項目があるでしょうし、レポートの中でこの項目を使っ
>て生徒名を印刷するだろうと思います。
>そこで、生徒名を印刷するオブジェクトのソースの計算式に、
> #代入(&生徒名,[生徒名])
>とでも設定しておけば、生徒名を印刷する時に、生徒名の値が変数「&生徒名」に代入される
>仕組みです。
>
>・グラフオブジェクトの対象表
>こちらは、行集計結果を書き出した表を対象とした結合表が対象表になります。
>グラフオブジェクトによって結合表が実行される時に、&生徒名の値が使われてい結合が行わ
>れるので、目的の生徒と平均値のみのレコードが得られる仕組みです。
>
>なお、この方法では一括処理やイベントわず、会話処理が主体の方法です。
>もし使うとしたら、行集計を行って集計結果を書き出す部分、その後レポートを開いて印刷を
>行う部分ですが、会話処理で行っても大した事はないと思います。
>
>ただし、毎年あるいは毎学年同じ様な集計条件を設定するのが面倒だとしたら、その部分に一
>括処理を使う事も考えてみて下さい。
>
>
>
>佐田守弘(KS-00119)
>
度々すみません
結合表でパラメータ変数の定義をします
&生徒名等々
一人一人のデーターはレーダは出来ました
連続の印刷の時
レポートの#代入(&生徒名,[生徒名])を書くが認識されません
何処がへんなのでしょうか 

戻る